FreeRTOS编程风格

  • FreeRTOS使用的都是标准C语言的的数据类型,但是针对不同的处理器,对C语言的数据类型又重新进行了定义,比如char重新定义成了portCHAR,这里的port表示接口的意思。用户并非一定要遵守FreeRTOS的风格,任然可以直接使用C语言的标准类型,在FreeRTOSzhon ,int型从不使用,只是用short和long,在cortex-M系列MCU中,short为16位,long 为32位。

  • 数据类型重定义在portmacro.h中

数据类型

新定义的数据类型实际数据类型(C标准类型)
portCHARchar
portSHORTshort
portLONGlong
portTickTypeunsigned short in:用于定义系统时基计数器的值和阻塞时间的值。 当 FreeRTOSConfig.h 头文件中的宏configUSE_16_BIT_TICKS 为 1 时则为 16位
portTickTypeunsigned int : 用于定义系统时基计数器的值和阻塞时间的 值 。 FreeRTOSConfig.h 头 文 件 中 的宏configUSE_16_BIT_TICKS 为 0 时则为 32位
portBASE_TYPElong:根据处理器的架构来决定是多少位的, 如果是 32/16/8bit 的处理器则是 32/16/8bit 的数据类型。一般用于定义函数的返回值或者布尔类型。

在这里插入图片描述

变量名

  • 定义变量应该把变量类型当做前缀添加到变量名之前,这样用户一看就知道变量类型
前缀符号变量类型
cchar
sshort
llong
xportBASE_TYPE 类型、数据结构、任务句柄、队列句柄等定义的变量名的前缀也是 x
p指针
u无符号数据

eg: uc = unsigned char
pc= char 类型的指针

函数名

  1. 函数名包含函数返回值的类型,函数所在文件名和函数功能,如果是私有的函数会在函数前增加prv(private)前缀
  2. vTaskPrioritySet()函数返回值为void型,在task.c这个文件中定义
  3. xQueueReceive()函数的返回值为portBASE_TYPE型,在queue.c这个文件中定义
  4. vSemaphoreCreateBinary()函数的返回值为void型,在semphr.c文件中定义

宏定义

  • 宏由大写字母定义,并配有小写字母前缀表示宏定义所在的文件夹
    |前缀|宏定义所在的文件夹 |
    |–|--|
    | port(举例,portMAX_DELAY) | porttable.h |
    | task(举例, taskENTER_CRITICAL()) | task.h |
    | pd(举例,pdTRUE) | projdefs.h |
    | config(举例,configUSE_PREEMPTION) | FreeRTOSConfig.h |
    | err(举例,errQUEUE_FULL) | projdefs.h |

  • 这里有个地方要注意的是信号量的函数都是一个宏定义,但是它的函数的命名方法是
    遵循函数的命名方法而不是宏定义的方法。

  • 在贯穿 FreeRTOS 的整个代码中,还有几个通用的宏定义我们也要注意下,都是表示 0
    和 1 的宏,具体见表格3-5
    在这里插入图片描述

格式

  • 一个 tab 键盘等于四个空格键。我们在编程的时候最好使用空格键而不是使用 tab 键,
    当两个编译器的 tab 键设置的大小不一样的时候,代码移植的时候代码的格式就会变乱,
    而使用空格键则不会出现这种问题。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值