在ubuntu下通过USB对u-boot传输文件(mini2440)
本文重点参考:
linux下利用dnw烧写文件(ubuntu8.10)告别windows下dnw蓝屏死机(转) 在我移植的u-boot-2010.03中已经可以使用USB device口接受host传来的文件了。在移植的时候就找了一个Linux下的DNW工具,用来测试移植的效果。虽然在windows下可以用DNW,但是我一次都没有用过。我在这里总结一下在Linux的DNW的使用。
一、Linux下的DNW源码下载 在上面的参考资料中就有,我这里也提供一下(申明一下,程序不是我写的,根据 ,似乎是
写的):
|
文件: | DNW4Linux.tar.bz2 |
大小: | 2KB |
下载: | 下载 |
|
按照网友的提示,
修改 dnw.c
//size_t block_size = remain_size / 100;
size_t block_size = 512;
修正了小文件传输问题,已验证!
|
二、编译DNW驱动和应用程序 要在Linux下使用USB对mini2440传输文件,必须在Host端有相应的内核模块和应用程序。
我将下载来的源码包里加了简单的Makefile,并修正了会产生警告的地方。只要在解压出的根目录中进行简单的操作即可:
make install
#编译并将模块和程序拷贝到当前目录
make clean #清理编译痕迹
|
三、使用 首先,挂载内核模块:
如果挂载成功,你就可以用“dmesg”命令看到:“ secbulk:secbulk loaded”
接下来你可以启动mini2440(已经烧写好支持dnw的u-boot),进入u-boot。用USB线连接mini2440的device口和PC的USB口。正常情况下,你可以用“dmesg”命令看到:" secbulk:secbulk probing...
”和“ secbulk:bulk out endpoint found!“。并会在Host的/dev目录下出现: secbulk0设备节点。
在mini2440中输入下载启动命令:
usbslave 1 30008000usbslave - usbslave - get file
from host(PC)
Usage:
usbslave [wait] [loadAddress]
"wait" is 0 or 1, 0 means for return immediately, not waits for
the finish of transferring
|
如果一切顺利,mini2440的串口中会显示:
[u-boot@MINI2440]# usbslave 1 30008000
USB host is connected.
Waiting a download.
|
然后在PC端启动下:
就OK了!
阅读(10074) | 评论(5) | 转发(9) |