- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
AXD Debugger 仿真调试的使用方法
ADS 是 ARM 系统的一个集成开发环境,提供程序编写、编译、连接、生成映像的功能。
除此之外,ADS 还带有一个调试工具 AXD Debugger,方便进行源码级调试。下面以
XSBASE270 系统下的一些实验例子进行调试分析。
调试的方式可以分为两种:一种是在 FLASH(ROM)调试,另一种是在 SDRAM(RAM)
调试。
一、在 FLASH 调试
1、打 开 Edit ? Debugrel Settings….,进行对编译选项进行设置。如图 1、2、3、4 所示。
当编写好程序代码后,就要对编译选项进行设置了。
图 1:Target Settings
Post-linker:表示用于选择对连接器输出的文件的处理方式,我们选择 ARM fromELF,
它可以把 ELF 格式的文件转换成各种二进制文件格式。
图 2:ARM Link 的 Output 设置
在 ARM Linker 选项组中,进行对 Output 设置,RO Base 设置为 0表示从
映像是烧写到 FLASH 里面的。而 RW Base 设置为 0xa0100000,表示放到 SDRAM 里面,
由于我们的实验程序都会进行内存初始化操作,所以我们都可以使用内存空间。
图 3:ARM Link 的 Options 设置
Options 中的 Image entry point 表示映像的入口点(地址),boot.o(boot)表示系统从目标
文件 boot.o 中 boot 段开始运行。
图 4:ARM Link 的 Layout 设置
在 Layout 中,Place at beginning of image 下的 Object/symbol 表示目标文件,Section 表
示目标文件中的代码段。这与 Options 中的 Place at beginning of image 相同。
2、执行 Project?Make ,也可以直接用快捷键 F7 进行编译、连接生成映像文件。如图
5 所示,执行后,会出现编译、连接后的结果,如图 6 所示。
图 5:编译、连接、生成映像
图 6:编译、连接结果
3、连接好仿真器,如果是 Multi-ICE ARM 仿真器,需要启动 Multi-ICE Server。
4、下载映像到 FLASH 里,然后才进行调试。在命令提示符中运行命令:jflashmm.exe
pxa270 xxx.bin ,就可以把 xxx.bin 下载到 FLASH 里面了,如图 7 所示。如果是使用 Banyan-U
仿真器,就可以使用它自带的 JTAG 下载功能,不必使用 JFLASHMM 下载,具体操作请看
Banyan-U 仿真器的使用手册。
图 7:烧写映像到 FLASH 中
5、下载映像到 FLASH 后,打开 Project ? Debug F5 ,系统就会自动调用 AXD Debugger
进行仿真调试。如图 8 所示:
图 8:AXD 调试界面
当打开 AXD Debugger 后,就可以通过 Execute 下拉列表的命令进行仿真调试。如图 9
所示。
图 9: Execute 下拉列表命令
下面我们分别执行各个命令:
Go :让系统运行,执行结果如图 10 所示:
图 10:运行 Go
Stop:停止系统的运行,如图 11 所示。
图 11:运行 Stop
当运行 Stop 命令后,光标就会停在运行到的地方。
Step In:进入函数体内执行。如图 12 所示,表示还没有进入之前,图 13 表示进入后的
运行情况。
图 12:进入函数之前情况
图 13:进入函数的情况
Step:单步执行,图 14 表示运行到地方,这是一个函数,再单步执行,就会执行完这
个函数,等待执行下一条指令,如图 15 所示。
图 14:将要运行的地方
图 15:下一条要执行的指令
Step Out:跳出函数执行下一条指令。如图 16 所示,表示在函数体内,只要 Step Out
就会跳出函数体,继续执行下一条指令。如图 17 所示。
图 16:在函数体内
图 17:跳出函数体外,等待执行下一条指令
Run To Cursor:运行到光标处,如图 18 所示,表示还没有运行到的情况,图 19 表示,
运行执行 Run To Cursor 的情况。
图 18:执行 Run To Cursor 之前
图 19:执行 Run To Cursor 之后
Toggle Breakpiont:设置断点,如图 20 所示,设置了断点,图 21 表示运行 Go 后的运
行情况。
图 20:设置断点
图 21:执行 Go 运行到断点处
有时候不能设置断点或者不能设置多个断点,以下是解决的办法:
文档评论(0)