嵌入式三大路线 & 核心概念分界
·
常见误区:
RTOS(FreeRTOS、RT‑Thread、uC/OS)≠ 通用操作系统
Linux 才属于通用操作系统 (GPOS,General‑Purpose OS)
四大分类层级:
- 裸机(无任何操作系统内核)
- RTOS 实时操作系统(专用嵌入式内核,单片机常用)
- 嵌入式 Linux(通用操作系统,一般跑在 MPU)
- 其他商用大型 OS:VxWorks、QNX
实现了多任务,但既不用现成 RTOS 内核、也不用 Linux 这类通用操作系统,属于裸机范畴下的自制任务方案。
一、标准名称(书面 / 报告文档优先用)
1. 大类统称
- 裸机多任务系统(Bare‑metal Multitask)
- 无操作系统多任务方案
2. 按实现细分名字(单片机最常见两种)
方案 A:大循环 + 状态机任务(协作式,无上下文切换,90% 自制纯任务项目都是这种)
while(1)
{
Task_Key();
Task_Uart();
Task_Led();
}
正式叫法:
超级循环 (Super‑loop) + 状态机任务调度
口语叫法:轮询任务框架、大循环任务框架
特点:任务轮流执行,不能抢占;每个任务靠内部switch做状态保存,没有独立任务栈,不保存 CPU 寄存器上下文。
方案 B:自己手写抢占调度(SysTick 中断手动保存寄存器、独立任务栈,自己造调度器)
正式叫法:
自定义抢占式裸机调度器 / 自制轻量任务内核
行业戏称:自己滚了一个简易 RTOS
⚠️注意:做到这一步,本质上你已经实现了一个最小 RTOS 内核,只是不是市面上现成的。
二、日常口头叫法(工程师之间交流)
- 裸机多任务
- 无 OS 任务框架
- 手写调度器
- 状态机任务框架
一张对比表把4 种方案
| 方案 | 有没有 OS 内核 | 任务调度来源 | 典型芯片 | 归类 |
|---|---|---|---|---|
| while (1) 顺序跑函数(无任务拆分) | 无 | 无调度,顺序执行 | 普通 MCU STM32、8 位单片机 | 裸机‑单任务超级循环 |
| while (1)+ 多个状态机任务函数 | 无 | 自己在主循环轮流调用任务 | MCU | 裸机多任务(你问的类型) |
| FreeRTOS / RT‑Thread / Zephyr | 有现成 RTOS 内核 | 内核自带调度器 | MCU | RTOS 实时操作系统(专用 OS,非通用 OS) |
| Linux(Buildroot/Yocto) | 通用操作系统内核 | Linux 进程调度器 | MPU (如 IMX6ULL、全志) | 通用操作系统方案 |
命名使用建议
- 状态机轮询方案 → 裸机多任务(超级循环 + 状态机调度)
- 自己手写栈切换抢占调度 → 自定义裸机任务调度内核
分界线
- 用现成 FreeRTOS 等内核 → RTOS 方案
- 跑 Linux → 通用操作系统方案
- 任务调度代码全部自己写,不引入任何操作系统内核 → 裸机多任务系统
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)