您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 创业/孵化 > FreeRTOS-编程标准
编程标准(CodingStandard)FreeRTOS源代码遵守MISRA(MotorIndustrySoftwareReliabilityAssociation)规范。与MISRA标准有出入的地方如下:两个API函数具有两个出口点。之所以这样是为了效率。使用标准C数据类型,而不是用typedef将其名称重定义。当建立一个任务时,代码会直接处理堆栈的栈顶和栈底地址。由于不同的平台的总线宽度不同,这就需要代码中对指针变量进行算术运算。因此,对指针变量的算术运算是不可避免的。trace宏定义,默认情况下被定义为空,因此不会产生任何代码。命名约定(NamingConventions)RTOS内核与Demo程序源代码使用下面的约定:变量char类型的变量以c为前缀short类型的变量以s为前缀long类型的变量以l为前缀float类型的变量以f为前缀double类型的变量以d为前缀枚举变量以e为前缀其他类型(如结构体)以x为前缀指针有一个额外的前缀p,例如short类型的指针前缀为ps无符号类型的变量有一个额外的前缀u,例如无符号short类型的变量前缀为us函数文件内部函数以prv为前缀API函数以其返回值类型为前缀,按照前面对变量的定义函数的名字以其所在的文件名开头。如vTaskDelete函数在Task.c文件中定义宏定义宏名以所在的文件的文件名的一部分作为前缀(开头),并且用小写。比如,configUSE_PREEMPTION在文件FreeRTOSConifg.h中.除了前缀,其余部分用大写,下划线来分隔单词。数据类型基本数据类型可以直接使用,但是有如下的例外和规则:char类型在每个平台都有其自身的定义方式。有些平台char等价于signedchar,另一些则等价于unsignedchar,为此,要在代码中明确的使用signedchar或unsignedchar。直接使用char类型是被禁止的。不能直接使用int类型,要使用short和long。float和double没有在内核中使用,但是Demo代码中有使用。此外,有两种额外的类型要为每种平台定义。分别是:portTickType如果configUSE_16_BIT_TICKS被定义,则portTickType被定义为无符号16bit类型,否则为无符号32bit类型。参考API文档中的定制部分获取详细信息。portBASE_TYPE被定义为当前平台最佳的整形类型。例如,在一个32位的平台上,portBASE_TYPE被定义为32位的数据类型。在16位的平台上,portBASE_TYPE则被定义为16位的数据类型。如果portBASE_TYPE被定义为char类型,则必须为signedchar类型,因为代码中用到这种类型作为一些函数的返回值类型,而返回值必须可以为负值以用来指示错误条件.编程风格缩进缩进使用Tab.一个tab等于4个空格.注释注释文字尽量不能超过80列,除非是用来描述一个参数。不采用C++类型的注释(//)。
本文标题:FreeRTOS-编程标准
链接地址:https://www.777doc.com/doc-4807304 .html