您的位置:首页 > 大数据 > 人工智能

mini2440裸机程序时ADS调试开始全速运行不进main断点问题

2014-07-12 14:42 806 查看
在ADS开发环境中,进行AXD调试时,全速运行会进入main函数断点处,再次Go才会全速运行。今天调试ARM裸机程序时,使用J-link仿真器,Debug进行AXD调试不能进入main断点,按Go就全速运行了,想单步调试就实现不了。百度了一下,有以下几种解决办法(这里mini2440硬件平台的内存起始地址是0x30000000):

1、DebugRel Settings 中ARM Linker的Equivalent Command Line要设置为: -info totals -ro-base 0x30000000 -first 2440init.o(init)









2、Debugger Setting中把Stop on application launch 和Default language entry point勾选



3、AXD调试配置为题及解决方法
http://blog.csdn.net/lq_automatic/article/details/7019021
我测试以上方法的,有的程序工程解决了,但是有的无效,把该配置的都设置好了,Go还是不能进入main断点,单步调试,后来仔细发觉main函数中有差别:

这个裸机测试程序我是从一个网友那里下载来调试的的示例程序.



大多数ARM裸机程序中写成Main,如下



这里xmain???xmain是编程者自定义的main函数程序入口名字,是不是AXD找不到入口?

我尝试修该xmain函数名,首先把xmain函数修改成Main,



发觉编译不过,文件有关联,于是在ADS搜索查找了一下,把2440init.s中发现xmaina名字:





我再把库文件中的xmain改成了Main,



再次编译通过。Debug进行AXD调试,点击Go成功进入main断点,可以在线调试了。



终于把问题解决了,昨晚搞到半夜,试了很多方法,都不行,在这里做做笔记,也跟学习嵌入式的网友们分享,希望对你有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐