您当前的位置:五五电子网电子知识单片机-工控设备ARM单片机基于ARM7内核的嵌入式应用程序调试技术(2) 正文
基于ARM7内核的嵌入式应用程序调试技术(2)

基于ARM7内核的嵌入式应用程序调试技术(2)

点击数:7335 次   录入时间:03-04 11:35:38   整理:http://www.55dianzi.com   ARM单片机

3.2在源代码级调试ROM中的目标文件
由于当前嵌入式应用程序复杂性的增加,代码容量越来越大,国内嵌入式系统中代码达到1M字节的并不少见。在开发嵌入式应用系统时,通常是将程序代码装载到RAM中运行调试,这将占用大量内存空间,提高系统成本。
   EmbeddeDICE或Multi-ICE,与ARM调试器通过JTAG端口联接到ARM内核的EmbeddedICE逻辑电路上,使用户能够调试固化在ROM中的代码。为了使用源代码级符号调试信息调试ROM代码(设置断点,单步运行等),用户需要生成两个文件:
(1)代码的二进制文件,用于固化在EPROM里或者下载到用户系统上的FLASH里。该二进制文件不包含任何调试信息。
(2)相同代码产生的带有附加调试信息的文件,通过选择窗口调试器菜单的“File-〉Load symbol only”或者符号调试器的“readsyms”指令装载到调试器中。
使用仿真器调试固化在ROM里的程序时,要注意两个问题:
(1)首先要将调试器内部设置的$vector_catch 与$sEMIhosting_enabLED设为零,禁止向量捕获和半主机软件中断。因为仿真器能够控制这些会俘获异常行为的区域(0x00-0x1c,中断向量表地址)。俘获异常行为是通过用一个无用的二进制位值0xDEEEDEEE覆盖中断向量,调试器存储中断向量的原始值,显示给用户。只要该二进制值被提取并到达管道的执行阶段,调试器就会调用自身的SWI(软件中断)服务程序处理异常行为,然后通知用户,这样用户将无法调试自己的中断服务程序。
(2) 对于ARM7xDI内核,用户最多只能设置两个断点,这是因为EmbeddedICE宏单元
 只有两个实时观测单元,这两个单元可以设置为断点或观察点。例如:两个ROM   
 中的硬件断点,或一个ROM中的硬件断点与多个RAM中的软件断点,而软件断
 点只能设在RAM中。
结语:
软件模拟器和目标Monitor提供了一种经济的调试手段,对于很多设计来说已经足够。但是也有很多场合,需要利用仿真器来找到程序错误。无论在哪一种场合,仿真器都能够减少调试时间、简化系统集成、增加可靠性、优化测试步骤,从而使其物有所值。更常见的情况是工程师在项目的不同阶段同时使用软件模拟器和仿真器,特别是在大的开发项目中。

作者单位:王京林(解放军信息工程大学基础部电子线路教研室,郑州,450002)
 苏洁(解放军信息工程大学信息技术学院通信工程系,郑州,450002)
         詹横空(武汉工业大学网络中心,武汉,430073)
参考文献:
[1]Vincent Encontre .How to use modeling to implement verifiable,scalable,and efficient real-time application programs.Real-time Engineering,November 1997    
[2] 金 惠 华. 蓬 勃 发 展 的嵌 入 式 计 算 机 结 构.计算机世界,2000(1)
[3]ARM Limited.ARM SOFtware Development Toolkit Reference Guide. 1998




本文关键字:技术  嵌入式  应用程序  ARM单片机单片机-工控设备 - ARM单片机