碧波液压网 欢迎你,游客。 登录 注册

一种新的嵌入式处理器在线调试方法

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  

  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。

  2 在线调试的一般原理

  嵌入式处理器的主流在线调试方法,目前主要有2 种: 后台调试模式( backgroud debug mode,BDM) 技术和基于IEEE P1149. 1 协议的JTAG 调试技术。BDM 技术在Motolora 微控制器中得到了大量的应用,ARM,MIPS 和PowerPC 等处理器都具有基于JTAG 技术的在片调试功能,如ARM 公司提出了基于JTAG 技术的RDI 调试接口标准,主要用于ARM 芯片的调试。处理器内核中通过增加支持调试的扩展设计,可在预留的调试接口输入简单的控制信号,以实现: 处理器挂起( Halt) 、输出PC 值和通用寄存器值、输出和修改Memory 空间中的数据等基本的原始调试操作。通常上述调试接口的设计与指令集架构相关,如MIPS32 提供如下一些调试方法: ①断点指令BREAK; ②一些自陷指令TRAP; ③特殊控制寄存器WATCH,通过编程使得特定的load /store 操作以及取指操作产生特殊的例外;④一种基于TLB 的MMU,通过编程使得访问任意存储器页都可以产生特定的例外。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论