主题 : uboot.bin下载到内存中,无法运行 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 19547
精华: 0
发帖: 16
金钱: 80 两
威望: 16 点
贡献值: 0 点
综合积分: 32 分
注册时间: 2010-04-20
最后登录: 2012-06-08
楼主  发表于: 2010-07-06 22:55

 uboot.bin下载到内存中,无法运行

大家好,我下载了Tekkaman Ninja修改好的uboot源码(地址是http://github.com/tekkamanninja/U-boot-2009.11_tekkaman),然后进行编译,编译工具是arm-linux-gcc-4.3.2(命令是make CROSS_COMPILE=arm-linux-),生成u-boot.bin。
然后使用mini2440的vivi下载,开关拨到nor启动方式,进入BIOS后,按[d],使用DNW下载刚生成的u-boot.bin,然后出现以下信息,就停住了。

Now, Downloading [ADDRESS:30000000h,TOTAL:255550]
RECEIVED FILE SIZE: 255550 (249KB/S, 1S)
Downloaded file at 0x30000000, size = 255540 bytes

但是,用vivi把它下载到nand flash里(按[a]),再从nand flash启动(开关拨到S2),就可以运行uboot了。我用了gcc-3.4.5-glibc-2.3.6编译器,效果也是一样,无法直接在内存中运行。

我用过论坛里大家发的u-boot.bin,下载后直接就可以在内存中运行,而且把它下载到nand flash也可以运行。

请大家帮帮忙,告诉我是怎么回事呀,谢谢!
级别: 新手上路
UID: 58834
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2011-11-14
最后登录: 2013-12-28
1楼  发表于: 2012-07-27 19:29
告诉给你个方法吧,把dnw的源码重新编译,在dnw.c文件中把下载地址改成0x33f80000,同时你也要保证uboot的textbase基址是0x33f80000,现在附上linux下的dnw源码,友善之臂mini2440专用(网上的dnw源码有好多变种,我找了好久才找到这个合适的,亲身试验过在fedora和ubuntu都能用,源码里面有编译步骤,自己看吧),我的uboot版本是Tekkaman Ninja2010.03,自己去找,不过理论上用你的版本也行,你试试吧。
附件: dnw_linux.tar.gz (15 K) 下载次数:21
级别: 新手上路
UID: 58834
精华: 0
发帖: 10
金钱: 50 两
威望: 10 点
贡献值: 0 点
综合积分: 20 分
注册时间: 2011-11-14
最后登录: 2013-12-28
2楼  发表于: 2012-07-27 19:34
还有,其实不用改uboot源码的地方,像CONFIG_SKIP_LOWLEVEL_INIT之类的宏定义,你都不需要该,没用,我都按网上试过了。你只需要保证uboot内存地址与dnw下载地址一致就可以了(只需要修改dnw源码即可)。记住咯。