嵌入式处理器的在线调试方法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【Word版本下载可任意编辑】 PAGE 1 - / NUMPAGES 1 嵌入式处理器的在线调试方法 在FPGA 设计中使用嵌入式处理器软核( 如MicroBlaze、PicoBlaze 等) 构成可编程片上系统( SystemOn Programmable Chip,SOPC) ,相比于ASIC 具有更好的可修改性和可维护性,得到了普遍的应用。由于ARM,MicroBlaze 等大型处理器内核具备调试接口,在与之对应的调试模块配合下,调试软件可以通过JTAG 接口实现: 执行到断点处挂起、单步执行、查看处理器内部状态、查看和修改Memory空间中的数据等基本的在线调试功能。上述基本的在线调试功 能对嵌入式系统的调试具有重要意义。 对于PicoBlaze 等占用资源少、设计开发简单的小巧型处理器,一般不具备调试接口,然而在SOPC系统设计中经常需要使用上述处理器。使用上述处理器时,由于没有调试接口,属于大型处理器的标准高效的调试机制不再能够使用,因此通过指令集仿真( ISS,Cycle - accurate Instruction Set SimulaTIon) 和利用仿真工具对含有处理器的系统开展软硬件协同仿真是确保设计正确性的重要途径。 然而在诸如接收机基带信号处理等系统的设计中,仿真所用的测试用例往往覆盖率不够,或者在发现故障以后很难构造出与之相应的测试用例。因此迫切需要使在线调试功能能够方便地扩展到一般的处理器上。 针对上述应用需求,这里提出的新调试方法通过引入一种通用的调试模块( Universal Debug Module,UDM) 可以使没有调试接口的处理器建立起标准的调试机制。该调试模块利用处理器的中断机制实现处理器响应断点( breakpoint) 的机制,利用基于双端口RAM 中一种巧妙的地址映射机制实现同时对多行代码设置断点的功能,并且能够方便地实现被调试系统和调试主机之间调试信息和命令的交互。UDM 还具有易于扩展的优点,当SOPC 系统中有多个处理器时可以 共用一个UDM。 对于没有调试接口的处理器目前主要是通过在软件和硬件设计中充分考虑可能的调试需求,再加上调试主机和被调试系统之间的通信机制来实现在线调试的。这种调试模式下,调试代码需要插入到正常程序中,将调试信息输出到调试主机,同时还能够接收调试主机发过来的命令做出各种响应。该方法的主要缺陷是针对不同的调试需求,要不断修改正常程序中的调试代码,导致标准化和通用性程度不高。此处的UDM 在不对处理器内核做修改的情况下即可使这类处理器建立起方便的调试机制,是一种不同于主流大型处理器实现在线调试的方法。 使用UDM 的调试系统,利用与FPGA 同在一块PCB 板上的ARM、DSP 等处理器作为辅助调试用的嵌入式处理器( 下文中简称为辅助处理器) ,简化了UDM 与调试主机之间的通信。通过辅助处理器的总线接口,UDM 中的各种控制和数据存放器被直接映射到辅助处理器的Memory 空间。 在辅助处理器开发工具的Memory 窗口直接开展数据读写操作,就可实现对UDM 的操控。由于在一块PCB 板上同时集成FPGA 和嵌入式处理器芯片是很常见的设计,因此这种通信方式适用的范围很广。 UDM 直接作为FPGA 外部辅助调试的嵌入式处理器的外设,如果在外部处理器总线挂接多个UDM 模块,就能实现同时对多个处理器开展调试。 UDM 通过产生调试中断( DeBug Interrupt,DI) 信号,使处理器响应中断并调用调试服务程序( DebugRouTIne,DR) 。UDM 通过监测处理器的取指令地址( InstrucTIon Address, IA) 产生DI 信号。PicoBlaze 在运行DR 时可通过其总线接口访问UDM,从而实现调试信息的输出和对调试命令的响应。 产生DI 时由于处理器会立即执行DR,从而中断正常的执行流程转为为调试服务,因此决定DI 产生的时机是实现断点机制的。DI 信号是通过监测处理器的取指令地址( InstrucTIon Address, IA)产生的。直接通过一个比较器将IA 与一个数据比较只能设置一个断点,为了解决此矛盾采用了如下方法: 在UDM 中用双口RAM 存储断点配置信息,使RAM 中的每1bit 与程序存储区的一个地址对应起来,数据为1 代表设置了断点,0 代表没有。 将输入的IA 开展地址变换后对RAM 存储区寻址,使得RAM 在一端输出一个正好代表输出的地址处是否设置了断点信息,再根据此数据就可生成正确的DI 信号。在双口RAM 的另外一端,断点设置情况可以方便地被

文档评论(0)

183****5020 + 关注
实名认证
文档贡献者

本账号部分文档来源于互联网和内部收集,仅用于学习交流,版权为原作者所有;文档内容纯属来自网络意见,与本账号立场无关。涉及政治言论一律相应删除,请大家监督;请下载试用后二十四小时内删除。

1亿VIP精品文档

相关文档