MISRA C是由汽車產(chǎn)業(yè)軟件可靠性協(xié)會(MISRA,motor industry software reliability association)提出的C語言開發(fā)標準。其目的是在增進嵌入式系統(tǒng)的安全性及可移植性。針對C++語言也有對應的標準MISRA C++。MISRA C一開始主要是針對汽車產(chǎn)業(yè):如果我們?nèi)⒓咏鼛啄甑挠嘘P汽車行業(yè)的基于自動代碼生成技術(shù)和基于模型的設計技術(shù)的講座、研討會等等,無一例外都會聽到有關MISRA-C 2004,甚至是MISRA-C 2008、MISRA-C 2012等更新版本的介紹。此外,其他產(chǎn)業(yè)也已經(jīng)逐漸開始使用MISRA C:包括航空航天、電信、國防、醫(yī)療設備、鐵路等領域中都已有廠商使用MISRA C:這些領域無一不對代碼的規(guī)范,特別是代碼的安全有非常高的要求。MISRA C的第一版《Guidelines for the use of the C language in vehicle based software》是在1998年發(fā)行,一般稱為MISRA-C:1998.。MISRA-C:1998有127項規(guī)則,規(guī)則從1號編號到127號,其中有93項是強制要求,其余的34項是推薦使用的規(guī)則。在2004年時發(fā)行了第二版的MISRA C的第一版《Guidelines for the use of the C language in critical systems》(或稱作MISRA-C:2004),其中有許多重要建議事項的變更,其規(guī)則也重新編號。MISRA-C:2004有141項規(guī)則,其中121項是強制要求,其余的20項是推薦使用的規(guī)則。規(guī)則分為21類,從“開發(fā)環(huán)境”到“運行期錯誤”。通常認為,如果能夠完全遵守這些標準,則你的C代碼是易讀、可靠、可移植和易于維護的。最近很多嵌入式開發(fā)者都以MISRA C來衡量自己的編碼風格,比如著名的uC/OS-II就得意地宣稱自己99%遵守MISRA標準。目前有許多工具聲稱可以檢查代碼和MISRA規(guī)則相容性,不過MISRA沒有相關認證的程序。相關工具可以幫助使用者評估和比較檢查的結(jié)果,也會提供一些可符合MISRA-C規(guī)定的指南,但是目前大部分的工具對靜態(tài)代碼分析的工具檢查基本能實現(xiàn),對動態(tài)代碼分析則還不能完美實現(xiàn)。
MISRA-C-2004 中文版 MISRA-C-2004__中文版.pdf(455.63 KB, 下載次數(shù): 91)