2252735_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2252735_zh-CN

2252735_zh-CN

MCUXpresso IDE 上的 ITM 与 UART 打印。

1. 简介

在嵌入式系统开发中,调试和日志输出对于确保代码正确性和优化性能至关重要。通过实时监控系统状态、捕获异常行为并记录关键数据,开发人员能够快速发现问题并验证功能。在资源受限的嵌入式环境中,选择合适的调试工具和方法显著影响开发效率。

MCXN947 是恩智浦上市的高性能微控制器,提供多种调试和记录解决方案,其中最常用的是ITM(仪器跟踪宏单元)和UART打印。ITM 利用 Cortex-M 内核的调试功能,通过调试接口高速传输数据,使其适用于具有严格实时要求的场景。UART 打印则通过 UART 外设输出日志,具有很强的通用性,适合生产环境。

本文解释了如何在MCUXpresso IDE 中使用这两种输出方法,以提高开发效率和系统可靠性。


2. ITM 和 UART 打印的原理和特点

2.1 ITM – 原理与特点

工作原理:
ITM(Instrumentation Trace Macrocell)是 Cortex-M 内核提供的一项调试功能。它通过调试接口(例如 SWD/JTAG)使用 SWO 实时传输数据。开发人员可以使用ITM_SendChar()函数将调试信息发送到 ITM端口,然后由调试器捕获并显示在 IDE 的调试控制台中。

优势:

  • 高速传输:ITM 利用调试接口的带宽,速度远超 UART(通常超过 10 Mbps)。
  • 低 CPU 占用: ITM 由硬件处理,几乎不消耗 CPU 资源。
  • 无额外外设: 不依赖 UART 或其他外设,节省硬件资源。

劣势:

  • 调试器依赖: 需要连接调试器(如 MCU-Link、J-Link),不能直接用于生产环境。
  • 配置复杂:需要正确的 ITM 端口和调试器设置,这对初学者来说可能具有挑战性。

2.2 UART 打印——原理和特点

工作原理:
UART 打印通过 UART 外设将调试信息发送到串行终端。开发人员通常将printf函数重定向到UART,从而使标准库函数用于日志输出。数据通过 TX/RX 引脚传输,可以使用串行工具(例如 PuTTY、Tera Term)在 PC 上查看。MCUXpresso IDE 还内置了一个用于 UART 调试的终端。

优势:

  • 高度通用:几乎所有嵌入式板都支持UART,使其广泛适用。
  • 生产就绪:不需要调试器,可以直接在生产环境中使用。
  • 易于实施:配置简单,非常适合初学者和快速原型制作。

劣势:

  • 低速: 受限于 UART 波特率,导致传输效率降低。
  • 外围资源使用: 占用 UART 外设和引脚,可能影响其他功能。
  • 实时性能差: 由于中断延迟和波特率限制,不适合高实时场景。

2.3 对比总结

下表总结了 ITM 与 UART 打印的主要特点:

特性 ITM UART 打印
传输速度 高(10 Mbps 或更高) 低(通常为 115200 bps)
CPU 开销 更高
外围依赖 需要 UART 外设和引脚
调试器依赖 需要 不需要
生产适用性 不合适 合适
配置复杂性 复杂 Simple
实时性能

使用场景:

  • ITM: 非常适合开发阶段调试,且实时需求高(如电机控制、信号处理)。
  • UART 打印: 适合生产日志、初学者友好的设置以及一般调试需求。

3. 在 MCUXpresso IDE 中的实施步骤

3.1 使用 ITM 打印

硬件需求: 确保芯片的 SWO 引脚连接到调试器的 SWO 接口。

Alice_Yang_0-1764645814612.pngAlice_Yang_0-1764645814612.png

软件配置:

1)创建新项目时,选择“Redirect printf/scanf to ITM”以将 printf/scanf 重定向到 ITM。

 Alice_Yang_2-1764645837570.pngAlice_Yang_2-1764645837570.png

2) 配置跟踪时钟:

Alice_Yang_3-1764645858437.pngAlice_Yang_3-1764645858437.png
/*!< Switch TRACE to TRACE_DIV */
CLOCK_AttachClk(kTRACE_DIV_to_TRACE);
/*!< Set up dividers */
/*!< Set TRACECLKDIV divider to value 3 */
CLOCK_SetClkDiv(kCLOCK_DivTraceClk, 3U);
 
3)在 MCUXpresso 集成开发环境中,打开 SWO ITM 控制台,配置核心时钟和跟踪时钟设置。
 

Alice_Yang_6-1764646048650.pngAlice_Yang_6-1764646048650.png 

Alice_Yang_7-1764646056186.pngAlice_Yang_7-1764646056186.png

Alice_Yang_8-1764646066673.pngAlice_Yang_8-1764646066673.png

Alice_Yang_9-1764646097086.pngAlice_Yang_9-1764646097086.pngAlice_Yang_10-1764646101638.pngAlice_Yang_10-1764646101638.png

4)在 ITM 控制台中查看输出结果。

Alice_Yang_11-1764646126756.pngAlice_Yang_11-1764646126756.png


3.2 使用 UART 打印

1)创建新项目时,选择 SDK 调试控制台为 UART,设置 DebugConsole 使用 UART。

        Alice_Yang_12-1764646136052.pngAlice_Yang_12-1764646136052.png

2)使用 MCUXpresso IDE 的外设工具配置 DebugConsole-UART。Alice_Yang_13-1764646149103.pngAlice_Yang_13-1764646149103.png Alice_Yang_14-1764646156564.pngAlice_Yang_14-1764646156564.png

3)使用引脚工具配置 UART TX/RX 引脚。Alice_Yang_15-1764646165004.pngAlice_Yang_15-1764646165004.png

4)连接串行硬件,并在终端中查看输出结果。Alice_Yang_16-1764646174816.pngAlice_Yang_16-1764646174816.png


4. 结论

ITM 和 UART 打印各有其优势。开发人员应根据项目需求选择合适的方法。ITM 更适合在开发过程中进行高实时调试,而 UART 打印则更适合生产环境和一般调试。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎01-27-2026 07:35 PM
更新者: