0%

linux下利用dnw烧写文件

感谢牛人的分享,linux下利用dnw烧写文件
如果在ubuntu下搞开发,又要回到windows下用dnw下载文件,的确很烦人,下面就是解决的方法。

  1. 下载Linux下DNW的PC端USB驱动和写入工具 下载地址:https://www.mak-blog.com/download/dnw_linux.tar.gz,文件名: dnw_linux.tar.gz

  2. 编译PC端USB驱动和写入工具

    1. 解压缩
      $ tar xzvf /path/to/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是写入工具
    2. 编译并加载secbulk.c内核模块
      1
      2
      $cd secbulk
      $make -C /lib/modules/`uname -r`/build M=`pwd` modules //编译不过就修改参数
      编译成功后在当前目录下可以看到secbulk.ko
      用insmod命令加载模块,这需要root权限
      $sudo insmod ./secbulk.ko
      加载后用dmesg命令可以看到模块已经成功加载
      1
      2
      [ 238.007970] secbulk:secbulk loaded
      [ 238.009101] usbcore: registered new interface driver secbulk
    3. 编译dnw写入工具
      1
      2
      $cd dnw
      $gcc -o dnw dnw.c
      编译成功后生成可执行档dnw
  3. 使用DNW下载

    1. 启动开发板,进入kermit,并将开发板和PC用USB电缆连接,先加载secbulk驱动:
    2. 当出现“USB host is connected. Waiting a download.”时,在PC端Linux上用dnw工具写入要下载的文件
      切换到root权限,执行dnw下载.
      $./dnw /path/to/what/you/want/download
      写入完成后提示成功
      100% xxxxxxx bytes OK
      如果发现速度太慢了,可以修改缓冲区的大小。在源码中
      发现是#define BULKOUT_BUFFER_SIZE 32所设定的值太小了。
      改为#define BULKOUT_BUFFER_SIZE 512后可发现速度快了很多。
      改了缓冲区大小之后,速度会快很多,设多少自己把握。

原文地址:http://blog.chinaunix.net/u3/93598/showart_2133626.html