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

歡迎光臨散文網(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)遵守國家法律
红河县| 唐山市| 叙永县| 连城县| 隆回县| 陇南市| 肇源县| 保康县| 将乐县| 长沙市| 措勤县| 吴江市| 韶关市| 合山市| 云阳县| 彭阳县| 错那县| 辛集市| 朝阳市| 工布江达县| 云阳县| 临漳县| 广水市| 潢川县| 龙海市| 丹巴县| 宁明县| 九江市| 瑞丽市| 七台河市| 中宁县| 南郑县| 隆子县| 玛多县| 揭西县| 杨浦区| 垫江县| 都江堰市| 青龙| 长岭县| 汝阳县|