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

来源:互联网 发布:php会员管理系统源码 编辑:程序博客网 时间:2024/06/04 23:32

  在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断点,可以在线调试了。



终于把问题解决了,昨晚搞到半夜,试了很多方法,都不行,在这里做做笔记,也跟学习嵌入式的网友们分享,希望对你有所帮助。


0 0
原创粉丝点击