1.1 官网
1.2 源码
FreeRTOS Real Time Kernel (RTOS) - Browse /FreeRTOS at SourceForge.net
1.3 参考手册
Free RTOS Book and Reference Manual
1.4 编程风格
1.4.1 数据类型
FreeRTOS 定义有自己的数据类型,移植到不同平台需要实现数据类型的对接。在 Cortex-M 内核的 MCU 中,short 为 16 位, long 为 32位。char 类型有无符号(默认无符号)可通过MDK Options→C/C++ 设置。
FreeRTOS | C |
portCHAR | char |
portFLOAT | float |
portDOUBLE | double |
portLONG | long |
portSHORT | short |
portSTACK_TYPE | uint32_t |
portBASE_TYPE | long |
portMAX_DELAY | uint16_t / uint32_t |
1.4.2 变量名
[无符号、指针前缀 + ] 变量类型前缀 + 变量名。
变量类型 | 前缀 |
char | c |
short | s |
long | l |
portBASE_TYPE | x |
数据结构、任务句柄、队列句柄 | x |
无符号 | u |
指针 | p |
1.4.3 函数名
[私有函数前缀 prv (private) + ] 函数返回值类型前缀 + 函数所在文件名 + 函数功能。
前缀采用小写,其它采用驼峰命名法。
1.4.4 宏
宏所在文件名前缀 + 宏名。
前缀小写,宏名大写。信号量的函数采用宏定义实现,其命名遵循函数命名方法。
前缀 | 宏定义的文件 |
port | portable.h |
task | task.h |
pd | projdefs.h |
config | FreeRTOSConfig.h |
err | projdefs.h |
FreeRTOS 逻辑宏的值。
宏名 | 值 |
pdTRUE | 1 |
pdFALSE | 0 |
pdPASS | 1 |
pdFAIL | 0 |
1.4.5 格式
Tab = 4 Space
优先使用空格进行缩进,不同编译器或 IDE 识别 Tab 不一致。