u-boot 裸机程序至 mini2440 开发板 NAND

 突然很想用一用几前年买的MINI2440开发板,却不知道怎样把裸机程序烧至NAND,汗,基础都不会。。。。

 

###############################################################################################################

参考资料:

1、伟东山嵌入式LINUX应用开发完全手册。

2、usb2.0 pdf ch9 ch8

3、supervivi-transfer-tool; 请至google code上有项目。

 

###############################################################################################################

注意事项:

1、u-boot是用的伟老师的代码,里面Usb部分code有回车换行(这种风格应该是个中国人写的,威武)。

2、u-boot需要与gcc匹配的,伟老师现成的U-boot似乎只能用arm-linux-[none-eabi]-gcc-3.x.x,4.x.x的是用不起的。

3、我的系统是windows 764-bit,visual studio 2012(c#) ,这样SuperVivi-USB-Transfer-Tool程序在用时会出错。

4、最终的U-boot是放的nor flash中去的,这样方便我们操作nand flash。

5、还要说一下,用伟老师的u-boot,还用到他在u-boot中加入的一个菜单,又新加了v,p两个操作,v下载的裸机程序到

     nandflash前4k(跟n其实是一样的,只是清掉了前4k的内容),p打印nand第一页的内容(用于确认是否操作成功)

 

###############################################################################################################

mini2440启动(from nand)时会把nand前4k的内存拷贝至CPU内部4K ram中去并执行。裸机程序当然也需要烧至前4K,从0x000000000放我们的代码。

因此只要把程序放到这个位置,而不用去做刻意的一些面硬件初始化就可以直接执行裸机程序。

 

烧录的过程中发现如果烧录文件过少,就会出错,包括u-boot及SuperVivi-USB-Transfer-Tool都会有错误提示发生。

本想写写查找问题的过程,还是算了,直接说原因吧:

windows端张写程序的问题:

1、如果程bin档过小:

     如下代码会出错,所以烧录会失败:

   SuperVivi-Transfer-Tool -->supervivi.cs--> line 496-503,t_log是一个Ui组件,而此处应是一个非UI线程,此处应该通过某种方式通知UI去

   显示字体符串,为了简单,此处也可以直接注释掉。

            

2、如果某次烧录失败:再次烧录时,会卡在如下地方,这时重置下平台就好:

   

 

3、在U-BOOT中加入一一些代码,v p操作,这样直接用伟老师的菜单就好,而不用再切换到原始u-boot提供的菜单项中去:

    a)--> 提示信息中加入cmd_menu.c 142、143行,如下:

b)--> 命令处理加入(185-196行):

     

c) --> 注释掉启动linux那段代码,我们只想用u-boot的usb slave功能来烧录程序,换言之,此u-boot不用引导内核的功能(common\main.c\main_loop 425、457)。

 

 

#########################################################################################################

如下的效果图:

1、烧录裸机程序(24 * 16字节的数据也可浇录成功):

     

2、nand前4k内存内容(这个就是点亮LED BIN档的内容)。

 

 

##########################################################################################

u-boot和usb-transfer-tool源码,我的下载资源中去也有,可参考。

    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值