freertos-intro.md 2.3 KB


type: entity title: FreeRTOS 基础概念 tags: [freertos, rtos, embedded, concept]

created: 2026-07-12

FreeRTOS 基础概念

裸机开发 vs 操作系统

裸机开发在没有 OS 支持下直接操作硬件,开发者亲自管理 CPU、内存和 I/O 资源。

操作系统作为硬件与应用之间的桥梁,负责分配计算和内存资源。分为两类:

  • 通用 OS(Linux/Windows/macOS):功能强大,但不保证实时响应
  • 实时 OS(RTOS):保证任务在给定时间内完成,如 FreeRTOS、uC/OS、RT-Thread

FreeRTOS 简介

由美国的 Richard Barry 于 2003 年发布,2017 年被亚马逊收购(AWS FreeRTOS)。MIT 开源许可。

核心优势:开源免费、轻量级、多平台支持、丰富的功能(多任务调度、通信、同步)。

关键特点

  • 任务调度:支持不同优先级任务的有序执行
  • 任务通信:队列、信号量等机制
  • 内存管理:适用于嵌入式环境
  • 可移植性:支持多种处理器架构

FreeRTOS 基础知识

多任务处理

内核是 OS 的核心组件。多任务 OS 将复杂应用分割成一组更小、更易管理的任务。单核处理器通过任务间快速切换制造并发执行的假象。

Multitasking perceived vs actual

FreeRTOS 数据类型

类型 说明
TickType_t 系统节拍计数器类型,16 位或 32 位(由 configUSE_16_BIT_TICKS 决定)
BaseType_t 架构最自然有效类型,32 位架构上为 32 位,有符号
UBaseType_t 无符号 BaseType_t
StackType_t 架构用于存储堆栈的类型

命名规范

变量前缀ul(uint32_t)、us(uint16_t)、uc(uint8_t)、x(非 stdint 类型)、ux(无符号非 stdint)、e(枚举)、p(指针)

函数前缀prv(私有静态)、返回值类型(v 表示 void)+ 文件名 + 功能名,如 vTaskDelay 表示 task.c 中返回 void 的延时函数

:文件名前缀(小写)+ 大写下划线名称,如 configUSE_PREEMPTION

相关页面

  • [[source-freertos|尚硅谷 FreeRTOS 教程 - 资料页]]
  • [[freertos-task-scheduling|任务调度与状态管理]]
  • [[freertos-task-api|任务 API 详解]]