网站大量收购独家精品文档,联系QQ:2885784924

嵌入式系统8(ARM程序的调试)解读.ppt

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式系统8(ARM程序的调试)解读

硬件断点 0x8000 ARM - 0x3 Thumb - 0x1 0xffffffff Opcode fetch 0x8000 Memory Breakpoint to be set here Control Addr Value Data Value Control Value Addr Mask Data Mask Control Mask A[31:0] C o m p a r a t o r Breakpoint D[31:0] 当内核试图执行内存里一个特定地址的指令时,将会触发一个硬件断点. 这个例子里,当要执行从地址0x8000索取的指令时,将会触发一个硬件断点. 硬件断点可以在RAM或ROM里设置. 每个观察点单元可以被用来设置一个硬件断点,而且只能一个. 软件断点 Memory 0xffffffff 0xeeeeeeee 0x0 Opcode fetch Control Addr Value Data Value Control Value Addr Mask Data Mask Control Mask A[31:0] C o m p a r a t o r Breakpoint D[31:0] 1. Read and store opcode 2. Write “special” value 一个软件断点是当一个特定的指令从任何地址被预取时触发的一个断点. 这个例子表明了观察点单元的配置 – 这对所有的软件断点都是一样的. 为了设置一个断点,可以使用Multi-ICE在特定的地方写一个特别的指令.这些只能在RAM里在操作. 每一个观察点单元可以用来设置无数的软件断点. (The “special” value) 西安电子科技大学计算机学院 * 命中一个断点 停止模式调试(由标准的 EmbeddedICE EmbeddedICE-RT支持) 内核进入调试状态和停止状态 内核与系统的其余部分分离 发出DBGACK信号 ( 调试器通过JTAG而检测到) 没有中断处理,除非调试器重新启动执行代码 处理器和系统的状态可以通过扫描内核的指令来察看和修改,紧接着执行它们 监控模式调试(只由增强功能的 EmbeddedICE-RT支持) 在ARM9E, ARM10 和稍后的ARM7TDMI版本上有 内核通过一个异常中断而进入常驻软件监控程序 可以连续处理中断 处理器和系统的状态可以通过监控程序的调试命令来察看和修改 西安电子科技大学计算机学院 * 断点的类型 硬件断点 在ARM中直接设定watchpoint中的地址,当ARM运行到指定的地址时,就进入Debug状态 数目受EmbeddedICE中的Watchpoint数目(2个)的限制;但是,可以在任何地方设置断点 软件断点 改变存储器中的ARM指令为一个特殊的数据X(ARM的未定义指令),同时,设置watchpoint中的断点数据也为X,当ARM把X数据作为指令读入的时候,ARM就进入Debug状态 数目不受限制,但是,软件断点是通过替换系统的断点地址的指令实现的,所以,软件断点只能在可写的存储器的地址中设置(比如:RAM),而不能在ROM(比如:Flash)中设置 西安电子科技大学计算机学院 * 谢谢! * * * 嵌入式系统 第八讲 ARM程序的调试 西安电子科技大学计算机学院 * 本节内容 调试的基本要求 调试方法简介 基于JTAG的片上ICE 1 调试的基本要求 使程序能够在用户控制下运行 对感兴趣的数据进行访问和观察(WatchPoint) 对感兴趣的指令设置断点(BreakPoint) 单步执行 检查与改变处理器的状态 对各寄存器进行读写 检查与改变系统的状态 对系统存储器的访问 下载代码(Download Code) 保存存储器内容(Save As) * 2.1 PC 上的调试 程序编写、项目管理、编译、调试都在同一台计算机上完成(IDE, Integrated Design Environment 集成设计环境) MS VC++ MS VB Borland C++ Builder 一般是通过在断点插入相关的调试软件指令来实现调试功能的 * 2.2 基于模拟器的调试方法 定义: 使用模拟器对复杂的系统进行建模,用软件来模拟硬件系统的功能。 没有硬件的情况下在PC机上模拟系统运行相应程序 用途: 用于系统的前期算法分析和体系结构设计。 用于应用程序的开发。 缺点: 难以真实反映SOC芯片的所有外设:中断无法处理。 通过PC的外设模拟系统外设,有一定的限制。 难以进行实时性的系统仿真。 难以进行设备驱动开发。 * I 指令集模拟器的调试方法 利用主机(一般是PC)的资源构建一个虚拟的目标机系统,该系统通过解释执行目标处理器的二进制代码来仿

文档评论(0)

33ggoup + 关注
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档