五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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)遵守國家法律
长武县| 南澳县| 武功县| 华亭县| 威宁| 新营市| 宜都市| 梁平县| 漳州市| 遵义县| 连城县| 天柱县| 建宁县| 新化县| 武夷山市| 墨玉县| 紫金县| 横山县| 临沂市| 会东县| 台北县| 赣州市| 淮北市| 绥芬河市| 南涧| 康马县| 凤台县| 尼木县| 沁阳市| 于田县| 郯城县| 新民市| 丁青县| 灵宝市| 芜湖县| 禹城市| 双峰县| 黎川县| 肇东市| 雷州市| 专栏|