MISRA C是汽車工業(yè)軟件可靠性協(xié)會(huì)(MISRA)開發(fā)的一套針對(duì)C編程語(yǔ)言的軟件開發(fā)指南,目的是提升嵌入式系統(tǒng)的安全性和可移植性。2012發(fā)布的MISRA C第三版,稱為MISRA C:2012。MISRA C不能100%確保程序不出問(wèn)題,但能有效預(yù)防編程帶來(lái)的問(wèn)題,提升代碼的可靠性。
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語(yǔ)言的指南,解釋了為了達(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)行測(cè)試,其他準(zhǔn)則可以使用C編譯器或手動(dòng)代碼審查來(lái)檢查。因此,靜態(tài)分析工具沒(méi)有報(bào)告問(wèn)題,不意味著C源代碼完全符合MISRA-C:2012。專用的MISRA文檔是強(qiáng)制性的,MISRA-C:2012官方文件解釋了這種文件的結(jié)構(gòu)。
embOS代碼的哪部分符合MISRA標(biāo)準(zhǔn)?
一般來(lái)說(shuō),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僅僅沒(méi)有包含你所選擇的靜態(tài)分析工具的抑制注釋。有許多不同的分析工具可用,我們無(wú)法在embOS源代碼中為所有工具包含相應(yīng)的注釋。
處理這個(gè)問(wèn)題的最簡(jiǎn)單的方法是禁用項(xiàng)目中所有embOS文件的MISRA檢查,沒(méi)有必要檢查embOS文件的合規(guī)性,因?yàn)镾EGGER已經(jīng)完成了該項(xiàng)工作。
如何獲得embOS MISRA-C:2012文件?
如果應(yīng)用中集成了embOS,并且你需要證明應(yīng)用符合MISRA-C:2012,則可以從SEGGER購(gòu)買embOS MISRA-C:2012文件。
麥克泰公司代理SEGGER全線產(chǎn)品,具有豐富的RTOS、中間件、分析軟件與調(diào)試工具使用方面的知識(shí)和經(jīng)驗(yàn)。
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3683瀏覽量
131413 -
編程語(yǔ)言
+關(guān)注
關(guān)注
10文章
1956瀏覽量
36684 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70771
原文標(biāo)題:embOS的MISRA-C:2012一致性
文章出處:【微信號(hào):麥克泰技術(shù),微信公眾號(hào):麥克泰技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
c6678cache一致性
MIPI一致性測(cè)試
什么是霍爾元件的一致性
順序一致性和TSO一致性分別是什么?SC和TSO到底哪個(gè)好?
一致性規(guī)劃研究
CMP中Cache一致性協(xié)議的驗(yàn)證
RFID協(xié)議一致性測(cè)試系統(tǒng)設(shè)計(jì)(三)

軟件編程規(guī)范(MISRA-C)
加速器一致性接口
Cache一致性協(xié)議優(yōu)化研究

優(yōu)化模型的乘性偏好關(guān)系一致性改進(jìn)
如何保證緩存一致性
DDR一致性測(cè)試的操作步驟
深入理解數(shù)據(jù)備份的關(guān)鍵原則:應(yīng)用一致性與崩潰一致性的區(qū)別

評(píng)論