国产久操视频-国产久草视频-国产久热精品-国产久热香蕉在线观看-青青青青娱乐-青青青青在线成人视99

  • 正文
    • 編碼標準
    • 配置文件
    • 標頭
    • 命名
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

對比μCOS與FreeRTOS風格差異

04/23 10:10
980
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

微信公眾號 | strongerHuang

10~20年前,μCOS是很多初學者的第一選擇。10年后,F(xiàn)reeRTOS成為了很多初學者的首選。

為什么以前μCOS這么受歡迎,而如今卻很少人關(guān)注了?

μCOS作為曾經(jīng)的“網(wǎng)紅”RTOS,雖然現(xiàn)在新人沒怎么關(guān)注了,但它的編碼風格依然值得初學者學習和了解。今天給大家對比一下這兩款RTOS編碼規(guī)范的差異(以uC/OS-III V3.08.02和 FreeRTOS V10.5.1為例)。

編碼標準

uC/OS 和?FreeRTOS 都是遵循 MISRA C 編碼標準,均支持 PC-Lint 靜態(tài)檢查,兩者官方文檔都有說明。

提示:

MISRA C 標準,指的是汽車 C 語言開發(fā)標準,可以參看之前分享的文章:MISRA C:2012 標準是什么?

1.uC/OS

uC/OS文章明確指出遵循MISRA C:2012標準,也支持?PC-Lint 的靜態(tài)檢查。

2.FreeRTOS

FreeRTOS也明確指出采用 MISRA C編碼標準,但是不支持 C99 之后的標準,也支持 PC-Lint 靜態(tài)檢查。

FreeRTOS在源代碼中有大量說明(注釋)對?PC-Lint 靜態(tài)檢查可能會引起異常的代碼,這一點在?uC/OS 源代碼中是沒有的。

比如:

配置文件

兩種RTOS配置文件(也就是所謂的“裁剪”文件)的“內(nèi)容”有點類似,也是進行了分類。

不過,uC/OS的分類和注釋更人性化,更適合初學者理解。

1.uC/OS

uC/OS的配置文件通常是:os_cfg.h

2.FreeRTOS

FreeRTOS的配置文件通常是:FreeRTOSConfig.h

標頭

兩種RTOS標頭的“內(nèi)容”有點類似,只是一個居中,一個靠左。

1.uC/OS

包含RTOS版本、版權(quán)說明、開源協(xié)議說明等:

2.FreeRTOS

包含RTOS版本、版權(quán)說明、開源協(xié)議說明、網(wǎng)址等,和uC/OS類似。

命名

兩種RTOS命名規(guī)則差別有點大,但都符合常規(guī)代碼命名規(guī)則。

1.文件名

uC/OS以【os_系統(tǒng)文件】方式,顯得更規(guī)范(體現(xiàn)了模塊化)。

FreeRTOS就比較直接,這個可能是剛才是命名的時候沒有長期規(guī)劃,然后為了兼容,一直沿用至今。(這種更容易引起文件重名)

2.宏

兩者有共同之處:下劃線隔開大寫字母,但是開頭(前綴)有一定區(qū)別。

以“配置文件”為例:uC/OS以【OS_CFG_】開頭,F(xiàn)reeRTOS以【config】開頭。

3.數(shù)據(jù)類型

uC/OS定義的數(shù)據(jù)類型,相對更常見,也更適合新手。

FreeRTOS定義的數(shù)據(jù)類型,更“系統(tǒng)”一點,適合老司機,對新手相對沒那么友好。

4.函數(shù)名

兩者有點類似,前綴不一樣,后面都是以【大寫字母開頭】進行區(qū)分。

比如:創(chuàng)建任務(wù)的函數(shù)名:

FreeRTOS的前綴官方有這樣的描述:

靜態(tài)(static)函數(shù)以 prv 為前綴。比如:prvIdleTask 函數(shù)。

API 函數(shù)以其返回類型為前綴,void 類型以 v?為綴。比如:vTaskDelete 函數(shù)。

注釋

// ?/* */ 是兩種最常見注釋的方法,但這兩種 RTOS 基本以【/* */】注釋居多。

注釋的位置也是有講究,通常在代碼所在行上一行,或者在代碼所在行(代碼后面)。

這里主要說明一下,F(xiàn)reeRTOS在代碼中沒有相信注釋函數(shù)的功能、參數(shù)、返回值等信息。

還是以“創(chuàng)建任務(wù)”函數(shù)為例:

當然,F(xiàn)reeRTOS的函數(shù)注釋信息,在手冊中有相信描述。

縮進

這兩種RTOS縮進方式一樣,都是采用 4 空格:

這里要提醒一下,切記不要 Tab 和空格兩者混用,不然代碼就是一片亂。(在不少新手,或者初級工程中就經(jīng)常出現(xiàn)這種,代碼簡直不敢看)

單詞縮寫

不同的領(lǐng)域,有不同的縮寫方式。在RTOS中也有一些常見的縮寫單詞,比如:

縮寫 原意
Addr Address
Blk Block
Chk Check
Clr Clear
Cnt Count
Ctr Counter
Ctx Context
Cur Current
Del Delete
Dly Delay
Err Error
OS Operating System??
CPU Center Processing Unit

好了,本文就分享到這里。以上只是列舉了部分典型的編碼風格,更多細節(jié),大家可以抽時間自行研究。

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

作者黃工,從事嵌入式軟件開發(fā)工作8年有余,高級嵌入式軟件工程師,業(yè)余維護公眾號『strongerHuang』,分享嵌入式軟硬件、單片機、物聯(lián)網(wǎng)等內(nèi)容。

澄城县| 泸州市| 崇阳县| 微山县| 新源县| 那坡县| 河曲县| 东乌| 赣州市| 雷山县| 公安县| 铜鼓县| 武胜县| 石门县| 遂川县| 都匀市| 沙坪坝区| 通渭县| 枣强县| 辛集市| 九龙县| 永春县| 黔南| 东城区| 江油市| 尖扎县| 庆安县| 德兴市| 布尔津县| 涡阳县| 朝阳县| 商南县| 乌拉特中旗| 永德县| 蛟河市| 藁城市| 濉溪县| 敖汉旗| 饶平县| 巴南区| 交城县|