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

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

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

3天內不再提示

FreeRTOS編碼規則及風格指南

安芯教育科技 ? 來源:安芯教育科技 ? 作者:朱工 ? 2021-01-10 11:00 ? 次閱讀
1.編碼標準

FreeRTOS的核心源代碼遵從MISRA編碼標準指南。這個標準篇幅稍長,你可以在MISRA官方網站花少量錢買到,這里不再復制任何標準。

FreeRTOS源代碼不符合MISRA標準的項目如下所示:

  • 有兩個API函數有多個返回點。MISRA編碼標準強制規定:一個函數在其結尾應該有單一的返回點。
  • 指針算數運算,在創建任務時,為了兼容8、16、20、24、32位總線,不可避免的使用了指針算數運算。MISRA編碼標準強制規定:指針的算術運算只能用在指向數組或數組元素的指針上。
  • 默認情況下,跟蹤宏為空語句,因此不符合MISRA的規定。MISRA編碼標準強制規定:預處理指令在句法上應該是有意義的。
    FreeRTOS可以在很多不同編譯器中編譯,其中的一些編譯器比同類有更高級特性。因為這個原因,FreeRTOS不使用任何非C語言標準的特性或語法。一個例外情況是頭文件stdint.h。在文件夾FreeRTOS/Source/include下包含一個叫做stdint.readme的文件,如果你的編譯器不提供stdint類型定義,可以將stdint.readme文件重命名為stdint.h。
2.命名規則
RTOS內核和演示例程源代碼使用以下規則: 1> 變量
  • uint32_t類型的變量使用前綴ul,這里’u’表示’unsigned’,’l’表示’long’
  • uint16_t類型的變量使用前綴us,這里’u’表示’unsigned’,’s’表示’short’
  • uint8_t類型的變量使用前綴uc,這里’u’表示’unsigned’,’c’表示’char’
  • 非stdint類型的變量使用前綴x,比如基本的Type_t和TickType_t類型,這些類型在移植層定義,定義成符合處理器架構的最高效類型;
  • 非stdint類型的無符號變量使用前綴ux,比如UbaseType_t(unsigned BaseType_t)
  • size_t類型的變量使用前綴x;
  • 枚舉類型變量使用前綴e
  • 指針類型變量在類型基礎上附加前綴p,比如指向uint16_t的指針變量前綴為pus
  • 與MISRA指南一致,char類型變量僅被允許保存ASCII字符,前綴為c
  • 與MISRA指南一致,char *類型變量僅允許指向ASCII字符串,前綴為pc 2> 函數
  • 在文件作用域范圍的函數前綴為prv
  • API函數的前綴為它們的返回類型,當返回為空時,前綴為v
  • API函數名字起始部分為該函數所在的文件名。比如vTaskDelete函數定義在tasks.c,并且該函數返回空。 3> 宏
  • 宏的名字起始部分為該宏定義所在的文件名的一部分。比如configUSE_PREEMPTION定義在FreeRTOSConfig.h文件中。
  • 除了前綴,宏剩下的字母全部為大寫,兩個單詞間用下劃線(’_’)隔開。
3.數據類型
只有stdint.h和RTOS自己定義的數據類型可以使用,但也有例外情況,如下所示:
  • char:與MISRA編碼標準指南一致,char類型變量僅被允許保存ASCII字符
  • char :與MISRA編碼標準指南一致,char 類型變量僅允許指向ASCII字符串。當標準庫函數期望一個char *參數時,這樣做可以消除一些編譯器警告;特別是考慮到有些編譯器將char類型當做signed類型,還有些編譯器將char類型當做unsigned類型。有三種類型會在移植層定義,它們是:
  • TickType_t:如果configUSE_16_BIT_TICKS為非零(條件為真),TickType_t定義為無符號16位類型。如果configUSE_16_BIT_TICKS為零(條件為假),TickType_t定義為無符號32位類型。注:32位架構的微處理器應設置configUSE_16_BIT_TICKS為零。
  • BaseType_t:定義為微處理器架構效率最高的數據類型。比如,在32位架構處理器上,BaseType_t應該定義為32位類型。在16位架構處理器上,BaseType_t應該定義為16位類型。如果BaseType_t定義為char,對于函數返回值一定要確保使用的是signed char,否則可能造成負數錯誤。
  • UbaseType_t:這是一個無符號BaseType_t類型
4.風格指南
  • 縮進:縮進使用制表符,一個制表符等于4個空格。
  • 注釋:注釋單行不超過80列,特殊情況除外。不使用C++風格的雙斜線(//)注釋
  • 布局:FreeRTOS的源代碼被設計成盡可能的易于查看和閱讀。下面的代碼片中,第一部分展示文件布局,第二部分展示C代碼設計格式。

	
/*首先在這里包含庫文件...*/
#include

/*...然后是FreeRTOS的頭文件...*/
#include"FreeRTOS.h"

/*...緊接著包含其它頭文件.*/
#include"HardwareSpecifics.h"

/*隨后是#defines,在合理的位置添加括號.*/
#defineA_DEFINITION(1)

/*
*隨后是Static(文件內部的)函數原型,
*如果注釋有多行,參照本條注釋風格---每一行都以’*’起始.
*/
staticvoidprvAFunction(uint32_tulParameter);

/*文件作用域變量(本文件內部使用)緊隨其后,要在函數體定義之前.*/
staticBaseType_txMyVariable.

/*每一個函數的結束都有一行破折號,破折號與下面的第一個函數之間留一行空白。*/

/*-----------------------------------------------------------*/

voidvAFunction(void)
{
/*函數體在此定義,注意要用大括號括住*/
}
/*-----------------------------------------------------------*/

staticUBaseType_tprvNextFunction(void)
{
/*函數體在此定義.*/
}
/*-----------------------------------------------------------*/

/*
*函數名字總是占一行,包括返回類型。左括號之前沒有空格左括號之后有一個空格,
*每個參數后面有一個空格參數的命名應該具有一定的描述性.
*/
voidvAnExampleFunction(longlParameter1,unsignedshortusParameter2)
{
/*變量聲明沒有縮進.*/
uint8_tucByte;

/*代碼要對齊.大括號占獨自一行.*/
for(ucByte=0U;ucBytefor、whiledoif結構具有相似的模式。這些關鍵字和左括號之間沒有空格。
*左括號之后有一個空格,右括號前面也有一個空格,每個分號后面有一個空格。
*每個運算符的前后各一個空格。使用圓括號明確運算符的優先級。不允許有0
*以外的數字(魔鬼數)出現,必要時將這些數字換成能表示出數字含義的常量或
*宏定義。
*/
for(ucByte=0U;ucBytewhile(ucByteif((ucByte#if(configUSE_TRACE_FACILITY==1)
{
/*向TCB增加一個用于跟蹤的計數器.*/
pxNewTCB->uxTCBNumber=uxTaskNumber;
}
#endif

/*方括號前后各留一個空格*/
ucBuffer[0]=0U;
ucBuffer[fileBUFFER_LENGTH-1U]=0U;

責任編輯:xj

原文標題:FreeRTOS系列第4篇---FreeRTOS編碼標準及風格指南

文章出處:【微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。


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

    關注

    6

    文章

    945

    瀏覽量

    54859
  • FreeRTOS
    +關注

    關注

    12

    文章

    484

    瀏覽量

    62219

原文標題:FreeRTOS系列第4篇---FreeRTOS編碼標準及風格指南

文章出處:【微信號:Ithingedu,微信公眾號:安芯教育科技】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    高精度磁編碼器選型指南編碼器的安裝與調試技巧

    高精度磁編碼器選型指南 精度要求 : 確定所需的測量精度,例如角度分辨率、線性度等。高精度磁編碼器通常具有更高的分辨率和更好的線性度,適用于對測量精度要求較高的應用。 工作環境 : 考慮編碼
    的頭像 發表于 11-23 09:14 ?442次閱讀

    FPGA編碼風格介紹

    組合邏輯環路(Combinational Loops):指組合邏輯的輸出信號不經過任何時序邏輯電路(FF等),而直接反饋到輸入節點,從而構成的電路環路。
    的頭像 發表于 11-15 10:49 ?237次閱讀
    FPGA<b class='flag-5'>編碼</b><b class='flag-5'>風格</b>介紹

    二進制編碼器的故障排除指南

    二進制編碼器是一種將二進制信號轉換為數字信號的電子設備,廣泛應用于計算機、通信和自動化控制系統中。當二進制編碼器出現問題時,有效的故障排除是確保系統正常運行的關鍵。 1. 初步檢查 1.1 檢查電源
    的頭像 發表于 11-06 09:49 ?352次閱讀

    風華貼片電容物料編碼如何看?

    風華貼片電容的物料編碼規則通常包含多個部分,每個部分都代表了不同的信息。以下是關于如何解讀風華貼片電容物料編碼的分點表示和歸納: 1、電容數值: 編碼的第一至第三位數字表示電容的數值,
    的頭像 發表于 11-04 15:33 ?235次閱讀
    風華貼片電容物料<b class='flag-5'>編碼</b>如何看?

    網關的設置規則

    網關的設置規則涉及多個方面,包括硬件安裝、網絡連接、基本配置、高級配置以及安全設置等。以下是一篇關于網關設置規則的詳細指南,旨在幫助用戶正確配置和管理網關設備。
    的頭像 發表于 09-30 11:48 ?2146次閱讀

    在TM4C MCU上使用FreeRTOS開發高級應用

    電子發燒友網站提供《在TM4C MCU上使用FreeRTOS開發高級應用.pdf》資料免費下載
    發表于 09-06 10:17 ?0次下載
    在TM4C MCU上使用<b class='flag-5'>FreeRTOS</b>開發高級應用

    freertos最多支持多少個任務

    FreeRTOS是一個輕量級的實時操作系統(RTOS),其設計初衷就是為了提供簡單、可靠且高效的實時任務管理。關于FreeRTOS最多支持多少個任務的問題,實際上并沒有一個固定的上限,這主要取決于
    的頭像 發表于 09-02 14:21 ?956次閱讀

    freertos和rtos區別是什么

    FreeRTOS 和 RTOS(實時操作系統)是兩個不同的概念,但它們之間有緊密的聯系。FreeRTOS 是一個特定的開源實時操作系統,而 RTOS 是實時操作系統的一般概念。 概念定義 RTOS
    的頭像 發表于 09-02 14:18 ?1313次閱讀

    freertos和裸機有什么區別

    FreeRTOS 和裸機編程是兩種不同的嵌入式系統開發方法,它們在設計理念、資源使用、功能實現等方面有著顯著的差異。 1. 基本概念 1.1 FreeRTOS FreeRTOS 是一個小型的、可裁剪
    的頭像 發表于 09-02 14:13 ?1547次閱讀

    HPM SDK 1.6.0 FreeRTOS LTS更改及適配指南

    1、HPM_SDKFreeRTOSLTS特性總覽HPMSDKV1.6.0中FreeRTOS升級前后特性支持對比:特性V10.4.4LTS202210.01中斷搶占√√RISCV浮點擴展支持
    的頭像 發表于 07-06 08:17 ?3792次閱讀
    HPM SDK 1.6.0 <b class='flag-5'>FreeRTOS</b> LTS更改及適配<b class='flag-5'>指南</b>

    實時操作系統之RT-Thread及FreeRTOS

    RT-Thread與其他很多RTOS如FreeRTOS的主要區別之一是,它不僅僅是一個實時內核,還具備豐富的中間層組件,如下圖所示。FreeRTOS和RT-Thread是兩種常見的嵌入式實時操作系統
    的頭像 發表于 05-29 08:10 ?3952次閱讀
    實時操作系統之RT-Thread及<b class='flag-5'>FreeRTOS</b>

    淺析FreeRTOS任務調度器的三種調度算法和應用

    FreeRTOS在MCU領域應用非常廣泛,今天就給大家講解一下FreeRTOS調度器中的三種調度算法,以及在瑞薩RZ/T2L MPU中的應用。
    的頭像 發表于 05-10 14:02 ?7546次閱讀
    淺析<b class='flag-5'>FreeRTOS</b>任務調度器的三種調度算法和應用

    高清視頻編碼器選購指南:如何選擇最適合你的編碼

    高清視頻編碼器選購指南,幫助你挑選出最適合自己的編碼器。 一、了解自己的需求 在選擇高清視頻編碼器之前,首先需要明確自己的需求。你需要考慮以下幾個方面: 視頻分辨率 :你需要處理的視頻
    的頭像 發表于 02-20 15:19 ?1165次閱讀

    永磁同步電機的矢量控制 帶編碼器的電機-AB增量型編碼器應用指南

    電子發燒友網站提供《永磁同步電機的矢量控制 帶編碼器的電機-AB增量型編碼器應用指南.pdf》資料免費下載
    發表于 01-30 09:37 ?3次下載
    永磁同步電機的矢量控制 帶<b class='flag-5'>編碼</b>器的電機-AB增量型<b class='flag-5'>編碼</b>器應用<b class='flag-5'>指南</b>

    如何在TC399上刷新FreeRTOS

    我想在 TC399 上刷新 FreeRTOS。 如果有的話,你能否分享任何文檔或任何指南
    發表于 01-24 08:00
    主站蜘蛛池模板: 欧美成人亚洲高清在线观看| 亚洲久热无码中文字幕| 一区二区三区内射美女毛片| 久久国产精品麻豆AV影视| 97在线播放| 日日啪无需播放器| 娇妻让壮男弄的流白浆| 51vv视频社区| 丝袜美女被艹| 久久精品国产亚洲精品2020| blacked黑人战小美女| 婷婷久久综合九色综合伊人色| 国产性夜夜春夜夜爽1A片| 在线免费视频a| 日韩欧美中文字幕在线| 吉吉影音先锋av资源网| xxx性欧美在线| 亚洲乱色视频在线观看| 欧美成人中文字幕在线看| 国产日韩久久久精品影院首页 | 视频一区在线免费观看| 久久超碰色中文字幕| 成人五级毛片免费播放| 伊人综合在线22| 深爱激情站| 蜜芽国产在线精品欧美| 国产免费麻传媒精品国产AV| 97精品一区二区视频在线观看| 亚洲成a人片777777久久| 女人高潮特级毛片| 精子射到丝袜上图| 国产99久久九九免费精品无码| 中文字幕一区二区三区在线播放| 私密按摩师在线观看 百度网盘| 理论片在线观看片免费| 国产亚洲精品97在线视频一 | 蜜桃臀无码内射一区二区三区| 国产色精品久久人妻无码看片软件| a视频在线观看| 真实伦 乱| 亚洲视频在线看|