最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

FreeRTOS 的編碼標(biāo)準(zhǔn)

2023-07-05 16:51 作者:自閉選手的Z23  | 我要投稿

FreeRTOS 核心源碼文件的編寫遵循 MISRA 代碼規(guī)則,同時(shí)支持各種編譯器。但考慮到有些編譯器的性能還比較弱,不支持 C 語言的新標(biāo)準(zhǔn) C99 和 C11 的一些特性和語法,所以 FreeRTOS 的源碼中就沒有引入 C99 和 C11 的新特性,但是有一個(gè)例外,源碼中有用到頭文件 stdint.h(這個(gè)文件是 C99 標(biāo)準(zhǔn)才引入的)。

如果用戶使用的編譯器沒有這個(gè)頭文件的話,可以將 FreeRTOS 源碼文件中,此路徑下

FreeRTOS/Source/include 的一個(gè) stdint.readme 文件修改為 stdint.h 文件后用于這個(gè)編譯器。

?

FreeRTOS 的命名規(guī)則

初學(xué) FreeRTOS 的用戶對(duì)其變量和函數(shù)的命名比較迷惑,下面專門做一下介紹:

◆ 變量

uint32_t 定義的變量都加上前綴 ul。u代表 unsigned 無符號(hào),l 代表 long 長(zhǎng)整型。

?

uint16_t 定義的變量都加上前綴 us。s 代表 short 短整型。

?

uint8_t 定義的變量都加上前綴 uc。c 代表 char 字符型。

?

stdint.h 文件中未定義的變量類型,在定義變量時(shí)需要加上前綴 x,比如 BaseType_t 和 TickType_t 定義的變量。

?

stdint.h 文件中未定義的無符號(hào)變量類型,在定義變量時(shí)要加上前綴 u,比如 UBaseType_t 定義 的變量要加上前綴 ux

?

size_t 定義的變量也要加上前綴 ux。

?

枚舉變量會(huì)加上前綴 e

?

指針變量會(huì)加上前綴 p,比如 uint16_t 定義的指針變量會(huì)加上前綴 pus。

?

根據(jù) MISRA 代碼規(guī)則,char 定義的變量只能用于 ASCII 字符,前綴使用 c。

?

根據(jù) MISRA 代碼規(guī)則,char *定義的指針變量只能用于 ASCII 字符串,前綴使用 pc。

?

函數(shù)

加上了?static 聲明的函數(shù),定義時(shí)要加上前綴 prv,這個(gè)是單詞 private 的縮寫。

?

帶有返回值的函數(shù),根據(jù)返回值的數(shù)據(jù)類型,加上相應(yīng)的前綴,如果沒有返回值,即 void 類型 ,函數(shù)的前綴加上字母 v。

?

根據(jù)文件名,文件中相應(yīng)的函數(shù)定義時(shí)也將文件名加到函數(shù)命名中,比如 tasks.c 文件中函數(shù)vTaskDelete,函數(shù)中的 task 就是文件名中的 task。

?

?

宏定義

根據(jù)宏定義所在的文件,文件中的宏定義聲明時(shí)也將文件名加到宏定義中,

比如宏定義 configUSE_PREEMPTION 是定義在文件 FreeRTOSConfig.h 里面。宏定義中的 config 就是文 件名中的 config。另外注意,前綴要小寫。

除了前綴,其余部分全部大寫,同時(shí)用下劃線分開

?

?

FreeRTOS 中數(shù)據(jù)類型

FreeRTOS 使用的數(shù)據(jù)類型主要分為 stdint.h 文件中定義的和自己定義的兩種。其中 char 和 char * 定義的變量要特別注意。 FreeRTOS 主要自定義了以下四種數(shù)據(jù)類型:

?

◆ TickType_t

如果用戶使能了宏定義 configUSE_16_BIT_TICKS,那么 TickType_t 定義的就是 16 位無符號(hào)數(shù),如果沒有使能,那么 TickType_t 定義的就是 32 位無符號(hào)數(shù)。

對(duì)于 32 位架構(gòu)的處理器,一定要禁止此 宏定義,即設(shè)置此宏定義數(shù)值為 0 即可。

?

◆ BaseType_t

這個(gè)數(shù)據(jù)類型根據(jù)系統(tǒng)架構(gòu)的位數(shù)而定,對(duì)于 32 位架構(gòu),BaseType_t 定義的是 32 位有符號(hào)數(shù),對(duì) 于 16 位架構(gòu),BaseType_t 定義的是 16 位有符號(hào)數(shù)。

如果 BaseType_t 被定義成了 char 型,要特別注意將其設(shè)置為有符號(hào)數(shù),因?yàn)椴糠趾瘮?shù)的返回值是用負(fù)數(shù)來表示錯(cuò)誤類型。

?

◆ UBaseType_t

這個(gè)數(shù)據(jù)類型是 BaseType_t 類型的有符號(hào)版本。

?

◆ StackType_t

棧變量數(shù)據(jù)類型定義,這個(gè)數(shù)量類型由系統(tǒng)架構(gòu)決定,對(duì)于 16 位系統(tǒng)架構(gòu),StackType_t 定義的是 16 位變量。

對(duì)于 32 位系統(tǒng)架構(gòu),StackType_t 定義的是 32 位變量。

?

?

?


FreeRTOS 的編碼標(biāo)準(zhǔn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
镇安县| 蕲春县| 大安市| 元朗区| 迭部县| 凤山市| 邵武市| 当涂县| 普陀区| 成都市| 马尔康县| 桃江县| 黔东| 金沙县| 庆云县| 长垣县| 延吉市| 岗巴县| 资源县| 休宁县| 台南市| 凭祥市| 长沙县| 锦州市| 安阳县| 桂阳县| 兰溪市| 区。| 宁城县| 德钦县| 阿拉善盟| 营口市| 沙雅县| 丰台区| 古田县| 宁武县| 鲁山县| 若尔盖县| 陇川县| 乡宁县| 娄烦县|