控制/MCU
曾经有一段时间,对微控制器单元 (MCU) 进行编程需要编程工具来加载代码,需要模拟器来尝试,调试器来帮助定位和修复错误。今天,复杂的编程器/调试器工具以非常经济的价格提供更多功能。与集成开发环境 (IDE) 一起使用时,它们为使用单个组件更有效地对设备进行编程和调试提供了一种途径,从而降低了开发成本并加快了上市时间。
调试涉及三个主要元素:IDE、调试器引擎和程序员/调试器工具。IDE 在计算机上运行,通常包括源代码编辑器、编译器和用于常用子例程(驱动程序等)的软件库等元素。调试器引擎由集成到 MCU 中的调试电路组成。编程器/调试器工具与目标设备连接,并在测试代码、将性能和故障信息传递给开发人员的过程中对其进行询问。
对 MCU 进行编程的基本过程包括首先使用高级语言(通常是 C 或 C++)开发代码,然后编译代码。接下来,编程工具将代码从 IDE 移植到仿真器中,该仿真器旨在模拟 MCU 或 MCU 本身的性能。
仿真器提供了一个生成适当输出信号的测试接口,以及一系列复杂的调试工具。STMicroelectronics的模块化STice 系统以高达 50 MHz 的时钟速度模拟其 STM8 MCU。通过对代码或数据的覆盖分析,该系统为整个 MCU 内存空间提供无限的指令断点,以及数据断点和具有多达四级用户配置条件的高级断点。
越来越多的趋势是跳过仿真器并将调试引擎直接集成到芯片本身中。事实上,STice 系统还通过单线接口模块 (SWIM) 提供实际 MCU 的在线调试/编程。这种转变部分是由于更复杂的芯片制造技术,部分是当今高速芯片的功能。事实上,开发人员经常不得不在实际的 MCU 上进行测试,因为模拟器不再能够充分模拟它们。
尽管调试引擎在控制器上占据了宝贵的空间,但它可以以惊人的低成本实现,并且通常不会对运行造成速度或功率损失。同时,集成方法提供了多种好处。设计用于在 MCU 本身上进行测试的编程器/调试器的成本可能比仿真器低 4 到 20 倍。他们还可以加快上市时间。开发人员无需遵循测试和实施的两步过程,而是可以在生产中看到的相同硬件上执行所有测试和调试,这种方法可以最大限度地减少问题和延迟的可能性。如果开发团队在生产过程中发现错误,他们可以开发解决方案,将新固件部署到目标设备中,并使其快速启动并运行。
也许最重要的是,开发人员所见即所得。使用仿真器时,测试版本可能无法完全反映实际芯片的性能。通过将调试器引擎直接集成到芯片中,开发人员可以放心,他们在编程过程中看到的性能正是他们在发布期间将遇到的性能。
选择正确的调试器
不同的微控制器和编程器/调试器具有不同的功能和复杂程度。Microchip Technology的PICkit 3 编程器/调试器例如,允许用户定义硬件断点并根据内部事件(如数据读取或写入或堆栈溢出)建立断点(图 1)。它还可以监视内部文件寄存器。该工具提供 512 KB 的 EE 程序映像空间。它还具有真正的电压基准,电压范围为 1.8 至 5 V VDD(1.8 至 14 V VPP)。
图 1:设置用于调试的 PICkit 3 编程器 / 调试器。该图显示了内部保护电路。(由 Microchip Technology 提供。)
MPLAB ICD 3的复杂性更上一层楼,可容纳以最高速度运行的处理器,并能够整合 I/O 端口数据输入。
STMicroelectronics 与 Raisonance 合作,为其选定的 MCU 提供STX-RLINK评估套件。该工具由 Ride7 IDE 驱动,提供高达 32 KB 代码的在线调试,并支持 SWIM、在线通信 (ICC) 和联合测试行动组 (JTAG) 协议。该软件还允许将其用于某些 MCU 的在线编程。
更复杂的工具可以提供数据捕获,允许用户在 IDE 中实时观察数据变量的变化。调试器引擎可以提供复杂的断点,使开发人员不仅可以定义代码执行的停止点,还可以定义其他细微之处,例如在子例程重复一定次数后暂停执行,然后系统可以询问寄存器并将输出发送到 IDE。在其他情况下,引擎可以捕获硬件跟踪,显示芯片的输出信号和各种指令序列。
Microchip 的MPLAB REAL ICE例如,直接连接到目标 MCU 的在线仿真器系统可以以 10 KB/s 的速率记录指令执行和可变内容,用于 4 MHz、16 位内核。用户可以选择使用设备 I/O 端口的流式并行跟踪或使用 SPI/UART 的流式串行跟踪。探头驱动器具有保护电路,可防止目标产生的电涌损坏。对于要求苛刻的应用,低压差分信号 (LVDS) 可在长达 3 米的距离内提供高速、低噪声的电导率。
调试器可以将面包屑放入代码中以允许跟踪,然后发出代码已到达 A 点、B 点、C 点等的信号。这种方法允许开发人员跟踪代码流并检查子程序的正确执行,让用户更深入地挖掘代码,更容易发现问题。
借助多种可用选项,您可以轻松找到具有适合您应用程序的功能集的编程器/调试器工具。重要的是要注意,该领域的术语往往有些流动——一些工具被称为编程器,但也被称为调试器,其他工具被称为仿真器/调试器,但连接到目标设备以运行代码。在其他情况下,仿真器可用于调试实际芯片。请密切注意数据表,以确保您获得所需的性能。
全部0条评论
快来发表一下你的评论吧 !