嵌入式概览
嵌入式系统分类
嵌入式系统分类(按资源规模):
裸机(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 | 许可证 | 内核 | 特点 | 适用场景 |
|---|---|---|---|---|
| FreeRTOS | MIT | 抢占式 | 最广泛,AWS 支持 | 通用 IoT |
| Zephyr | Apache 2.0 | 抢占式 | Linux 基金会,设备树 | 工业/消费 |
| RT-Thread | Apache 2.0 | 抢占式 | 国产,生态丰富 | 国内工业 |
| μC/OS-III | 商业 | 抢占式 | 经过认证,可靠性高 | 医疗/航空 |
| ThreadX | MIT(Azure) | 抢占式 | 微软,RTOS 认证 | 工业/汽车 |
| RTEMS | BSD | 抢占式 | 航天级,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 四核
├── 生态丰富,开发快速
└── 适合:原型开发、非工业级