引言:NPU 来了,调试接口却没了?STM32N6 是 ST 首款集成 Neural Processing Unit(NPU) 的 MCU,主核升级为 Cortex-M55 ,算力飙升,但许多开发者发现——
ST 在《LAT1489》中给出了解法:SWV/ITM 一键重定向 ,不占用任何 GPIO ,速率 50 Mbps ,IDE 内嵌 Data Console 实时查看 。 本文把这份 7 页应用笔记拆成“原理 → 配置 → 踩坑 → 性能”四段,带你 10 分钟搭好 “零引脚”日志系统 。 1. 技术原理:为什么 ITM 是 M55 的“隐形 UART”?表格复制
2. 三步完成重定向:代码、时钟、IDE 一个都不能少2.1 代码层:重写
|
| 方案 | 引脚 | 速率 | CPU 占用 | 缓冲 | 实测丢包 |
|---|---|---|---|---|---|
| UART 115200 | TX/RX | 11 kB/s | 8% | 16 B | 0% |
| RTT 0 Up-buffer | 0 | 125 kB/s | 1% | 1 kB | 0% |
| ITM Port0 | SWO | 500 kB/s | 0.3% | 16 W×32 bit | 0% |
| ITM Port0 | SWO | 1 MB/s | 0.6% | 同上 | 2% (FIFO 溢出) |
结论: ≤ 500 kB/s 零丢包 ,足以替代 UART 做裸机日志 ;1 MB/s 以上需开 ITM 空写等待
表格复制
| 现象 | 根因 | 快速修复 |
|---|---|---|
| CubeIDE 无数据 | SWO 时钟 ≠ 实际 | 手填 50000 kHz ,禁止 Auto-detect |
| 中文乱码 | ITM 只支持 7-bit ASCII | printf("%02X", byte); 转十六进制 |
| 输出断续 | FIFO 溢出 | 降低打印速率 或 增加空写等待 |
| 调试卡死 | DBGMCU 时钟未开 | main 第一句 加 DBGMCU->CR | = 0x00300000; |
| NPU 任务掉帧 | ITM 抢占双精度浮点 | 临界段包裹 __disable_irq(); ITM_SendChar(ch); __enable_irq(); |
案例: 某家电厂用 SWO 做 NPU 推理时间戳 ,每 1 ms 打印 16 B ,24 h 不断 → 文件 1.3 GB ,回放大屏卡顿点 ,定位到 Cache Miss
一句话总结: “学会 ITM/SWO,就把 printf 搬进了调试器的内存总线。”
实战经验 | 如何在STM32N6上验证AI模型
STM32N6 Helium 指令集:MVE 向量运算性能翻倍秘籍(基于 FIR 测试)
意法半导体STM32N6:800MHz主频、600GOPS算力打造边缘AI强劲引擎
实战经验 | STM32N6平台STM32CubeIDE下printfIO重定向到SWV-ITM
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
【STM32N6570-DK评测】2.最简点灯
STM32N6引入NPU,为边缘AI插上“隐形的翅膀”
边缘AI线下培训 | 基于STM32N6的边缘人工智能应用开发实训(北京/上海)
【DIY-STM32N6570-DK-MINI板子功耗测试】
【新品发布】STM32N6,在工业和消费类应用中实现全新性能水平
微信公众号
手机版