从做完就在搞这个问题,一共有三种方案,dnw和dnw2还有usb2ram
第一种需要加载驱动,后面两种需要安装libusb-dev.其中第二种的烧写速度很快,我都能听到电流声.但是也很不稳定.经常出现的提示是:
"usb_bulk_write failed: Resource temporarily unavailable"
从提示的信息来看是烧写的文件大于容量了.但是实际情况没有,原因不明.有人说是每次烧写都要重新插拔一次usb.
usb2ram提示的信息是找不到设备,原因不明
========================================
使用dnw2经常出现的错误提示是:
Target usb device found!
Cannot claim interface: Device or resource busy
========================================================
我后来还是使用的第一种方法,加载驱动:
方法是:
1. 下载Linux下DNW的PC端USB驱动和写入工具
文件名: dnw_linux.zip
下载后把后缀名改成.tgz
#或者搜索 linux dnw
2. 编译PC端USB驱动和写入工具
2.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.2 编译并加载secbulk.c内核模块
$cd secbulk
$make -C /lib/modules/`uname -r`/build M=`pwd` modules
编译成功后在当前目录下可以看到secbulk.ko
alex@alex-desktop:~/project3/qq2440/dnw_linux/dnw_linux/secbulk$ ls
Makefile
// size_t block_size = remain_size / 100;
size_t block_size = 512;
// *((unsigned long*)file_buffer) = 0x32000000; //load address
*((unsigned long*)file_buffer) = 0x30800000; //load address //这与自己板子的下载地址有关
参考:http://shundacao.blog.163.com/blog/static/1340404812010102123259108/