FreeRTOS数据类型和编程规范
数据类型
TickType_t:
滴答定时器每发生一次中断,tickcount变量就加1
TickType_t可以是16位也可以是32位,可以由FreeRTOSconfig.h文件修改宏configUSE_16_TICKS来定义是16还是32,默认uint32_t,如果是32位单片机建议配置为32位。
BaseType_t:
这是该架构最高效的数据类型,跟随架构。
对32位架构,它就是uint32_t,16位就是uint16_t
BaseType_t通常用作简单的返回值的类型,还有逻辑值,比如pdTRUE、pdFALSE
变量名
变量名前缀
| 变量名前缀 | 含义 |
|---|---|
| c | char |
| s | short,int16_t |
| l | long,int32_t |
| x | BaseType,其他非标准的类型:结构体、task handle、queue handle等 |
| u | unsigned |
| p | 指针(point) |
| uc | uint8_t, unsigned char |
| pc | char 指针 |
函数名
函数名的前缀由返回值类型和在哪个文件定义组成
| 函数名前缀 | 含义 |
|---|---|
| vTaskPrioritySet | 返回值类型:void 在task.c中定义 |
| xQueueReceive | 返回值类型:BaseType_t 在queue.c中定义 |
| pvTimerGetTimerID | 返回值类型:pointer to void 在timer.c中定义 |
宏的名
宏的名字是大写,可以添加小写的前缀。前缀是用来表示:宏在哪个文件中定义。
| 宏的前缀 | 含义:在哪个文件中定义 |
|---|---|
| port(eg: portMAX_DELAY) | portable.c或portmacro.h |
| task(eg: taskENTER_CRITICAL()) | task.h |
| pd(eg: pdTRUE) | projdefs.h |
| config(eg: configUSE_PREEMPTION) | FreeRTOSconfig.h |
| err(eg: errQUEUE_FULL) | projdefs.h |
通用的宏定义
| 宏 | 值 |
|---|---|
| pdTRUE | 1 |
| pdFALSE | 0 |
| pdPASS | 1 |
| pdFALL | 0 |

浙公网安备 33010602011771号