12 ARM调试工具AXD介绍
第12章 ARM调试工具AXD介绍
12.1 ARM调试工具AXD介绍
12.1.1 几个基本概念
1. AXD是图形方式下的,armsd是命令行下的.
2. 调试代理:是调试器和调试目标之间的桥梁,把调试器发出的指令解释给目标,又把目标执行的结果反馈给调试器.ARMulator,Angel.
3. 断点(breakpoint),AXD支持条件断点.
4. 观测项(watch): 定义一个和程序执行相关的表达式,运行中观察.
5. 观测点(watchpoint): 类似断点,执行遇到观测点,程序会中止.比断点更灵活.可以设置一个寄存器为观测点.
12.1.2 ARM调试工具AXD介绍 ARM eXtened Debugger
1. 使用JTAG 完全信赖ARM内部资源
2. 使用Angel 目标板上必须包含调试监控程序
3. ARMulator 无需目标板,纯软件仿真.
12.2 调试器的使用方法
12.2.1 armsd使用方法 (略过)
12.2.2 AXD使用方法
先设置调试目标,option,configure target.
再加载后缀为 .axf 的文件
12.3 使用AXD调试用户程序
12.3.1 基本知识
1. 开文件
加载源程序,又需要打开反汇编程序,则使用 "Processor Views, Disassembly".
如果加载的反汇编程序,又希望打开源程序,则使用 "Processor Views, Source".
2. 程序执行前面的标志
蓝箭头 程序当前执行位置
红圆点 断点
红圆环 关闭的断点
绿圆点 观测点
绿圆环 关闭的观测点
选中标志 选中栽一对象时,该对象高亮显示
3. 在调试中可以使用的视窗 (System View 下设置)
1. 用户在调试过程中设置的视窗
1. 断点
2. 观测点 设置的是程序中的一个元素,如寄存器,变量,或一个表达式.可以使程序中止
3. 观测项 与观测点不同的是,不能使程序中止运行. 
2. 其他视窗
1. 寄存器  register
2. 存储器  memory
3. 变量    variable
4. 代码级符号表  low level symbol
5. 控制台  console 
山水田园诗人4. 控制程序运行
1. 运行目标  加载后,单步,或连续运行.
2. 程序重复运行 File,Reload Current Image
工商银行金卡3. 程序向后返回 如果想重新运行一段程序,希望指令执行的位置向后移动,而不希望重新加载程序,可以打开源文件视窗或反汇编文件视窗中的级联菜单,使用 Execute, Set Next Statement操作命令.
注意,要先选择要返回的程序行,然后使用该命令.
12.3.2 控制程序运行的工具图标
连续运行
停止运行
单步进入
单步运行
单步跳出
执行到光标处
用来捕获程序执行的位置.光标跳到原文件或反汇编文件中当前执行的指令上. (左边蓝箭头)
断点操作图标 (左边红圆点) 增加,删除断点
定时刷新图标 (漏斗图标) 打开或关闭定时刷新功能
12.3.3 控制程序运行的操作命令 (Execute 菜单下)
12.3.4
在程序窗口中的级联菜单 (程序窗口中点右键)
Execute (子项同Execute 菜单)
Stepping Mode 步进模式
Disassembly  按反汇编格式单步执行.
Strong Source 近照高级代码的源程序格式单步执行,单步执行不会进入程序调用的程序段.
中国历史上的大地震Weak Source  近照高级代码的源程序格式单步执行,单步执行会进入程序调用的函数体内.
Toggle Breakpoint 断点操作,同上.
Set Watchpoint 设置观察点
Interleave Disassembly 在源程序行中执行反汇编格式的代码行,同时显示反汇编代码
Show Execution Content 光标定位到当前行的位置
Goto 光标跳转到指定位置,而不是程序执行到指定位置
Watch 添加条件观察项
Add to watch 添加简单观察项
Copy 复制
Properties 外部属性.可输入以下:
Interleave source with disassembly 可以在源程序行中插入反汇编程序行
Show margin 很重要的选项,选择该项,在源程序行中显示行号和有关标志(断点,观测点).在反汇编行中将显示程序地址.
show line number/memory addresses 在源程序中显示行号,在反汇编程序中显示地址.
****** 只在反汇编窗口中出现的 ******
Disassembly Mode  选择反汇编的模式
Toggle Watchpoint  增删观测点
Set PC  设置PC
Source  打开与反汇编程序对应的源程序窗口.
Refresh  刷新窗口数据
12.4 关于调试器设置
比编译器和链接器的设置都要简单
Disassembly Mode 反汇编的模式,可选择四种 ARM, Thumb, ARM/Thumb, ByteCode.如果代码不是来自链接器,如ROM,不包含调试信息,则需要指定反汇编模式.
Configure Interface 调试目标的界面配置
Configure Target 设置调试目标
Configure Processor 配置处理器   
Source Path  列举调试输入的源程序路径
Status Bar display control 状态条显示控制
Profiling  用于按照指定的时间间隔采样PC值.生成一个百分比图,描述每段程序所花的时间.
12.4.1 调试目标的界面配置  Configure Interface
1. Genenal  通用配置
1.Target connection : 目标链接方式选项
当把调试器链接到新目标时,正在运行的目标是停止运行,还是继续运行.
Halt: 终止当前目标上运行的程序
NoHalt: 不终止.
Attach: ADS1.2配套的AXD暂不支持.如果目标支持实时监控而调试器没有其他链接,那么不用中止目标运行而直接实现链接.如果目标不支持实时监控,仍可以实现链接,但可能会中止在当前目标上运行的程序.
2. Save and load default session file
中途退出时,保存调试状态以便下次使用.
3. Export Exceptions 报告异常.异常信息在 System,Output RDI Log中显示.
4. Export all warnings 报告所有警告
5. Recent File list size 指定 Recent File 文件列表数.
Recent Image    指定 Recent I
mage 文件列表数.
Recent Symbols  指定 Recent Symbols 文件列表数.
Recent Session  指定 Recent Session 文件列表数.
2. Views    视图配置
General Font  通用字体设置
Fixed Font    固定字体设置
Tab size    Tab所占的空格数
Interleave    在源程序中插入汇编代码显示
Show Line / Address  在源程序中显示行号,在反汇编窗口中显示地址
Evaluation Tooltips  在反汇编和源程序窗口中,在鼠标指针处显示变量,寄存器的当前值
Default Initial View State 默认的视窗初始状态,
Docked  锁定,在主窗口边缘
Undocked 不锁
Floating 浮动
3. Formatting  格式设置
配置 printf类型数据格式
4. Session Fils  过程文件
Reselect target 重复选定文件 在调试过程结束时,过程文件会把调试目标的详细信息保存起来,重新开始调试时,调试器默认调试目标和前一次相同.不选择该项.新的调试过程在相同的设置中运行.只是没有选择高度目标.
Reload images 重新加载映像文件
Run configuration script 调试器在加载文件后,先运行预设的script 文件设置目标,之后再加载映像文件.
5. Toolbars  工具栏设置.工具栏上是否显示以下图标.
File 有关文件加载和存储
Search
Processor views
System views
Execute
Help 
6. Refresh  定时刷新
Enable Timed Refresh 和 Windows,Timed Refresh 一起使用.
Disable Timer if user prompted by error dialog 调试器提交错误时,则定时器关闭
Refresh Interval 定时刷新时间间隔 1-600 个 (1/10 秒)  (0.1秒到60秒)
12.4.2 设置调试目标    Configure Target
1. 设置 ARMulate
Processor 处理器类型
Clock  Emulated 指定模拟一个以一定速度运行的处理器时钟
Speed  指定实时执行指令
Floating Point Emulation 调试器可以用模拟浮点加速协处理器
Debug Endian    字节顺序,大端,小端
Start target Endian  选ARMulate 包括 CP15时有意义a
No Map File    没有或不使用存储器映射文件
Floating Point Coprocessor 浮点协处理器选项
MMU/PU Initialization  有,则 Default; 无,则NO.
2. 对 Remote_A 进行配置 (略过)
12.4.3 配置处理器    Configure Processor
1. Vector catch 每一项对液压一种异常中断;选,则调试器响应该中断.Clear All 清所有选择 / Set All 设置所有.
R 复位异常
U 未定义指令异常
S 软件中断异常
P 预取指异常
D 数据异常
I 外部中断异常
F 外部快速中断异常
2. Enable Comms Channel view Common通信激活后,自动打开Common视窗
3. Semihosting 打开,关闭该项功能
Std semihosting 标准模式
DCC semihosting Handler 调试通信模式
4. ARM semihosting 使用软件中断 SWI 实现 semihosting 功能,设置软
件中断号,不要修改默认值
Thumb semihosting 使用软件中断 SWI 实现 semihosting 功能,设置软件中断号,不要修改默认值
12.5 AXD 00If的菜单选项
12.5.1 文件操作命令
Load Image    调试器默认把 main() 当作一个断点
Load Debug Symbols  加载调试符号文件(不包含调试信息的映像文件,读出的ROM)
Reload current imagw 重新加载当前镜像
Open File    只读访问源文件
Load memory from file 把一个文件的内容加载到存储器中.
Save memory to file  保存存储器内容到文件
Flash Download  Flash下载
Processor 设置目标处理器
Set_ethernet address 指定IP地址
2021年冬至具体时间
Download
Image to load 指定下载的文件
Loader options 在输入栏输入命令行选项.
Load Session  装载过程文件
Recent Files  最近使用的文件
Recent Images  最近使用的映象
Recent Symbols  最近使用的符号
Recent Session  最近的过程文件
Unload Current Image 卸载当前映像文件
Import Formats  引入自己的版本定义
Exit    退出
12.5.2 搜索命令
Source  查源文件
Memory  在指定的存储区查
12.5.3 与处理器相关的视窗
在每个视窗上点右键,可设置
Float within main window  该窗口可以在主窗口内浮动显示
Allow docking    在主窗口边缘锁定窗口
Hide      隐藏但不关闭窗口
Close      关闭窗口
Registers  查看寄存器视窗
Watch  查看观测项视窗 (变量或表达式)
Variables  查看变量视窗 (变量)
Backtrace  跟踪视窗,显示当前程序的函数调用情况
跟踪窗里的右键级联视窗
如果调用栈被程序覆盖或破坏,则报警"--------//--------//--------"
// 问题,AD示例中分行 2410init.s 时,显示的函数为 2410init(),汇编中的函数概念,开始执行时,显示的应是偏址值.
右键级联菜单
Locate Source  显示当前函数在源程序中的位置
Locate Disassembly  显示当前函数在反汇编窗口中的位置
Locate Using Address 系统打开存储器窗口,所选中的入口地址高亮度显示.
Toggle Breakpoint  取消或设置断点
露娜连招
Run To    函数调用发生多层嵌套时,选一个位置,即跳到.
Refresh    刷新一次
Refresh (for nonstop debugging) 在程序连续执行时刷新视窗
Properties    跟踪窗外部属性选项
show return type 在跟踪窗显示函数调用时返回的类型
show parameter  显示函数调用参数
auto refresh  自动在调用栈程序执行中止时刷新
Memory  打开存储器视窗 
Low Level Symbols  打开代码级符号窗口,显示函数,变量的地址.
Address 显示符号地址, Symbol 显示符号名
右键级联菜单
Locate Using Address 在存储器中到所选中的符号的存储单元
Sort By Address  按地
址,字母顺序排序
Comms Channel Comms窗口
使用支持片上调试功能的嵌入式ICE逻辑.通过DCC(Debug Communication Channel)调试通信通道和调试代理链接.可以向目标发送数据.
右键级联菜单
Format    数据格式定义
Send from file  从文件发送数据
Receive log file  把接收的数据存到 log 文件中
Clear Send Buffer  清除发送缓冲区的数据
Clear Receive Buffer 清除接收缓冲区的数据
Copy    选中,复制.
Properties    外部属性选项
Show ASCII  按ASCII编码显示
教师节贺卡上的祝福语Show Record Index 在显示数据的同时也显示数据的顺序号
Endian Swap  不选,则接收和发送的字节顺序相同.选择,则字节顺序相反.
Alignment offset 设置对准值
Enable Comms Channel 允许/禁止 Comms Channel.
Receive log filename 不可修改 接收数据的路径
Send from filename  发送数据的路径
Console 控制台窗口 (与超级终端的区别)
用来支持 Semihosting 功能的窗口
如果在调试程序时,程序中包含对外部设置的操作指令,如发送数据到外部设备,而在调试程序时不存在这个设备,如使用 ARMulator调试程序时就没有这样的设备,这时调试就会出现困难,控制台可以解决这个问题.
在控制台窗口中,可以显示由程序发送到外部设备的数据,也可以从键盘输入数据或字符到控制台,用来模拟外部设备发来的数据.
右键级联菜单
log to file  存储到文件
Read from file 读入一个文件的内容
Copy  复制到剪贴板
Clear  清除窗口中所有内容
Disassembly 反汇编选项
如加载了映像,则显示反汇编代码
如未加载映像,则执行如下操作之一:根据默认的开始地址和代码种类,生成一个反汇编文件.如果映像文件不包含调试信息,则按用户确认的方式显示一个反汇编文件.
Source  打开源文件
Trace  如果用户被准许使用 Trace Debug Tools,目标处理器就支持Trace功能.
12.5.4 与目标系统相关的视窗 System Views
1. Control Monitor 控制监视器窗口
1. Target 显示目标处理器及协处理器 
2. Image 列举目标存储器中的映像文件
3. Files 列举目标中映像文件包含的源文件
4. Class 类,和全局变量
2. Registers 显示寄存器窗口 
3. Watch  观测项窗口
4. Breakpoint 断点窗口
5. Watchpoint 观测点窗口
6. Output  打开输出窗口
1. RDI Log  列举了使用 Remote debug Interface 的函数 
2. Debug Log 显示两种与调试过程相关的内容
一种是断点注释字符串,可以设置一种为运行注释的断点,当程序执行到断点时,显示注释字符串.
另一种是报警,错误信息和调试信息
右键级联菜单:
log to file 存储当前

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。