FreeRTOS基础知识
FreeRTOS 核心源码文件的编写遵循 MISRA 代码规则。
在 FreeRTOS 中,使用的数据类型虽然都是标准 C 里面的数据类型,但是针对不同的处理器,对标准 C 的数据类型又进行了重定义。
FreeRTOS 中详细的数据类型重定义在 portmacro.h 这个头文件中实现。具体如下表所示:
新定义的数据类型 | C标准类型 |
---|---|
portCHAR | char |
portSHORT | short |
portLONG | long |
portTickType | unsigned shortint |
portBASE_TYPE | long |
unsigned int |
TickType_t:如果用户使能了宏定义 configUSE_16_BIT_TICKS,那TickType_t 定义的就是 16 位无符号数,如果没有使能那么 TickType_t 定义的就是 32 位无符号数。
BaseType_t:根据系统架构的位数而定,对于 32 位架构,BaseType_t 定义的是 32 位有符号数,对于16位架构,BaseType_t 定义的是 16 位有符号数。
UBaseType_t: BaseType_t 类型的无符号版本。
StackType_t:栈变量数据类型定义,数量类型由系统架构决定,对于 16 位系统架构,StackType_t 定义的是16 位变量,对于 32 位系统架构&