返回首页

用于调试 MCU 固件的 UART-CLI

UART-CLI 是调试微控制器固件的关键工具,在大多数场景中替代 JTAG。提供 GPIO 诊断、日志管理、通过 UART 或其他通道的测试自动化。理想用于多核 MCU 和远程设备。

大师课:嵌入式开发中的 UART-CLI
Advertisement 728x90

UART-CLI:嵌入式固件调试的必备工具

UART-CLI 通过串口接口让你直接访问固件状态。它能让你检查 GPIO 状态、软件版本和硬件配置,而无需高端设备。与 JTAG 或 SWD 不同,UART 只需基本的适配器如 CP2102 和终端软件如 Tera Term 或 PuTTY。

对于远程设备,CLI 依然不可或缺。如果你的无线协议栈(LoRa、CAN、以太网)在提交后崩溃,UART 命令能在几分钟内定位问题,避免数小时的 GDB 调试。

相较传统调试方法的优势

CLI 可以轻松集成到调试版本中,并通过 Makefile 的一个标志(Y/N)从发布版本中移除。它不会拖累生产固件,也不会影响性能。

Google AdInline article slot

复杂协议栈如 LTE/IP 或蓝牙,可以用简单工具调试:以太网通过 UART,GPIO 用万用表。CLI 开启与固件的“对话”——每个模块的动态日志级别(INFO、DEBUG、PARANOID)避免大型固件(320 kB,80+ 组件)日志泛滥。

UART-CLI 支持任意信道:CAN(ISO-TP)、UDP、LoRa——搭配主机控制台工具和可选的流量压缩。

主要应用场景

  • 多核 MCU:Core0 通过 JTAG/GDB,Core1/2 通过独立 UART(例如 SPC58NN84E7RMHBR)。
  • 挂起检测:Enter 无回显表示冻结,无需心跳 LED。
  • 自动化:运行测试、记录序列号、加密密钥。
  • 引脚备份:当 JTAG/SWD 引脚被继电器/按钮占用时,UART 仍可用(BOOT 引脚)。

| 接口对比 |

Google AdInline article slot

|----------|------|------------|------|--------------|

| 接口 | 线数 | 电缆长度 | 成本 | 抗静电能力 |

| UART-CLI | 4 (Rx/Tx/GND/VDD) | >1 m | 低 | 高 |

Google AdInline article slot

| JTAG/SWD | 20 | <40 cm | 高 (7k RUB–5k EUR) | 低 |

20+ 种实用 UART-CLI 应用场景

  • 一键转储 GPIO 状态。
  • 查询固件/硬件版本。
  • 通过子串运行模块测试(例如 “i2c”)。
  • 验证 DAC(指定频率正弦波)、FatFS 转储。
  • 诊断中断。
  • 加载非易失性配置(收发器调制)。
  • 模拟协议/API 进行测试。
  • 无符号调试(-g3),因 NOR-Flash 限制。
  • 快速重启 vs. Eclipse Terminate&Relaunch 的 2 分钟。
  • TeraTerm 中的复制粘贴(GUI 配置器无法实现)。
  • 非 IT 人员使用 PDF 指南。
  • 冒烟测试:Enter → 光标移动 → 固件存活。

CLI 在 80% 情况下可取代 JTAG,除非完全挂起。

关键要点

  • UART-CLI 是通往固件的极简网关,类似于 ISA 微处理器总线。
  • 用简单工具(UART)分层调试复杂协议栈(以太网)。
  • 双模式:日志 + 交互命令,减轻总线/DMA 负载。
  • 无需 GUI,即可扩展到任意接口。
  • 相较生产中的 JTAG,节省时间和成本。

— Editorial Team

Advertisement 728x90

继续阅读