免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3541 | 回复: 3
打印 上一主题 下一主题

ADS编译简单的C程序无法调试通过,也无法用uboot的go执行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-16 12:44 |只看该作者 |倒序浏览
我写了一个简单的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执行程序就没法用仿真器单步了吧?

论坛徽章:
0
2 [报告]
发表于 2008-09-16 13:35 |只看该作者
ADS最下面 有什么报错啊?

论坛徽章:
0
3 [报告]
发表于 2008-09-16 14:02 |只看该作者

回复 #2 eveson 的帖子

恩没有报错,是在函数结束条用时执行 ldmfd    r13!,{r4,pc}
我看这个值好像是不对的,但是没找到ADS里面去设置它

论坛徽章:
0
4 [报告]
发表于 2008-09-16 14:37 |只看该作者

回复 #2 eveson 的帖子

我在axd下手动设置r13为0xA1200000 SDRAM中的有效值
这样程序就可以执行了,但是ADS下没有地方设置这个r13的值
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP