zoukankan      html  css  js  c++  java
  • Linux下烧写工具DNW和USB驱动安装(一)

    转:http://blog.csdn.net/zhengmeifu/article/details/8837930

    Linux下编译记录:
    编译PC端USB驱动和写入工具
    dnw_linux.tgz压缩包文件结构如下

    dnw_linux/
    dnw_linux/secbulk/
    dnw_linux/secbulk/Makefile
    dnw_linux/secbulk/secbulk.c
    dnw_linux/dnw/
    dnw_linux/dnw/dnw.c

    其中secbulk.c是PC端USB驱动, dnw.c是写入工具

    编译驱动之前先修改secbulk.c
    找到#define BULKOUT_BUFFER_SIZE
    修改为
    #define BULKOUT_BUFFER_SIZE 512
    找到
    static struct usb_device_id secbulk_table[]= {
            { USB_DEVICE(0x04e8, 0x1234)},
            { }
    };
    修改为上面的样子
    接下来编译
    $cd secbulk
    $make -C /lib/modules/`uname -r`/build M=`pwd` modules

    加载编译好的驱动
    $sudo insmod ./secbulk.ko
    注意,每次下载前都需要加载驱动,或者可以设置为开机自动加载
    Ubuntu中,假设驱动文件在/opt/dnw_linux/secbulk/
    则修改/etc/rc.d/rc.local文件,末尾加入
    sudo insmod /opt/dnw_linux/secbulk/secbulk.ko
    即完成开机自动加载驱动模块

    接下来编译dnw写入工具
    先打开dnw.c修改
    找到
    printf("Writing data... ");
    size_t remain_size = file_stat.st_size+10;
    size_t block_size = remain_size / 100;
    size_t writed = 0;

    在它前面加上2行代码,如下:
    file_buffer [file_stat.st_size + 8] = sum & 0xff;
    file_buffer [file_stat.st_size + 9] = sum >> 8;

    printf("Writing data... ");
    size_t remain_size = file_stat.st_size+10;
    size_t block_size = remain_size / 100;
    size_t writed = 0;

    编译dnw
    $gcc -o dnw dnw.c
    编译成功后生成可执行dnw
    使用DNW下载
    启动开发板,进入minicom,并将开发板和PC用USB电缆连接,此时用dmesg命令可以看到secbulk驱动加载:
    [ 283.677772] usb 1-1: new full speed USB device using uhci_hcd and address 2
    [ 284.084835] usb 1-1: configuration #1 chosen from 1 choice
    [ 284.140430] secbulk:secbulk probing...
    [ 284.140482] secbulk:bulk out endpoint found!
    说明驱动可以使用


    重起开发板,别进linux系统,按任意键进入uboot界面,
    输入
    dnw 50008000
    当出现“USB host is connected. Waiting a download.”时,
    在PC端Linux上用dnw工具写入要下载的文件,例如我要写入/tmp/zImage
    $./dnw /tmp/zImage


    写入完成后提示成功
    100% 312349 bytes OK
    至此,dnw在linux下使用一切正常

    dnw下载地址:

    https://github.com/Qunero/dnw4linux

  • 相关阅读:
    java中math类
    java中的值传递和引用传递(转)
    eclipse 字体和配色修改
    JAR WAR EAR包的区别
    java中基本类型
    tomcat 7.0 配置详解
    或许你需要一些可操作性更强的实践
    Assembly.CreateInstance()与Activator.CreateInstanc
    OOD沉思录2 类和对象的关系包含关系
    C#的插件开发
  • 原文地址:https://www.cnblogs.com/liulipeng/p/3408263.html
Copyright © 2011-2022 走看看