Skip to content

嵌入式概览

嵌入式系统分类

嵌入式系统分类(按资源规模):

裸机(Bare Metal):
├── 无操作系统
├── 典型:STM32F0/F1, AVR, PIC
├── 资源:< 64KB Flash, < 8KB RAM
└── 应用:简单传感器、执行器控制

RTOS 系统:
├── 实时操作系统
├── 典型:STM32F4/H7, ESP32, NXP i.MX RT
├── 资源:64KB-4MB Flash, 8KB-1MB RAM
└── 应用:工业控制器、BMS、PCS 控制板

嵌入式 Linux:
├── 完整 Linux 系统
├── 典型:树莓派, NXP i.MX6/8, Rockchip RK3568
├── 资源:> 256MB Flash, > 128MB RAM
└── 应用:工业网关、EMS 主控、HMI

主流 RTOS 对比

RTOS许可证内核特点适用场景
FreeRTOSMIT抢占式最广泛,AWS 支持通用 IoT
ZephyrApache 2.0抢占式Linux 基金会,设备树工业/消费
RT-ThreadApache 2.0抢占式国产,生态丰富国内工业
μC/OS-III商业抢占式经过认证,可靠性高医疗/航空
ThreadXMIT(Azure)抢占式微软,RTOS 认证工业/汽车
RTEMSBSD抢占式航天级,POSIX航空航天

嵌入式 Linux 生态

嵌入式 Linux 构建工具:

Yocto Project:
├── 最灵活,可高度定制
├── 学习曲线陡峭
├── 适合:产品级定制 Linux
└── 输出:完整 BSP + 根文件系统

Buildroot:
├── 简单易用,构建快速
├── 适合:中小型项目
└── 输出:最小化根文件系统

OpenWrt:
├── 专为网络设备优化
├── 包管理系统(opkg)
└── 适合:工业网关、路由器

Debian/Ubuntu for ARM:
├── 丰富的软件包
├── 适合:开发原型、非实时场景
└── 不适合:资源受限设备

开发工具链

嵌入式开发工具链:

编译器:
├── GCC ARM(arm-none-eabi-gcc)→ 裸机/RTOS
├── GCC Linux(arm-linux-gnueabihf-gcc)→ 嵌入式 Linux
├── Clang/LLVM → 现代替代方案
└── IAR / Keil → 商业 IDE(含编译器)

调试工具:
├── GDB + OpenOCD → 开源调试方案
├── J-Link + Ozone → SEGGER 商业方案
├── ST-Link → STM32 专用
└── JTAG/SWD 接口

构建系统:
├── CMake → 现代 C/C++ 项目标准
├── Make → 传统方案
├── SCons → Python 构建系统
└── PlatformIO → 嵌入式专用,VSCode 集成

IDE:
├── VS Code + Cortex-Debug → 推荐
├── CLion + OpenOCD → JetBrains
├── STM32CubeIDE → ST 官方
└── ESP-IDF + VS Code → ESP32 专用

IoT 嵌入式协议栈

IoT 嵌入式协议栈选型:

MQTT 客户端:
├── Eclipse Paho C → 成熟,功能完整
├── MQTT-C → 轻量,适合 MCU
├── wolfMQTT → 安全增强
└── ESP-MQTT → ESP32 内置

HTTP/HTTPS:
├── libcurl → 功能最全
├── wolfSSL + HTTP → 安全嵌入式
└── ESP-HTTP-Client → ESP32 内置

CoAP(受限设备):
├── libcoap → 参考实现
└── microcoap → 超轻量

TLS/SSL:
├── mbedTLS → 嵌入式首选
├── wolfSSL → 高性能,FIPS 认证
└── OpenSSL → 资源充足时使用

硬件平台选型

工业 IoT 常用硬件平台:

MCU 级(RTOS):
├── STM32H7 系列
│   ├── Cortex-M7, 480MHz
│   ├── 2MB Flash, 1MB RAM
│   └── 丰富外设:CAN, RS485, Ethernet

├── ESP32-S3
│   ├── Xtensa LX7 双核, 240MHz
│   ├── WiFi + BLE 内置
│   └── 适合:WiFi IoT 设备

└── NXP i.MX RT1060
    ├── Cortex-M7, 600MHz
    ├── 工业级温度范围
    └── 适合:工业控制器

MPU 级(嵌入式 Linux):
├── Rockchip RK3568
│   ├── Cortex-A55 四核, 2GHz
│   ├── 工业级,-40~85°C
│   └── 适合:工业网关、HMI

├── NXP i.MX8M Plus
│   ├── Cortex-A53 四核 + M7
│   ├── NPU 加速
│   └── 适合:边缘 AI + 控制

└── 树莓派 CM4
    ├── Cortex-A72 四核
    ├── 生态丰富,开发快速
    └── 适合:原型开发、非工业级

延伸阅读

褚成志的IoT笔记