几种调试处理器系统的常见方法
Hsiao Chen 2021-07-30

  在任何产品设计过程中,设计人员通常要将相当长的一部分时间,用于系统的集成性和软硬件调试。在引擎管理、硬盘控制和调制解调器之类的实时系统中尤其如此。

  嵌入式系统中,由于嵌于ASIC或用户芯片的内部,系统调试变得更加困难,因为通常对处理器总线和信号的接入都是有限制的。在多处理器系统中(如硬盘驱动器、寻呼机、手机中常见的控制器-DSP体系结构)更是如此。

  本文简要回顾了几种调试处理器系统的常见方法,并介绍了ARM公司新开发的调试方法,即通过使用电路内仿真器(In Circuit Emulators)、监控程序(Monitor Programs) 和逻辑分析仪(Logic Analysers)解决存在的问题。

  电路内仿真器(In Circuit Emulators,即 ICE)

  ICE由实时探测、实时追踪和记忆仿真组成,所有这些集成在一个统一的用户界面上。这能为软件工程师提供一个硬件保护层。此外,ICE不需要周围系统全部正常工作后才能调试,因而在软件开发和硬件开发之间提供了一定程度上的平衡,有利于缩短产品上市时间。

 标准ICE存在的问题

  ● ICE的众多接点会影响目标系统的正常时序,从而降低其最快速度;

  ● ICE的存在使得处理器的更换牵涉到非常复杂的接点,更换处理器同时会改变原来的电气特性,这样就意味着有可能产生很多不可预知的问题;

  ● ICE的发布要落后于处理器,通常在一个新的处理器出台后的6-9个月的时间才会有与其配合的ICE;

  ● 一个深度嵌入的CPU需要很多的引脚才能将内部信号传递到ICE;

  ● 考虑到ICE所需要的资源,有些处理器的用户变量可能不被ICE所支持;

  ● ICE的成本可能十分昂贵。

 调试监控程序(Debug Monitors)

  在目标系统中安装调试监控程序是ICE外的另一个选择,它能为用户提供测试和调试软件所需的许多功能,例如设定断点、从目标存储器中上载数据以及下载应用程序等。

  这种方法的优势在于开发的软件可以在同一个处理器上运行,并且能将硬件与最终系统进行整合。而且Debug Monitor价格低廉,能帮助节约系统开发成本。另一方面,目标系统的ROM中必须存有一个监控程序,这是一个很大的问题,因为它必须从最终产品中撤除,否则就会增加额外的开销。

  另外,运行调试程序的主机和目标之间还需要一个通信通道。通常目标系统使用UART来实现。UART的驱动程序应在监控程序之前完成与目标系统结合的移植工作。

  监控程序的代码也必须根据具体的目标系统进行移植,这意味着在系统硬件中,应保证主要的部分在监控程序启动之前能够正常工作。

 逻辑分析仪

  逻辑分析仪的调试功能并不十分完备,因而常常作为以上两种调试方法的有效补充使用。这是由于逻辑分析仪只能提供一个代码执行过程的回顾。用户无法改变变量或跳转至程序的其他位置,所以,在没有重新编译的情况下, “假设分析”测试无法进行。除此之外,许多逻辑分析仪只配置了一个定容量的存储器,因此每次运行的追踪量是受到限制的。

 ARM的嵌入式ICE(EmbeddedICE)解决方案

  ARM在支持这些传统调试工具的基础上,开发了全新的调试方案,希望解决传统工具无力解决的问题。为了简化调试过程,这种新的解决方案并没有限定于某一硬件或软件开发,而是一种面向系统调试的整体性方案。

  EmbeddedICE结构体系包括:

  ● 一个与EmbeddedICE兼容的ARM核(如:ARM7DI),带有边界扫描接口和调试功能增强;

  ● 一个外部EmbeddedICE接口盒,连接开发主机和ARM内核;

  ● ARM SDT2.01主机软件开发和调试工具。

  EmbeddedICE是一个面向ARM的JTAG的调试通道。它为ARM 的Windows工具包和嵌于ASIC中的ARM微处理器提供一个接口。

  EmbeddedICE具有诸多ICE功能,例如实时寻址、断点、单步、对ARM CPU的完全控制、对ASIC系统其余部分的访问,以及对主机显示器外设的访问、键盘输入和磁盘存储。后三者保证了开发人员能够从目标向主机发送调试信息,并显示在主机屏幕上。

  ARM EmbeddedICE解决方案的优势在于:

  ● 无需ICE 接点或串行接口等目标资源或特殊硬件。在目标系统中无需专门用于调试的RAM、ROM和特殊软件(因此,目标系统中的软件不必修改,可直接与ARM EmbeddedICE体系兼容);

  ● 边界扫描引脚可复用,不用增加引脚数量;

  ● 成本低廉,不需要专门的ICE芯片;

  ● 可以在系统最高速度下进行调试;

  ● 完全的主机系统访问,包括屏幕、键盘、目标存储等;

  ● 无需移动处理器 。这解决了许多问题,例如昂贵的接点、性能不稳定和电路电气特性的改变等等;

  ● 调试无需另外的通信通道;

  ● 与任何嵌入式ARM系统兼容;

  ● 支持多处理器的调试。

  一个与EmbeddedICE兼容的ARM7DI宏单元包括一个ARM7内核、少量的内核调试逻辑、一个JTAG测试端口( TAP)控制器和EmbeddedICE宏单元。

  EmbeddedICE宏单元包括断点寄存器,后者能够比较地址、数据和控制总线同寄存器内的设置值。若两者匹配,会产生一个断点信号,该信号将被传送到处理器。举个例子来说,当一个特定地址的指令或一个特定的数据值被加载入指定的位置,宏单元就会产生一个断点。

  如果在一条指令上设置了断点,当指令到达流水线的执行级时,指令的执行将被中断,处理器进入调试状态。然后,处理器和存储系统通过TAP控制器由JTAG进行状态检测。

  一旦处理器进入调试状态,它就会停止从数据总线读取指令,并且与存储系统隔离。EmbeddedICE此时就可以通过扫描链1将指令读入流水线、驱动处理器。寄存器和存储内容在调试状态下仍可以进行访问。这个过程是可逆的,用户可以在调试器下把代码下载进存储器,避免了烧写EPROM的不便。

 EmbeddedICE在多处理器debug中的使用

  EmbeddedICE宏单元提供的调试特征使ARM处理器能够在多处理器环境下进行调试。当ARM处理器遇到一个断点时,它的执行就被中断,控制权通过JTAG接口交由调试器。此时,ARM处理器向存储系统发出一个“调试确认”(Debug Acknowledge)信号,告知后者处理器处于调试状态。

  同时,它不再向存储器发出访问请求,保证了其它处理器或者DMA通道继续工作、继续与存储系统通信。在调试过程的最后,ARM处理器会发出一个“存储请求”(memory request)信号,系统控制器将根据此信号对存储系统作出仲裁。

  EmbeddedICE 接口盒

  EmbeddedICE 接口盒在ARM软件工具包的调试器协议和JTAG协议之间执行协议转换。“在这个地址上设立一个watchpoint”之类的要求被转换成JTAG TAP控制器状态转变序列、指令和数据序列。

  协议转换器可以根据不同的目标系统进行配置,例如,对含有不同扫描链布局的ARM7DI,也可以进行配置。

  EmbeddedICE宏单元同时支持通信通道。通信通道在目标系统上提供了一个类UART的串行端口。它与处理器紧密相连,且不需要额外的引脚,因为它复用了JTAG口的引脚。这种方法需要在目标系统上安装软件而不需要UART。

  程序开发过程

  程序是在运行ARM WindowsTools 2.0的PC主机开发的。这个工具包含有编码所需的C语言编译器、汇编程序和

  微软Windows平台下的窗口调试器以及Unix和DOS下的命令行调试器一起提供了调试支持。这些工具能提供完全C源代码或汇编语言级的调试。ARM的调试器既可以在指令精确模拟器(ARMulator)又可以在目标硬件上进行代码调试。软件模拟与真实芯片之间的转换只需在对话框中的轻轻一点即可。软件工具界面继续保持不变,用户可以无阻碍地在各目标之间切换。

  ARMulator经过配置,可以为存储器分段指定不同的速度来仿真目标硬件。设计人员可以通过使用C 的建模工具,来对存储器配置中三个最重要的因素:速度、空间和功耗进行优化。

  ARMsd是一个符号调试器,用户可以用它设置断点(指令读取阶段)和观察点(数据加载和存储阶段)、检测和修改处理器及存储器的状态。无论调试对象是芯片还是ARMulator,这个过程都能独立完成目标程序中的semihosting也能够被支持。这意味着包含ANSI C 库函数的程序可以直接移植到目标,无法被目标支持的请求将被主机中途截取。例如:C 库函数发出将状态信息显示在屏幕的请求被中途截取,这些信息将显示在主机的屏幕上。

 结语

  调试工具多种多样,它们各自具有不同的功能和价格。这些工具对于系统设计者来说,仍是一笔宝贵的资源,但是,随着系统的日渐复杂化和集成化,人们需要与之相适应的新的开发环境。

  在系统设计中,处理器内核常常是嵌入在AS中的,传统的调试方法已不再适用。嵌入式调试体系(例如:ARM调试体系)成为了把握当今复杂系统市场的关键。

  要保证产品在最短的时间内完成开发,一个完整的测试和调试环境是必需的,其中包括初始产品测试、系统设计仿真、最终产品测试等一系列调试工具。

声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
热门推荐
  • 相关技术文库
  • 单片机
  • 嵌入式
  • MCU
  • STM
  • ARM Cortex系列处理器知识点汇总

    最近因为要为芯片选定核,所以就在了解哪些核合适且性价比好,这是一个需要结合产品各类技术、市场分析的活,看似简单却还是需要一些储备的,今天选了一篇ARM Cortex系列的科普文章与大家分享。 众所周知,英国的ARM公司是嵌入式微处理器世界当中的佼佼者。AR

    05-11
  • 你的CPU属于哈佛结构还是冯诺依曼结构?

    现代的CPU基本上归为冯诺伊曼结构(也称普林斯顿结构)和哈佛结构。 冯洛伊曼结构就是我们所说的X86架构,而哈佛结构就是ARM架构。一个广泛用于桌面端(台式/笔记本/服务器/工作站等),一个雄踞移动领域,我们的手持设备(平板\手机用的大多就是他了)。 01

    05-10
  • 如何批量修改MCU封装管脚定义

    在做产品开发时,为了缩短研发周期,我们一般都是直接找来参考设计做参考。这些参考资料要么是来自原厂的,要么是来自方案商的。  接触过这么多的参考设计资料,发现大部分的资料都有一个通病,就是不少MCU的PIN脚定义都只是标出IO口的定义,其它复用​​​​功能

    05-08
  • MCU为什么要消抖动

    简单的说,进入了电子,不管是学纯模拟,还是学单片机,DSP、ARM等处理器,或者是我们的FPGA,一般没有不用到按键的地方。按键:人机交互控制,主要用于对系统的控制,信号的释放等。因此在这里,FPGA上应用的按键消抖动,也不得不讲! 一、为什么要消抖动 在

    05-07
  • 51单片机的ISP下载知识

    本文详细介绍了串口、51单片机的ISP下载等基础知识,已经学过单片机的也可以看看,加强一下对这方面的了解。 串口 串行接口简称串口,也称串行通信接口,是采用串行通信方式的扩展接口。 我们比较熟悉的USB接口,全名通用串行总线(Universal Serial BUS),就

    05-06
  • 硬件开发如何选择合适的MCU

    点击上方关注我们! 我在做硬件开发时,如果遇到的是一个新产品,新项目,之前没有做过的,没有任何的经验,在选MCU时,我一般是这样操作的。 首先,根据产品的需求,整理出一份硬件规格。比如,电源管理,传感器接口,人机交互接口等。 然后,整理出整个原理

    05-06
  • 单片机的功耗怎么算的?

    单片机的功耗是非常难算的,而且在高温下,单片机的功耗还是一个特别重要的参数。暂且把单片机的功耗按照下面的划分。 暂且把单片机的功耗按照下面的划分。 1.内部功耗(与频率有关) 2.数字输入输出口功耗 2.1输入口 2.2输出高 2.3输出低 3.模拟输入口功耗从

    05-07
  • 嵌入式工程师必备工具:I2C和SPI总线协议

    IIC vs SPI 现今,在低端数字通信应用领域,我们随处可见IIC (Inter-Integrated Circuit) 和 SPI (Serial Peripheral Interface)的身影。原因是这两种通信协议非常适合近距离低速芯片间通信。Philips(for IIC)和Motorola(for SPI) 出于不同背景和市场需求

    04-30
  • 嵌入式面试注意事项

    找工作也是一门技能,有的人很快就找到自己喜欢的工作,有的人找了很久也没找到合适的工作。 下面给大家分享几点找工作过程中存在的“潜规则”内容。 1、面试的本质不是考试,而是告诉面试官你会做什么 经验不够的小伙伴特别容易犯的一个错误,不清楚面试官到

    04-29
  • 为什么需要RTOS?

    很多单片机初学者都是从裸机开始的,裸机确实也能开发出好的产品,但作为一个嵌入式软件工程师,如果只能用裸机开发产品,那肯定是不够的。 要从裸机的思维转变到RTOS的思维,其实需要一个过程,而且开始的一段时间会很痛苦。但过一段时间理解了一些内容,能

    04-28
  • 使用RTOS的8个理由

    嵌入式系统中,有很多方式实现任务调度。功能有限的小系统中,无限循环足够实现系统功能。当软件设计变得庞大且复杂时,设计师应该考虑使用实时操作系统。 下面给大家分享使用RTOS的8个理由: 1.硬实时响应 基于优先级抢占的RTOS,根据任务的实时需求,执行优

    04-26
  • 单片机延时程序,Keil C编译器实现

    应用单片机的时候,经常会遇到需要短时间延时的情况。需要的延时时间很短,一般都是几十到几百微妙(us)。有时候还需要很高的精度,比如用单片机驱动 DS18B20的时候,误差容许的范围在十几us以内,不然很容易出错。这种情况下,用计时器往往有点小题大做。而

    04-26
下载排行榜
更多
广告
X
广告