[求助] 代码重定位后内存中有两份代码,导致调用子函数程序跑飞

xulanll   2017-6-21 12:30 楼主
做的是新版的uboot移植到s3c2440,首先上电的时候nandflash前4K的代码被自动搬运到内存,然后完成uboot的完整拷贝。现在拷贝成功,程序跳转到拷贝后的地址运行,也就是链接时的地址。现在问题是一旦调用链接地址位于前4K的函数,程序就会跑飞。
按理说跳转到拷贝后的地址运行后,调用函数是用的当前PC值偏移跳转,上电时被搬运的前4K不会对现在的代码区造成影响。并且拷贝的目标地址就是链接地址。
反汇编代码也检查过了,看不出问题所在,希望有大神能帮忙答疑解惑

回复评论 (1)

应该还是代码中的问题,调用函数中有些没有移植到,内容为空
点赞  2017-6-21 14:27
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复