Freertos文件组成
← FreeRTOS内核实现与应用开发实战指南知识地图 | ← 主页
FreeRTOS 官方源码包目录结构:
| 根目录 | 1级 | 2级 | 说明 |
|---|---|---|---|
| Source | include | 内核头文件(task.h、queue.h、list.h…) | |
| tasks.c | 任务创建、调度、阻塞/延时核心 | ||
| queue.c | 队列、信号量、互斥量、递归互斥量 | ||
| list.c | 链表实现 | ||
| timers.c | 软件定时器 | ||
| event_groups.c | 事件组 | ||
| stream_buffer.c | 流缓冲/消息缓冲 | ||
| croutine.c | 协程(旧特性,一般不用) | ||
| portable | RVDS | Keil MDK 编译器移植这个 | |
| GCC | GCC 交叉编译移植这个 | ||
| IAR | IAR 编译器移植这个 | ||
| MemMang | 内存管理 heap_1 ~ heap_5.c | ||
| Demo | 官方示例工程(各芯片平台) | ||
| License | MIT 开源许可 |
- 每个芯片移植目录(如
portable/GCC/ARM_CM4F/)只含两个关键文件:port.c(上下文切换汇编)和portmacro.h(宏定义) - 内存管理 只能选一个
heap_x.c加入工程:
| 方案 | 特点 | 适用 |
|---|---|---|
| heap_1 | 只能分配不能释放 | 任务/队列永不删除的简单场景 |
| heap_2 | 可释放、不合并碎片 | 已废弃 |
| heap_3 | 包装标准库 malloc/free(需 C 库开堆) | 想用标准库的线程安全版本 |
| heap_4 | 空闲块合并 + 首地址对齐 | 一般项目默认推荐 |
| heap_5 | 同 heap_4,支持多个不连续内存区 | 多段 RAM 的芯片 |