每个移植 FreeRTOS 的实例都有一个唯一的 portmacro.h
头文件,其中包含两种特殊数据类型(TickType_t
和 BaseType_t
)的定义。表 3 中描述了这些数据类型。
表3. FreeRTOS 使用的特殊数据类型
使用宏或类型定义 | 实际类型 |
---|---|
TickType_t |
这用于存储 tick 计数值,以及用于指定阻塞时间的变量。
使用 16 位类型可以极大地提高 8 位和 16 位架构的效率,但严重限制了可以指定的最大阻塞周期。 没有理由在 32 位架构上使用 16 位类型。 |
BaseType_t |
这始终被定义为架构的最有效数据类型。 通常,这是 32 位架构上的 32 位类型,16 位架构上的 16 位类型和 8 位架构上的 8 位类型。
|
变量的前缀是它们的类型:c
表示 char
,s
表示 short
,l
表示 long
,x
表示 BaseType_t
和任何其他类型(结构,任务句柄,队列句柄等)。如果变量是无符号的,它也带有 u
前缀。 如果变量是指针,则它也带有 p
前缀。 因此,unsigned char
类型的变量将以 uc
为前缀,而指向 char
的类型指针的变量将以 pc
为前缀。