主题 : uboot-1.2.0调试问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 34148
精华: 0
发帖: 17
金钱: 90 两
威望: 18 点
贡献值: 0 点
综合积分: 34 分
注册时间: 2010-12-11
最后登录: 2017-09-13
楼主  发表于: 2012-07-30 22:18

 uboot-1.2.0调试问题

u-boot调试遇到问题,描述如下:
用LED做调试信号,用AXD+JLINK在SDRAM里调试时,可以发现是正常运行的,LED灯能亮。
但是,我把整个u-boot.bin文件装载到SDRAM里运行时(通过原有的UBOOT命令loadb),
start.S里的程序(第一阶段)能运行正常(在ldr pc,=start_armboot转入start_armboot()函数之前用LED测试正常)。
在start_armboot()函数的起始位置和中间位置都加了LED测试,并且用while(1)固定在LED测试之后。
直接运行后,就发现start_armboot()函数运行不正常,LED信号没能正常显示。

有些什么可能导致这产的问题呢
畅游在知识的海洋...
级别: 论坛版主
UID: 33629
精华: 4
发帖: 554
金钱: 3075 两
威望: 615 点
贡献值: 5 点
综合积分: 1188 分
注册时间: 2010-12-03
最后登录: 2015-09-22
1楼  发表于: 2012-07-31 07:06
重定位呗
好好学习,天天鲁管
级别: 新手上路
UID: 34148
精华: 0
发帖: 17
金钱: 90 两
威望: 18 点
贡献值: 0 点
综合积分: 34 分
注册时间: 2010-12-11
最后登录: 2017-09-13
2楼  发表于: 2012-07-31 12:25
重定位?超级版主说的是代码搬移?还是别的?能否详细点说明呢?
我这个是直接链接在SDRAM里的,而且用NORFLASH里的UBOOT的命令loadb指令装载至SDRAM的链接处运行的。
应该不需要重定位呀,而且在AXD单步调试时也没有进行代码搬移。
而且通过objdump查看u-boot的反汇编,也没发现跳转地址和执行逻辑地址上有错误呀
[ 此帖被jplzl10000在2012-07-31 12:32重新编辑 ]
级别: 新手上路
UID: 34148
精华: 0
发帖: 17
金钱: 90 两
威望: 18 点
贡献值: 0 点
综合积分: 34 分
注册时间: 2010-12-11
最后登录: 2017-09-13
3楼  发表于: 2012-08-02 23:01
简单的说就是,在SDRAM里调试UBOOT时,start.S的代码可以正确运行,但就是不能跳至start_armboot函数地址去运行。而用AXD+JLINK调试时,是可以正确的跳到start_armboot处运行的。