数据类型
每个移植的版本都含有自己的portmacro.h 头文件,里面定义了2个数据类型:
TickType_t:
FreeRTOS配置了一个周期性的时钟中断:Tick Interrupt
每发生一次中断,中断次数累加,这被称为tick count
tick count这个变量的类型就是TickType_t
TickType_t可以是16位的,也可以是32位的
FreeRTOSConfig.h中定义configUSE_16_BIT_TICKS时,TickType_t就是uint16_t
否则TickType_t就是uint32_t
对于32位架构,建议把TickType_t配置为uint32_t
BaseType_t:
这是该架构最高效的数据类型
32位架构中,它就是uint32_t
16位架构中,它就是uint16_t
8位架构中,它就是uint8_t
BaseType_t通常用作简单的返回值的类型,还有逻辑值,比如pdTRUE/pdFALSE
根据处理器的位数来选择响应的数据类型,32位处理器都选择32位,只用一个寄存器效率比较高。
变量名
变量名有前缀:
变量名前缀 | 含义 |
c | char |
s | int16_t,short |
l | int32_t,long |
x | BaseType_t, 其他非标准的类型:结构体、task handle、queue handle等 |
u | unsigned |