您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术一种新的嵌入式处理器在线调试方法 正文
一种新的嵌入式处理器在线调试方法

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

点击数:7734 次   录入时间:03-04 11:51:34   整理:http://www.55dianzi.com   嵌入式系统-技术

调试命令寄存器由PICoBlaze 和辅助处理器共同控制,辅助处理器向该寄存器写不同的数代表不同的调试命令。在运行DR 时通过查询该寄存器来实现对各种调试命令的响应,在响应调试命令之前PicoBlaze 将调试命令寄存器清0,作为与辅助处理器的握手操作机制。当向调试命令寄存器写3 时,不管是否设置了断点都会立即产生DI 信号。

4. 2 软件实现

在基于PicoBlaze 的应用中,为了减少代码容量,DR 的流程比较简单。在初始化准备之后,依次将s0 ~ sb 寄存器、64byte 的内部RAM,Memory 空间中的数据输出到双口RAM 中,然后陷入一个等待和处理调试命令的循环中。目标程序和DR 执行环境的隔离通过限制目标程序只允许修改寄存器s0 ~sb 以及64byte 的内部RAM,而DR 只允许修改寄存器se ~ sf 来实现。只有当调试命令为退出调试时,DR 程序才会结束,PicoBlaze 又返回到目标程序的执行。当调试命令为刷新调试信息时,PicoBlaze 将重复一次初始化和调试信息输出的过程。

4. 3 实际验证和使用情况

在应用UDM 之前,首先通过NC - verilog 对其进行了仿真,部分仿真波形如图3 所示。图中反映的是当作为DI 的信号pdm_ int 产生了之后,PicoBlaze怎样转入执行DR 的,限于篇幅,验证其他各种功能的仿真波形不在此赘述。

UDM 的部分仿真波形
UDM 的部分仿真波形
图3 UDM 的部分仿真波形

为了进一步对UDM 的功能和性能进行完备的检验,在FPGA 中建立了如下简单的PicoBlaze 处理器系统。PicoBlaze 外部只接一块252X8bit 的RAM和UDM,PicoBlaze 上的目标程序流程为如下的死循环: 将s0 ~ sb 依次置入0 ~ 11,再反过来依次置入11 ~ 0; 将64byte 的RAM 依次写入0 ~ 63,再反过来写入63 ~ 0; 将外部的RAM 依次写入0 ~ 251,再反过来写入255 ~ 4。这样的一种简单设计,可以保证从输出的调试信息直接看出处理器在哪行代码处响应了断点。

如图4 所示为在调试主机上进行调试控制的界面。偏移地址0x184 处的1040 表明在38 与44 两行代码处设置了断点,事实上从地址0x180 ~ 0x1ff处都可以设置断点。地址0x200 处为当前的PC 值,通过向地址0x208 处写1 可使其更新; 地址0x202处为UDM 的使能位,当其为1 时UDM 才被使能; 地址0x204 为调试命令寄存器,向其写1 使处理器从断点退出,写2 使处理器刷新调试信息,写3 使处理器强制进入DR 输出调试信息; 地址0x206 处表示调试状态,当其为3 时表明处理器在运行DR,并且调试信息已经输出完毕。

www.55dianzi.com

使用UDM 调试的控制界面
使用UDM 调试的控制界面
图4 使用UDM 调试的控制界面

显示调试信息的界面如图5 所示,地址0x00 ~0x0b 显示寄存器s0 ~ sb 的数据,地址0x0c ~ 0x3b显示内部64byte 存储器的数据,地址0x4c ~ 0x14b显示PiCOBlaze 外部Memory 空间的数据。由于图5中断点正好设置在完成依次向PICoBlaze 的Memory空间依次写0 ~ 251 之后,因此显示的数据是递增的。当断点正好设置在完成依次向Pico Blaze 的Memory 空间依次写255 ~ 4 之后,所显示的数据就变为递减。在很多其他断点处显示的调试信息与断点设置的位置也符合预期的情况,因此UDM 完全可以正确而高效地工作。

在第44 行断点处显示的调试信息
在第44 行断点处显示的调试信息
图5 在第44 行断点处显示的调试信息

在开发一款信号处理芯片的FPGA 原型设计中,跟踪处理、电文处理、整体流程控制分别由一个PicoBlaze 完成,并且由于FPGA 资源的限制采用大型处理器来替代上述处理器几乎不可能。由于输入PicoBlaze 的数据和控制信号复杂,仿真验证不能很好地覆盖各种实际的使用情形。通过使用这里的基于PicoBlaze 处理器设计的UDM,方便地实现了对上述3 个PicoBlaze 的在线调试,对提高开发效率发挥了重要作用。在其他使用PicoBlaze 的工程应用中,上述UDM 也得到了很好的推广。

5 结束语

设计了一种通用调试模块,用于辅助无调试接口的处理器建立标准的调试机制。通过该模块的使用,提出了一种通用、标准、方便的调试方法,很好地满足了在SOPC 系统中对多个没有调试接口的小巧型处理器实现在线调试的迫切需求。新方法通过产生调试中断使处理器跳转到调试服务程序中的方式实现处理器的挂起,通过基于双端口RAM 中一种巧妙的地址映射机制实现同时对多行代码设置断点的功能,通过调试服务程序实现数据搬移等调试命令。新方法还具有易于扩展,可以同时调试多个嵌入式处理器的优点。新的调试方法在工程实践中对提高调试效率发挥了重要作用,是一种普适的,应用价值明显的调试方法。



上一页  [1] [2] 


本文关键字:处理器  嵌入式  在线  嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术