MISRA C是汽車工業(yè)軟件可靠性協(xié)會(huì)(MISRA)開發(fā)的一套針對(duì)C編程語言的軟件開發(fā)指南,目的是提升嵌入式系統(tǒng)的安全性和可移植性。2012發(fā)布的MISRA C第三版,稱為MISRA C:2012。MISRA C不能100%確保程序不出問題,但能有效預(yù)防編程帶來的問題,提升代碼的可靠性。
embOS是SEGGER提供的一款搶占式的RTOS,旨在成為開發(fā)嵌入式應(yīng)用程序的基礎(chǔ),可用于所有流行的內(nèi)核、編譯器和開發(fā)工具,符合MISRA-C:2012標(biāo)準(zhǔn)。
為了符合MISRA-C:2012標(biāo)準(zhǔn),
需要做些什么?
MISRA-C:2012的官方文檔,在關(guān)鍵系統(tǒng)中使用C語言的指南,解釋了為了達(dá)到MISRA-C:2012的要求需要做的工作。
MISRA-C:2012定義了一組C編程人員必須遵循的準(zhǔn)則。這些準(zhǔn)則分為兩類,指示(Directives)和規(guī)則(Rules)。此外,所有準(zhǔn)則分類為強(qiáng)制 (mandatory)、必需 (required)或建議(advisory)。強(qiáng)制準(zhǔn)則絕不能被違反。必需或建議類型的準(zhǔn)則,可以違反,但每一次違反規(guī)定的行為都必須在專門的MISRA文件中進(jìn)行記錄和解釋。
大多數(shù)準(zhǔn)則都可以用靜態(tài)分析工具進(jìn)行測試,其他準(zhǔn)則可以使用C編譯器或手動(dòng)代碼審查來檢查。因此,靜態(tài)分析工具沒有報(bào)告問題,不意味著C源代碼完全符合MISRA-C:2012。專用的MISRA文檔是強(qiáng)制性的,MISRA-C:2012官方文件解釋了這種文件的結(jié)構(gòu)。
embOS代碼的哪部分符合MISRA標(biāo)準(zhǔn)?
一般來說,embOS由三部分組成:
1、通用源代碼,對(duì)于所有embOS移植都是一樣的。
2、內(nèi)核/編譯器特定的源代碼。
3、板級(jí)支持包文件。
embOS MISRA合規(guī)性僅涵蓋通用源代碼。如果需要內(nèi)核/編譯器特定的移植代碼符合MISRA規(guī)范,則向SEGGER申請(qǐng)。但通常不檢查板支持包文件是否符合MISRA規(guī)范。
使用的靜態(tài)分析工具?
embOS使用的分析工具為PC-lint v9。OS源代碼包含了一些MISRA指南的Lint抑制注釋,這些有助于分析哪些MISRA- C:2012指南被違反,需要在我們的MISRA文檔中解釋。必需的和建議型的準(zhǔn)則一樣,我們需記錄并解釋違反要求的準(zhǔn)則是正確的。
使用其它靜態(tài)分析工具報(bào)告的違規(guī)行為,
如何處理?
如果使用的靜態(tài)分析工具報(bào)告違反MISRA-C:2012,并不表明embOS不符合MISRA-C:2012。embOS僅僅沒有包含你所選擇的靜態(tài)分析工具的抑制注釋。有許多不同的分析工具可用,我們無法在embOS源代碼中為所有工具包含相應(yīng)的注釋。
處理這個(gè)問題的最簡單的方法是禁用項(xiàng)目中所有embOS文件的MISRA檢查,沒有必要檢查embOS文件的合規(guī)性,因?yàn)镾EGGER已經(jīng)完成了該項(xiàng)工作。
如何獲得embOS MISRA-C:2012文件?
如果應(yīng)用中集成了embOS,并且你需要證明應(yīng)用符合MISRA-C:2012,則可以從SEGGER購買embOS MISRA-C:2012文件。
麥克泰公司代理SEGGER全線產(chǎn)品,具有豐富的RTOS、中間件、分析軟件與調(diào)試工具使用方面的知識(shí)和經(jīng)驗(yàn)。
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3587瀏覽量
129433 -
編程語言
+關(guān)注
關(guān)注
10文章
1942瀏覽量
34707 -
代碼
+關(guān)注
關(guān)注
30文章
4779瀏覽量
68521
原文標(biāo)題:embOS的MISRA-C:2012一致性
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論