第2章 嵌入式系统基础回顾:MCU与MPU的区别、常见嵌入式架构、RTOS与裸机开发的选择

各位同学,咱们今天聊点实在的。做嵌入式AI融合开发,你得先搞清楚你手里的家伙事儿到底是什么。我见过太多人把MCU当MPU用,结果跑不动模型;也有人拿MPU当MCU用,功耗和成本都炸了。嗯,咱们先把这些基础概念捋清楚。

2.1 MCU与MPU:到底差在哪?

说白了,MCU(微控制器)和MPU(微处理器)的区别,就像自行车和汽车的区别。都能跑,但设计思路完全不同。

对比维度 MCU(微控制器) MPU(微处理器)
核心架构 CPU + RAM + Flash 集成在单芯片 仅CPU核心,外设需外挂
典型代表 STM32(Cortex-M)、ESP32 树莓派(Cortex-A)、i.MX
运行频率 几十MHz ~ 几百MHz 几百MHz ~ 几GHz
内存大小 几KB ~ 几MB 几百MB ~ 几GB
功耗 毫瓦级,可电池供电 瓦级,通常需要散热
实时性 硬实时,中断响应快 软实时,依赖操作系统调度
AI部署难度 需量化、剪枝,跑轻量模型 可跑完整模型,甚至训练

核心判断标准:如果你需要跑一个超过1MB的AI模型,别犹豫,上MPU。如果模型在几百KB以内,MCU完全够用,而且成本低、功耗低。

我在项目中遇到过一件事:有个客户非要在STM32F4上跑一个MobileNet,模型量化到8bit后还有2.3MB。结果Flash只有1MB,根本塞不下。最后只能换芯片,白白浪费了两周时间。所以,选型前先算好账。

2.2 常见嵌入式架构:ARM Cortex-M/A 与 RISC-V

现在嵌入式世界基本是ARM的天下,但RISC-V正在崛起。咱们一个一个说。

2.2.1 ARM Cortex-M 系列

这是MCU的主力军。从M0到M7,性能跨度很大。

  • Cortex-M0/M0+:超低功耗,适合传感器节点、简单控制。跑不了AI,但可以做数据采集。
  • Cortex-M3/M4:带DSP指令,可以做简单的信号处理。我早期用M4做过一个语音关键词识别,效果还行。
  • Cortex-M7:性能天花板,带双精度浮点。可以跑一些轻量级CNN模型,比如TinyML。

2.2.2 ARM Cortex-A 系列

这是MPU的主力军。跑Linux的,性能强,功耗高。

  • Cortex-A7/A53:低功耗应用处理器,树莓派、全志芯片常用。
  • Cortex-A72/A76:高性能,可以跑完整的深度学习框架,比如TensorFlow、PyTorch。

我的个人习惯:做AI边缘计算,如果预算允许,我优先选Cortex-A系列。因为生态成熟,库多,踩坑少。但如果是量产产品,成本敏感,我会考虑RISC-V。

2.2.3 RISC-V 架构

开源、灵活、免费。这是它的三大优势。但生态还在建设中。

  • 优点:没有授权费,可以自定义指令集,适合特定场景优化。
  • 缺点:工具链不成熟,第三方库少,遇到问题只能自己啃。

我曾经试过在RISC-V上移植一个TinyML模型,结果发现没有现成的CMSIS-NN库,只能手写汇编优化。嗯,那段时间挺痛苦的。但如果你有团队有精力,RISC-V的潜力很大。

嵌入式AI芯片选型决策树 你的AI模型多大? 模型 < 1MB 模型 > 1MB 选MCU (Cortex-M/RISC-V) 选MPU (Cortex-A) Cortex-M4/M7 RISC-V (低功耗) Cortex-A7/A53 Cortex-A72/A76 注:实际选型还需考虑功耗、成本、外设需求等因素

2.3 RTOS与裸机开发:怎么选?

这个问题我经常被问到。你想想看,如果你的程序就一个while循环,点个灯、读个传感器,裸机完全够用。但一旦涉及到多任务、定时器、通信协议栈,裸机就会让你痛不欲生。

2.3.1 裸机开发

  • 优点:代码简单、无调度开销、资源占用极低。
  • 缺点:所有逻辑自己写轮询,任务多了容易乱。
  • 适用场景:单任务、简单控制、超低功耗设备。

避坑指南:我曾经在一个项目中用裸机做数据采集+蓝牙传输,结果蓝牙协议栈的轮询把主循环卡死了,数据采集丢包严重。后来换成FreeRTOS,用两个任务分开处理,问题迎刃而解。

2.3.2 RTOS(实时操作系统)

  • 优点:任务调度、信号量、消息队列、定时器,开发效率高。
  • 缺点:有调度开销(通常几微秒到几十微秒),占用RAM/Flash。
  • 适用场景:多任务、有通信需求、需要实时响应的系统。

常见的RTOS有:FreeRTOS(最流行)、RT-Thread(国产,中文文档好)、Zephyr(支持AI扩展)。我个人习惯用FreeRTOS,因为生态好,遇到问题网上随便一搜就有答案。

2.3.3 结合AI场景的选择建议

AI应用场景 推荐方案 理由
传感器数据采集 + 简单推理 裸机 + 定时器中断 资源紧张,裸机更高效
语音唤醒 + 网络通信 RTOS(FreeRTOS) 多任务管理方便
摄像头图像识别 RTOS 或 Linux 数据量大,需要复杂调度
边缘服务器推理 Linux + 多线程 MPU平台,RTOS不够用

我的建议:如果你刚开始做嵌入式AI,先从RTOS入手。因为裸机开发虽然简单,但后期扩展性差。RTOS的学习曲线并不陡,花一周时间就能上手。而且,很多AI推理框架(比如TensorFlow Lite Micro)都支持RTOS,省心不少。

好了,这一章的内容就到这里。记住一句话:选型决定成败。MCU还是MPU,ARM还是RISC-V,裸机还是RTOS,没有绝对的好坏,只有合不合适。下一章咱们开始真正动手,搭建开发环境。


专注资料整理