FreeRTOS学习记录1-熟悉FreeRTOS的命名规则

在开始学习FreeRTOS之前,我们先熟悉下FreeRTOS的变量、函数的相关命名规则,以便后期在分析源码时能快速的知道函数或变量所包含的数据类型。

一、变量及函数命名规则

变量

uint32_t 定义的变量都加上前缀 ul。u 代表 unsigned 无符号,l 代表 long 长整型。

uint16_t 定义的变量都加上前缀 us。u 代表 unsigned 无符号,s 代表 short 短整型。

uint8_t 定义的变量都加上前缀 uc。u 代表 unsigned 无符号,c 代表 char 字符型。

stdint.h 文件中未定义的变量类型,在定义变量时需要加上前缀 x,比如 BaseType_t 和TickType_t 定义的变量。

stdint.h 文件中未定义的无符号变量类型,在定义变量时要加上前缀 u,比如 UBaseType_t 定义的变量要加上前缀 ux。

size_t 定义的变量也要加上前缀 ux。

枚举变量会加上前缀 e。

指针变量会加上前缀 p,比如 uint16_t 定义的指针变量会加上前缀 pus。

根据 MISRA 代码规则,char 定义的变量只能用于 ASCII 字符,前缀使用 c。

根据 MISRA 代码规则,char *定义的指针变量只能用于 ASCII 字符串,前缀使用 pc。

函数

加上了 static 声明的函数,定义时要加上前缀 prv,这个是单词 private 的缩写。

带有返回值的函数,根据返回值的数据类型,加上相应的前缀,如果没有返回值,即 void 类型 ,函数的前缀加上字母 v。

根据文件名,文件中相应的函数定义时也将文件名加到函数命名中,比如 tasks.c 文件中函数vTaskDelete,函数中的 Task 就是文件名中的 task。

宏定义

根据宏定义所在的文件,文件中的宏定义声明时也将文件名加到宏定义中,比如宏定义configUSE_PREEMPTION 是定义在文件 FreeRTOSConfig.h 里面。宏定义中的 config 就是文件名中的 config。另外注意,前缀要小写。

除了前缀,其余部分全部大写,同时用下划线分开。

二、数据类型定义

TickType_t

如果用户使能了宏定义 configUSE_16_BIT_TICKS,那么 TickType_t 定义的就是 16 位无符号数,如果没有使能,那么 TickType_t 定义的就是 32 位无符号数。对于 32 位架构的处理器,一定要禁止此宏定义,即设置此宏定义数值为 0 即可。

BaseType_t

这个数据类型根据系统架构的位数而定,对于 32 位架构,BaseType_t 定义的是 32 位有符号数,对于 16 位架构,BaseType_t 定义的是 16 位有符号数。如果 BaseType_t 被定义成了 char 型,要特别注意将其设置为有符号数,因为部分函数的返回值是用负数来表示错误类型。

UBaseType_t

这个数据类型是 BaseType_t 类型的无符号版本。

StackType_t

栈变量数据类型定义,这个数量类型由系统架构决定,对于 16 位系统架构,StackType_t 定义的是16 位变量,对于 32 位系统架构,StackType_t 定义的是 32 位变量。


总结

FreeRTOS的命名风格乍一看会觉得毛毛躁躁的,不及UC/OS舒服,但实际上这种命名规则对于程序书写及查错还是很有帮助的,就是你一眼能看见这个函数是否有返回值,返回值是什么类型的,传入的形参的类型是什么,以及全局变量的数据类型、存储类型等都是可以很清晰的看出来,建议大家慢慢的自己找一套比较适合的命名规则,形成习惯后对后期的开发大有益处。




  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值