Chinaunix

标题: ADS编译简单的C程序无法调试通过,也无法用uboot的go执行 [打印本页]

作者: adiosET    时间: 2008-09-16 12:44
标题: ADS编译简单的C程序无法调试通过,也无法用uboot的go执行
我写了一个简单的C程序,主函数是led(),设置的链接入口也是led
在ADS中设置了ro_base为0xA1000000(这是在SDRAM中,已经用ob *.ini初始化SDRAM),rw_base未设置(是不是说明rw紧跟在ro的后面吧)
现在的问题是,在led中调用了其他函数时,使用r13保存堆栈地址的,但是用axd看这个r13是个不确定的地址,这就不对了?应该是个有效的SDRAM地址才对,但是没找到ADS中哪里可以设置这个值啊??
如果我在uboot中用go执行的话,那么这个堆栈值是不是也不用设置呢?uboot初始化C环境就已经设置好了堆栈了,我可以直接用才对啊

主要是对ADS中的设置不太清楚,因为我也不用ads带的C库
请熟悉的大侠指导一下吧,谢谢
顺便问下,用loadb到uboot中go执行程序就没法用仿真器单步了吧?
作者: eveson    时间: 2008-09-16 13:35
ADS最下面 有什么报错啊?
作者: adiosET    时间: 2008-09-16 14:02
标题: 回复 #2 eveson 的帖子
恩没有报错,是在函数结束条用时执行 ldmfd    r13!,{r4,pc}
我看这个值好像是不对的,但是没找到ADS里面去设置它
作者: adiosET    时间: 2008-09-16 14:37
标题: 回复 #2 eveson 的帖子
我在axd下手动设置r13为0xA1200000 SDRAM中的有效值
这样程序就可以执行了,但是ADS下没有地方设置这个r13的值




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2