FreeRTOS的编码标准和命名风格

1. FreeRTOS 的编码标准

FreeRTOS 核心源码文件的编写遵循 MISRA 代码规则,同时支持各种编译器。但考虑到有些编译器的性能还比较弱,不支持 C 语言的新标准 C99 和 C11 的一些特性和语法,所以 FreeRTOS 的源码中就没有引入 C99 和 C11 的新特性,但是有一个例外,源码中有用到头文件 stdint.h(这个文件是C99标准才引入的)。

2. FreeRTOS 的命名规则

  • 变量
    1. uint32_t 定义的变量都加上前缀 ul。 u 代表 unsigned 无符号,l 代表 long 长整型。
    2. uint16_t 定义的变量都加上前缀 us。 u 代表 unsigned 无符号,s 代表 short 短整型。
    3. uint8_t 定义的变量都加上前缀 uc。 u 代表 unsigned 无符号,c 代表 char 字符型。
    4. stdint.h 文件中未定义的变量类型,在定义变量时需要加上前缀 x,比如 BaseType_t 和
      TickType_t 定义的变量。
    5. stdint.h 文件中未定义的无符号变量类型,在定义变量时要加上前缀 u,比如 UBaseType_t 定义
      的变量要加上前缀 ux。
    6. size_t 定义的变量也要加上前缀 ux
    7. 枚举变量会加上前缀 e
    8. 指针变量会加上前缀 p,比如 uint16_t 定义的指针变量会加上前缀 pus。
    9. 根据 MISRA 代码规则,char 定义的变量只能用于 ASCII 字符,前缀使用 c
    10. 根据 MISRA 代码规则,char *定义的指针变量只能用于 ASCII 字符串,前缀使用 pc
  • 函数
    1. 加上了 static 声明的函数,定义时要加上前缀 prv,这个是单词 private 的缩写。
    2. 带有返回值的函数,根据返回值的数据类型,加上相应的前缀,如果没有返回值,即 void 类型
      ,函数的前缀加上字母 v
    3. 根据文件名,文件中相应的函数定义时也将文件名加到函数命名中,比如 tasks.c 文件中函数
      vTaskDelete,函数中的 task 就是文件名中的 task。
  • 宏定义
    1. 根据宏定义所在的文件,文件中的宏定义声明时也将文件名加到宏定义中,比如宏定义
      configUSE_PREEMPTION 是定义在文件 FreeRTOSConfig.h 里面。 宏定义中的 config 就是文
      件名中的 config。 另外注意,前缀要小写。
    2. 除了前缀,其余部分全部大写,同时用下划线分开。

3. FreeRTOS 中数据类型

  • FreeRTOS 使用的数据类型主要分为 stdint.h 文件中定义的和自己定义的两种。 其中 char 和 char *
    定义的变量要特别注意。
    FreeRTOS 主要自定义了以下四种数据类型
  • 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 位变量。

4. FreeRTOS 的排版和注释

  • 缩进
    Tab 制表符用于缩进,Tab 一次缩进 4 个字符空间。
  • 注释
    FreeRTOS 中注释不会超过 80 个字符宽度,除非对函数的参数进行注释时。 源码中主要是采用/* */
    的形式进行注释,不采用 C++中的双斜杠风格来注释。
  • 代码效果
    FreeRTOS 的源码被设计的尽可能易于阅读和查看,实际效果如下:
    这里写图片描述

内容摘取自:《安富莱_STM32-V4开发板_FreeRTOS教程》

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智小星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值