每个移植 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 为前缀。