实时嵌入式系统软件调试问题分析
。某些处理器架构就容许应用监测数据总线的活动,从而能抓住相应事件。 探寻架构特有的功能: 大多数嵌入式处理器都支持某种层次上的调试功能。内置的跟踪单元就是一种得到硬件支持的跟踪机制。例如,ADI公司的Blackfin处理器系列就具有硬件跟踪单元,它可以跟踪至少16路的时序控制器的访问。当硬件跟踪缓冲器充满后,就会产生跟踪异常。使用这种跟踪单元后,人们可以构建出完整的执行路径。所提供的跟踪输出来自于一种可以免费提供的工具(http://www.blackfin.org/) ,它可以构造完整的执行路径。 观察点: 观察点可以让你监测特定的内存位置或者内存块区正在被更改时出现的情况。观察点可以监测内部的数据总线传送,如果在观察点寄存器中,发现任何匹配的对象,则让处理器暂停。如果一个特定内存位置不断出现讹误,则观察点就非常有用。对内存块区进行观察以查看是否有任何正在损毁存储器数据的恶意代码。 大多数当前的调试环境都容许对内存和寄存器的内容进行修改。有时,修改寄存器的内容,可以让我们洞察何处出现了故障。例如,通过更改程序计数器,你可以迫使程序在特定函数出现时恢复执行。必须谨慎地对恰当的寄存器设定恰当的量值,具体方式则取决于处理器C函数的运行时间模型。另外一个有用的寄存器是IMASK,如果你正在调试任何一种实时操作系统,则调试(分步深入时)进程中任何时刻都会出现中断。由于调试后的代码不一定处于关键区,你可能几乎时时刻刻都要访问中断的例程。你可能无法屏蔽中断,因为它们让你的系统完成设定,并运行起来。例如,任何系统中的定时器的中断都可能会被触发。更好的方法是对IMASK寄存器进行编辑,将所有的中断都屏蔽掉,直到你调试完代码为止。 结论: 总之,由于调试是开发过程的最后步骤,因此它将对产品上市时间造成直接的影响。调试本身也是难以调度的,因为所发现的问题在复杂性和可避免性方面都大相径庭,上面所讨论的是一些在嵌入式系统开发期间常见的问题。这些调试技巧和提示旨在着重强调节省时间,因此在开发复杂的嵌入式系统时,应用现代的开发工具和拥有丰富调试功能的处理器能够改善投资收益。
- 嵌入式系统的VxWorks安全性问题研究(11-06)
- DSP编程过程中的几个关键问题的研究(06-05)
- 教你构造一个51单片机的实时操作系统(08-22)
- DSP开发中值得注意的问题(02-16)
- 基于DSP编程的几个关键问题(03-26)
- 调试前的组网故障问题总结(12-19)