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

軟件編程規范(MISRA-C)
加速器一致性接口
Cache一致性協議優化研究

優化模型的乘性偏好關系一致性改進
DDR一致性測試的操作步驟
深入理解數據備份的關鍵原則:應用一致性與崩潰一致性的區別

評論