1. 课程导论:为什么Cortex-M需要AI?嵌入式AI的现状与挑战
1.1 一个老问题:MCU上跑AI,图什么?
很多人问我,Cortex-M 这种资源受限的 MCU,跑 AI 是不是有点勉强?
说实话,五年前我也这么想。那时候 AI 是云端的专利,GPU 集群、TPU 加速卡才是主角。MCU 嘛,老老实实做控制、采数据就好。
但后来我遇到一个项目,彻底改变了看法。
那是一个工业振动监测设备,要求实时检测电机异常。数据量不大,但延迟必须控制在 10ms 以内。如果走无线传到云端推理,来回至少 200ms,根本来不及。而且客户要求整机功耗低于 50mW——用电池供电,得撑一年。
你想想看,这种场景下,把 AI 推理放在 Cortex-M 上,几乎是唯一的选择。
1.2 嵌入式AI的现状:百花齐放,但落地不易
先看一组数据。我整理了一下目前主流的嵌入式 AI 方案:
| 方案 | 典型芯片 | 算力 | 功耗 | 适用场景 |
|---|---|---|---|---|
| 纯 MCU 方案 | Cortex-M4/M7/M33 | 几十~几百 MOPS | mW 级 | 关键词唤醒、简单分类、异常检测 |
| MCU+NPU 方案 | Cortex-M55+Ethos-U55 | 0.5~4 GOPS | 几十 mW | 语音识别、人脸检测、小目标检测 |
| MPU 方案 | Cortex-A 系列 | 几~几十 GOPS | W 级 | 视频分析、SLAM、复杂分类 |
可以看到,纯 MCU 方案的算力其实很有限。但为什么还要做?
因为成本。一颗 Cortex-M4 芯片不到 2 美元,而带 NPU 的芯片要 5~10 美元,Cortex-A 方案更是几十美元起步。对于消费电子、传感器节点这类对成本极度敏感的产品,纯 MCU 方案是唯一能走量的路径。
我在一个智能门锁项目里就吃过这个亏。最初选了带 NPU 的芯片,功能确实强,但 BOM 成本超了 40%,客户直接砍单。后来换成 Cortex-M4,用模型裁剪把参数量压到 200KB 以内,推理精度只掉了 1.2%,成本却降了 60%。
1.3 挑战在哪里?我踩过的几个坑
嵌入式 AI 看着美好,落地时全是细节。我列几个最常见的挑战:
- 内存太小:Cortex-M4 的 SRAM 通常只有 64~256KB,Flash 也就 512KB~2MB。一个 MobileNetV1 模型就要 4MB 参数,根本放不下。
- 算力不够:没有硬件乘法器加速,卷积运算全靠 CPU 硬算。一个 3x3 卷积在 M4 上跑一次要几百个周期,实时性很难保证。
- 工具链不成熟:TensorFlow Lite Micro、CMSIS-NN 这些框架虽然能用,但坑不少。我记得有一次模型量化后精度直接崩了,查了两天才发现是某个激活函数的数值范围没对齐。
- 调试困难:没有 GPU 那种可视化调试工具,推理结果不对,只能靠串口打印中间张量。我曾经为了定位一个卷积核索引越界的问题,硬是打印了 2000 多行数据。
1.4 知识体系:这门课要讲什么?
这门课的核心逻辑其实很简单:怎么把一个大模型塞进小芯片,并且跑得快、跑得稳。
我画了一张图,帮你快速建立整体认知:
这门课一共 30 章,我把它分成四个阶段:
- 基础篇(第 1~5 章):搭建开发环境,理解 Cortex-M 的内存架构和 AI 推理的基本流程。
- 内存裁剪篇(第 6~14 章):量化、剪枝、蒸馏、内存复用,把模型从 MB 级压到 KB 级。
- 推理加速篇(第 15~24 章):CMSIS-NN 优化、SIMD 指令、算子融合、缓存优化,把推理速度从秒级压到毫秒级。
- 调试实战篇(第 25~30 章):精度调试、性能分析、功耗优化、OTA 部署,解决实际项目中的各种坑。
1.5 你需要什么基础?
这门课不是零基础入门。我假设你已经具备:
- 会用 C 语言写嵌入式程序,知道指针、结构体、内存分配这些基本概念
- 用过至少一款 Cortex-M 芯片,能独立搭建工程、下载调试
- 了解基本的神经网络概念(卷积、池化、全连接),不要求会训练
如果你还不会训练模型,没关系。我会提供预训练好的模型,你只需要关注部署和优化部分。
1.6 写在开始之前
做嵌入式 AI 这几年,我最大的感受是:没有银弹。
每个项目都有自己的约束条件。有的要求极致低功耗,有的要求毫秒级响应,有的要求成本控制在 1 美元以内。没有一套方案能通吃所有场景。
但好消息是,方法论是通用的。内存裁剪和推理加速的核心思想,不管芯片怎么变、框架怎么变,底层逻辑不会变。这门课教的就是这些底层逻辑,再加上我踩过的坑、总结的经验。
嗯,准备好了吗?我们开始吧。