色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

編碼風格:μCOS vs FreeRTOS

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2023-01-11 10:14 ? 次閱讀

不定期有讀者在問:

怎么才能寫出漂亮的代碼?

哪里有優秀的代碼可以參考?

怎樣才能提高自己編碼水平?

其實,我們身邊到處都有優秀的代碼可以借鑒,只是你沒有認真去發現而已。裸機、RTOSLinux等各類優秀的開源代碼相信你一定見到過,還有一些優秀的開源庫你也肯定接觸過。

想要寫出漂亮、優秀的代碼,首先,你的代碼必須要有一套規范。

今天就給大家分享一下我們身邊熟知的RTOS的編碼規范,以目前(2023-01-10)最新版本的uC/OS-III V3.08.02和 FreeRTOS V10.5.1為例:

編碼標準

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

提示:

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

1.uC/OS

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

1c42b474-90df-11ed-bfe3-dac502259ad0.png

2.FreeRTOS

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

1c8b4752-90df-11ed-bfe3-dac502259ad0.png

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

比如:

1cb834ce-90df-11ed-bfe3-dac502259ad0.png

配置文件

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

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

1.uC/OS

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

1ce32904-90df-11ed-bfe3-dac502259ad0.gif

2.FreeRTOS

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

1f23769c-90df-11ed-bfe3-dac502259ad0.gif

標頭

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

1.uC/OS

包含RTOS版本、版權說明、開源協議說明等:

1f44df30-90df-11ed-bfe3-dac502259ad0.png

2.FreeRTOS

包含RTOS版本、版權說明、開源協議說明、網址等,和uC/OS類似。

1f61fb1a-90df-11ed-bfe3-dac502259ad0.png

命名

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

1.文件名

uC/OS以【os_系統文件】方式,顯得更規范(體現了模塊化)。

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

1f8fde22-90df-11ed-bfe3-dac502259ad0.png

2.宏

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

以“配置文件”為例:uC/OS以【OS_CFG_】開頭,FreeRTOS以【config】開頭。

1fbb08a4-90df-11ed-bfe3-dac502259ad0.png

3.數據類型

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

FreeRTOS定義的數據類型,更“系統”一點,適合老司機,對新手相對沒那么友好。

20304cd6-90df-11ed-bfe3-dac502259ad0.png

4.函數名

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

比如:創建任務的函數名:

204ed174-90df-11ed-bfe3-dac502259ad0.png

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

靜態(static)函數以 prv 為前綴。比如:prvIdleTask 函數。

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

注釋

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

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

這里主要說明一下,FreeRTOS在代碼中沒有相信注釋函數的功能、參數、返回值等信息

還是以“創建任務”函數為例:

2074f1ce-90df-11ed-bfe3-dac502259ad0.png

當然,FreeRTOS的函數注釋信息,在手冊中有相信描述。

縮進

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

20a495fa-90df-11ed-bfe3-dac502259ad0.png

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

單詞縮寫

不同的領域,有不同的縮寫方式。在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

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

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11319

    瀏覽量

    209830
  • 編碼
    +關注

    關注

    6

    文章

    946

    瀏覽量

    54870
  • RTOS
    +關注

    關注

    22

    文章

    817

    瀏覽量

    119715
  • 代碼
    +關注

    關注

    30

    文章

    4801

    瀏覽量

    68735
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62226

原文標題:編碼風格:μCOS vs FreeRTOS

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    HDL編碼風格編碼

    本帖最后由 mr.pengyongche 于 2013-4-30 02:58 編輯 HDL編碼風格編碼
    發表于 08-12 12:09

    編碼風格編碼

    本帖最后由 mr.pengyongche 于 2013-4-30 02:56 編輯 編碼風格編碼
    發表于 08-17 09:34

    VS1053編碼

    VS1053怎么將音頻ADC采集的值編碼輸出?
    發表于 07-24 22:18

    FreeRTOS編碼標準如何命名

    初學FreeRTOS,感覺函數和變量等相關的命名比較頭疼看著,遂去查閱了一番,發現有一套很科學的體系在里面,磨刀不誤砍柴功,希望能有跟我一樣的初學者來了解一下命名規則。把網上的講解保存了一下,發上來,供和我一樣的初學者方便查閱。FreeRTOS
    發表于 06-10 04:36

    Linux內核編碼風格(編程代碼風格推薦)

    編碼素質的重要性。相反沒有良好的風格的代碼讀起來難看、晦澀,甚至有時候一個括號沒對齊就能造成對程序的曲解或者不理解。我曾經就遇見過這樣的情況,花費了很多不必要的時間在程序的上下文對照上,還debug了
    發表于 08-24 09:45

    梳理一下FreeRTOS內核代碼規范

    [導讀] 遇到些朋友感覺FreeRTOS內核代碼看起來很不習慣,不習慣其編碼風格,本文就來梳理一下其代碼規范,便于提高閱讀其代碼的效率。代碼基于FreeRTOS V10.4.3。Fre
    發表于 03-01 07:33

    Gowin HDL編碼風格要求及編碼實現

    本手冊主要描述高云?HDL 編碼風格要求及原語的 HDL 編碼實現,旨在幫助用戶快速熟悉高云 HDL 編碼風格和原語實現,指導用戶設計,提高
    發表于 09-29 06:23

    如何使用VS Code和PlatformIO更好的Arduino編碼

    使用VS Code和PlatformIO為Arduino編碼帶來了新鮮的空氣。由于Visual Studio的Live Share功能,它還使遠程協作變得更加容易。
    的頭像 發表于 11-29 09:30 ?1.9w次閱讀

    FreeRTOS編碼規則及風格指南

    1.編碼標準 FreeRTOS的核心源代碼遵從MISRA編碼標準指南。這個標準篇幅稍長,你可以在MISRA官方網站花少量錢買到,這里不再復制任何標準。 FreeRTOS源代碼不符合MI
    的頭像 發表于 01-10 11:00 ?2637次閱讀

    關于Linux的內核代碼風格

    編碼風格錯誤開始 曾經在開發Linux內核驅動的時候,創建了一個補丁文件,但是在把補丁打到主分支的時候提示很多編碼風格的錯誤問題,后來重做了補丁才解決了問題,這也是沒有嚴格按照的Li
    的頭像 發表于 04-25 14:50 ?1823次閱讀

    一文帶你快速理解FreeRTOS代碼規范

    [導讀] 遇到些朋友感覺FreeRTOS內核代碼看起來很不習慣,不習慣其編碼風格,本文就來梳理一下其代碼規范,便于提高閱讀其代碼的效率。代...
    發表于 01-25 19:37 ?0次下載
    一文帶你快速理解<b class='flag-5'>FreeRTOS</b>代碼規范

    Sin/Cos編碼器與Sitara AM437x的連接參考設計

    電子發燒友網站提供《Sin/Cos編碼器與Sitara AM437x的連接參考設計.zip》資料免費下載
    發表于 09-06 11:31 ?1次下載
    Sin/<b class='flag-5'>Cos</b><b class='flag-5'>編碼</b>器與Sitara AM437x的連接參考設計

    Gowin HDL編碼風格用戶指南

    本手冊主要描述高云?HDL 編碼風格要求及原語的 HDL 編碼實現,旨在 幫助用戶快速熟悉高云 HDL 編碼風格和原語實現,指導用戶設計,
    發表于 09-15 16:02 ?0次下載
    Gowin HDL<b class='flag-5'>編碼</b><b class='flag-5'>風格</b>用戶指南

    Verilog編碼風格的建議

    良好的編碼風格,有助于代碼的閱讀、調試和修改。雖然 Verilog 代碼可以在保證語法正確的前提下任意編寫,但是潦草的編碼風格往往是一錘子買賣。
    的頭像 發表于 06-01 16:27 ?733次閱讀
    Verilog<b class='flag-5'>編碼</b><b class='flag-5'>風格</b>的建議

    阿里AliOS的編碼風格

    其實,我們身邊就有很多“好的資源”值得學習,比如本文分享的 阿里 AliOS 的編碼風格
    發表于 06-02 09:26 ?240次閱讀
    主站蜘蛛池模板: 名女躁b久久天天躁| 色戒未删减版在线观看完整| 韩国电影real在线观看完整版| 国产第一页浮力影院| 国产精品久久久久久久人热 | 麻豆成人啪啪色婷婷久久 | 爱人 qvod| 国产AV无码成人黄网站免费| 国产精品无码视频一区二区| 狠狠色狠色综合曰曰| 久久无码av三级| 琪琪see色原网色原网站| 偷窥美女3| 伊人久久大香线蕉综合高清| 97视频免费上传播放| 高清无码色大片中文| 黄色软件视频app| 免费人妻AV无码专区五月| 日本19xxxx撤尿| 亚洲高清国产拍精品影院| 中文人妻熟妇精品乱又伧| 草b是什么感觉| 国内精品欧美久久精品| 麻豆啊传媒app黄版破解免费| 日韩视频在线观看| 亚洲欧美一区二区三区蜜芽| 91精品婷婷国产综合久久8| 俄罗斯女人与马Z00Z视频| 国产亚洲精品久久久久久禁果TV | 97人视频国产在线观看| 儿子操妈妈视频| 精品久久综合1区2区3区激情| 男人叼女人| 羞羞漫画视频| 99国产在线视频| 国产精品一区二区在线播放| 狂野欧美性猛XXXX乱大交| 少妇精油按摩| 18禁黄无遮挡禁游戏在线下载| 国产成人精视频在线观看免费| 久久精品国产亚洲AV久五月天|