打印

FreeRTOS编码规范

[复制链接]
363|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
swtj|  楼主 | 2025-4-5 15:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 swtj 于 2025-4-5 16:08 编辑

当我们接触一个新平台或者SDK,弄明白它的编码规范和文件作用,可以提高源码阅读效率,快速熟悉其内部实现。
3.2.1 数据类型
FreeRTOS针对不同的处理器,对标准C的数据类型进行了重定义。
1. #define portCHAR        char  
2. #define portFLOAT       float  
3. #define portDOUBLE      double  
4. #define portLONG        long  
5. #define portSHORT       short  
6. #define portSTACK_TYPE  uint32_t  
7. #define portBASE_TYPE   long  
应用编码中,推荐使用的是下面这种风格。
1. typedef int int32_t;  
2. typedef short int16_t;  
3. typedef char int8_t;  
4. typedef unsigned int uint32_t;  
5. typedef unsigned short uint16_t;  
6. typedef unsigned char uint8_t;
3.2.2 变量名
FreeRTOS 中,定义变量的时候往往会把变量的类型当作前缀,好处看到就知道其类型。
char 型变量的前缀是 c
short 型变量的前缀是 s
long 型变量的前缀是 l
复杂的结构体,句柄等定义的变量名的前缀是 x
变量是无符号型的再加前缀 u,是指针变量则加前缀 p
3.2.3 函数名
函数名包含了函数返回值的类型、函数所在的文件名和函数的功能,如果是私有的函数则会加一个 prv(private)的前缀。
例如vTaskPrioritySet()函数的返回值为 void 型,在 task.c 这个文件中定义。
3.2.4 宏
宏内容是由大写字母表示,前缀是小写字母,表示该宏在哪个头文件定义,如:
1. #define taskYIELD()                 portYIELD()  
表示该宏是在task.h。


使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

22

主题

22

帖子

0

粉丝