Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4250607
  • 博文数量: 241
  • 博客积分: 15936
  • 博客等级: 上将
  • 技术积分: 25293
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-27 11:22
个人简介

Fedora-ARM

文章分类
文章存档

2016年(3)

2014年(1)

2013年(3)

2012年(50)

2011年(61)

2010年(26)

2009年(27)

2008年(21)

2007年(49)

分类: LINUX

2010-04-21 00:09:37

在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 #清理编译痕迹



三、使用
   首先,挂载内核模块:  

sudo insmod secbulk.ko


   如果挂载成功,你就可以用“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  30008000

usbslave - 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端启动下:

sudo ./dwn <要传输的文件>


就OK了!

阅读(10041) | 评论(5) | 转发(9) |
给主人留下些什么吧!~~

tekkamanninja2011-08-31 20:53:25

是的,是到0x30008000,但是运行使用bootm 0x30008000
你试试看

sUesTcxF2011-08-31 20:23:24

你好,tekkamanninja,经常关注你的博客,想请教你一个问题,关于本文用DNW下载的程序是在放在SDRAM的0x30008000处吗?可是我用Uboot的命令go 30008000时却不是运行的我下载的程序,请问是怎么回事呢?

chinaunix网友2010-10-09 13:21:54

麻烦把最终的代码发下。git下不了 jrqangel@163.com 谢谢

chinaunix网友2010-06-28 22:11:29

我用的是RedHat9的虚拟机,编译不成功啊, 是不是只能在2.6内核上面用? 如何修改一下啊?

chinaunix网友2010-04-22 17:32:40

修改 dnw.c //size_t block_size = remain_size / 100; size_t block_size = 512; 传送小文件就可以了。