tags: [source-summary] type: source source: "尚硅谷嵌入式技术之FreeRTOS实时操作系统 V1.0.3 — 操作系统介绍 + FreeRTOS简介" author: "尚硅谷研究院" date: 2026-07-17
用生活理解:裸机开发像一个人做整桌菜——切菜、炒菜、看火全包,手忙脚乱;RTOS 像一个厨房团队,主厨只管炒菜,配菜工负责备料,每个人专注自己的任务,由店长(调度器)统一协调。
裸机开发指在没有操作系统支持的情况下直接操作硬件,开发者需要亲自管理 CPU、内存和 I/O 资源。STM32 单片机的基础开发都属于裸机开发。
一个计算机系统分为三层:
裸机开发的问题在于,所有逻辑都写在 main 函数的 while(1) 大循环中。当功能增多时,代码会变得难以维护——你要手动计算每个任务的执行时序,确保 LED 闪烁的同时还能响应按键、处理传感器数据。一旦需求变化,你可能需要重写整个循环结构。
操作系统则将应用拆分为多个独立任务,每个任务只管自己的逻辑。操作系统负责"什么时候该运行哪个任务",开发者不用再操心时序问题。
通用操作系统(Linux、Windows、macOS)优先保障系统流畅运行,公平调度所有程序,但无法保证某个任务在确定时间内完成。它们追求的是"平均响应好",而不是"最坏情况有保证"。
实时操作系统(RTOS) 的核心是"任务必须在给定的截止时间(Deadline)内完成"。
安全气囊案例:汽车碰撞后,安全气囊必须在 30ms 内完全打开。即使车载 ECU 有强大的 CPU 和充足的内存,如果系统在执行其他复杂计算任务时耽搁了气囊的响应,就会造成严重事故。
实时性不是靠堆砌硬件性能来实现的,而是靠确定性的调度机制。RTOS 确保关键任务在任何情况下都能在规定时间内响应。
FreeRTOS 是市场占有率最高的嵌入式实时操作系统,由美国的 Richard Barry 于 2003 年发布。2017 年被亚马逊收购,更名为 AWS FreeRTOS。
采用 MIT 开源许可,每 170 秒就有一次下载。适用于微控制器和小型微处理器,突出可靠性和易用性。
FreeRTOS 作为一个小型 RTOS 内核,提供以下核心功能:
FreeRTOS 基础 API 分类概览(本章仅作了解,后续章节详细展开):
| 类别 | 主要函数 | 用途 |
|---|---|---|
| 任务创建 | xTaskCreate() |
动态创建任务 |
| 任务删除 | vTaskDelete() |
删除指定任务 |
| 任务延时 | vTaskDelay() |
相对延时 |
| 任务挂起 | vTaskSuspend() |
挂起任务 |
| 任务恢复 | vTaskResume() |
恢复任务 |
vTaskDelay 代替 HAL_Delay。