ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

读书笔记---FreeRTOS的编译风格

2022-03-02 09:34:47  阅读:139  来源: 互联网

标签:定义 FreeRTOS 读书笔记 前缀 函数 --- 变量 define


 学习一个RTOS,弄清楚它的编程风格很重要,这可以大大提高我们阅读代码的效率(虽然我不太喜欢这种风格)。

1、数据类型

  FreeRTOS针对不同的处理器,对标准C的数据类型进行了重定义。在类型前一般加上port ,这里的port表示接口,在移植FreeRTOS到处理器上时,需要将这些接口文件把它们连接在一起。在FreeRTOS中,int型从不使用,只使用short 、long型。在corten-M内核的MCU中,short为16位,long为32位。

FreeRTOS中的数据类型重定义
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

 

 2、变量名

把变量的类型当作前缀加在变量上:

char型变量的前缀是c

short型变量的前缀是s

long型变量的前缀是l

portBASE_TYPE类型变量、数据结构、任务句柄、队列句柄等定义变量名前缀为x

如果变量是无符号的,前缀有一个u,如果是指针变量,则会有一个前缀p。

无符号的char型变量会加一个uc前缀

char型的指针变量会加一个pc的前缀。

 

 3、函数名

函数名包含了函数返回值的类型、函数所在的文件名和函数功能,如果是私有函数,则会加一个prv(private)的前缀。

1)vTaskPrioritySet()函数的返回值为void型,在task.c文件中定义。
2)xQueueReceive()函数的返回值为portBASE_TYPE型,在queue.c文件中定义。
3)vSemaphoreCreateBinary()函数的返回值为void型,在semphr.h文件中定义。

 

 4、宏

 由大写字母表示,并配有小写字母的前缀,前缀用于表示该宏在哪个头文件定义:

portMAX_DELAY   在文件 porttable.h 中定义

taskENTER_CRITIOAL()  在文件 task.h 中定义

pdTRUE  在文件  projdefs.h 中定义

 

 特别注意的是队列的定义,是按函数名规则 的

errQUEUE_FULL   是在 projdefs.h  中定义的

 还有几个通用的宏定义也要注意一下的:

pdTRUE    1

pdFALSE    0

pdPASS    1

pdFAIL     0

 

5、格式

  1个Tab键=4个空格

  当两个编译器的Tab键大小设置得不一样时,移植代码时会变乱。

 

标签:定义,FreeRTOS,读书笔记,前缀,函数,---,变量,define
来源: https://www.cnblogs.com/ben002/p/15953536.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有