在学习RTOS之前,搞清楚它的编程风格非常重要,这有助于理解RTOS的源码。
- 数据类型
从图中可以看出来,FreeRTOS中对C语言的数据类型进行了重定义。
(注意FreeRTOS中是没有int类型的)
- 变量名
比如 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 这个文件中定义。
- 宏
例如:portMAX_DELAY这个宏是定义在portable.h这个文件中的