U-boot中用tftp命令直接烧写到flash中

这篇博客主要介绍了如何在U-boot环境下利用tftp命令将文件直接烧录到flash中,适合嵌入式开发人员参考。
摘要由CSDN通过智能技术生成
               
U-boot中用tftp命令直接烧写到flash中

  一年前,学习使用u-boot时候用它的Yaffs功能烧写一个96M的Yaffs镜像,结果在tftp到内存中一半卡死。细分析原因是内存一共64M,你要把一个96M的镜像下载到内存中去。那不得撑死。网上找不到答案,就觉得是自己发现一个大的bug,但是又不会移植。就向当时用的u-boot的原创Tekkmannaja发邮件求助。他很仔细的答复了,并指出了解决了解决方案。我一边激动一边无奈。激动的是大牛回信了,无奈的是我根本就没有移植成功过u-boot,看他的说的头头是道。可我还是无从下手。当时就这样放到那了。

  时隔一年,再来看这个问题,再翻开他回的邮件,这次看感觉清晰一点了。这次再不做出来点啥。可真是说不过去了。主要是tftp接收到数据后,如果地址是flash中的就烧到flash中去。这样就没有大小限制了。除非镜像比flash还大,那谁都没有办法。

  主要看的是net/tftp.c中的 CONFIG_SYS_DIRECT_FLASH_TFTP宏之间的内容。仔细看看了,在板级配置文件中加上这个宏之后,这个宏里边的内容执行不执行就靠地址来地址范围来判断的。那就加上这个宏直接下载到0地址处看会怎么样。测试的三次终于可以,这个只是测试烧写到NorFlash,重点是NandFlash。还要更改CONFIG_SYS_DIRECT_FLASH_TFTP宏之间的内容为NandFlash写入。

SMDK2440 # tftp 0 6Ubootnand.bin
dm9000 i/o: 0x20000000, id: 0x90000a46 
DM9000: running in 16 bit mode
MAC: 00:01:02:03:04:05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值