FreeRTOS 数据类型和编程规范

FreeRTOS数据类型,每个移植的版本都含有自己的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

FreeRTOS 变量名

变量名有前缀:

变量名前缀 含义
c char
s int16_t,short
l int32_t,long
x BaseType_t, 其他非标准的类型:结构体、task handle、queue handle等
u unsigned
p 指针
uc uint8_t,unsigned char
pc char指针

FreeRTOS 函数名

函数名的前缀有2部分:返回值类型、在哪个文件定义。

函数名前缀 含义
vTaskPrioritySet 返回值类型:void 在task.c中定义
xQueueReceive 返回值类型:BaseType_t 在queue.c中定义
pvTimerGetTimerID 返回值类型:pointer to void 在tmer.c中定义

FreeRTOS 宏的名

宏的名字是大小,可以添加小写的前缀。前缀是用来表示:宏在哪个文件中定义。

宏的前缀 含义:在哪个文件里定义
port (比如portMAX_DELAY) portable.h或portmacro.h
task (比如taskENTER_CRITICAL()) task.h
pd (比如pdTRUE) projdefs.h
config (比如configUSE_PREEMPTION) FreeRTOSConfig.h
err (比如errQUEUE_FULL) projdefs.h

通用的宏定义如下:

pdTRUE 1
pdFALSE 0
pdPASS 1
pdFAIL 0
赞(0)
未经允许不得转载:极客笔记 » FreeRTOS 数据类型和编程规范
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址