前言
参考书籍:[野火®]《FreeRTOS 内核实现与应用开发实战—基于STM32》
一、数据类型
在FreeRTOS中,针对不同的处理器,对标准C的数据类型进行了重定义。FreeRTOS中详细的数据类型重定义在portmacro.h头文件中实现,具体见下图。
二、变量名
在FreeRTOS中,定义变量的时候往往会把变量的类型当作前缀加在变量上,这样的好处是让用户一看到这个变量就知道该变量的类型。比如char型变量的前缀是c,short型变量的前缀是s,long型变量的前缀是l,portBASE_TYPE类型变量的前缀是x。还有其他的数据类型,比如数据结构,任务句柄,队列句柄等定义的变量名的前缀也是x。
如果一个变量是无符号型的那么会有一个前缀u,如果是一个指针变量则会有一个前缀p。因此,当我们定义一个无符号的char型变量的时候会加一个uc前缀,当定义一个char型的指针变量的时候会有一个pc前缀。
三、函数名
函数名包含了函数返回值的类型、函数所在的文件名和函数的功能,如果是私有的函数则会加一个prv(private)的前缀。特别的,在函数名中加入了函数所在的文件名,这大大的帮助了用户提高寻找函数定义的效率和了解函数作用的目的,具体的举例如下:
- vTaskPrioritySet()函数的返回值为void型,在task.c这个文件中定义。
- xQueueReceive()函数的返回值为portBASE_TYPE型,在queue.c这个文件中定义。
- vSemaphoreCreateBinary()函数的返回值为void型,在semphr.h这个文件中定义。
四、宏
宏名由小写字母和大写字母两部分组成,小写字母是前缀表示该宏在哪个头文件定义,大写字母通常表示宏的实际意义。
在FreeRTOS的整个代码中,有几个表示0和1的通用宏定义。