fbpx
维基百科

MISRA C

MISRA C是由汽車產業軟體可靠性協會英语Motor Industry Software Reliability Association(MISRA)提出的C語言開發標準。其目的是在增進嵌入式系統的安全性及可移植性。針對C++語言也有對應的標準MISRA C++。

MISRA C一開始主要是針對汽車產業[1] ,不過其他產業也逐漸開始使用MISRA C:包括航空、電信、國防、醫療設備、鐵路等領域中都已有廠商使用MISRA C。[2][3]

MISRA C的第一版《Guidelines for the use of the C language in vehicle based software》在1998年發行,一般稱為MISRA-C:1998.[4]。MISRA-C:1998有127項規則,規則從1號編號到127號,其中有93項是強制要求,其餘的34項是推薦使用的規則。

在2004年時發行了第二版的MISRA C的第一版《Guidelines for the use of the C language in critical systems》(或稱作MISRA-C:2004),其中有許多重要建議事項的變更,其規則也重新編號。MISRA-C:2004有141項規則,其中121項是強制要求,其餘的20項是推薦使用的規則。規則分為21類,從「開發環境」到「運行期錯誤」[5]

規則舉例 编辑

MISRA C的一些規則是針對運算符的限制,例如MISRA-C:2004的規則12.10為「不要使用逗号运算符」,也可以用其他方式達到一樣的效果。

動態分配記憶體功能是C語言的一大特色,可以在運行期依實際需求用malloc分配記憶體,在不使用此記憶體時再用free歸還,但許多問題也和未正確處理動態分配記憶體功能有關,例如MISRA-C:2004的規則20.4為「不能使用动态堆的内存分配」,限制malloc、free等程序的使用。

工具 编辑

有許多工具聲稱可以檢查代碼和MISRA規則相容性,不過MISRA沒有相關認證的程序[6]。相關工具可以幫助使用者評估和比較檢查的結果,也會提供一些可符合MISRA-C規定的指南。

大部份的規定可以用支援靜態代碼分析的工具檢查,有些規定需要用支援動態代碼分析英语Dynamic program analysis的工具檢查。

以下是一些可以配合MISRA C規則進行檢查的工具:
  • Polyspace[7]
  • GrammaTech英语GrammaTech
  • Klocwork英语Klocwork[8]
  • Coverity英语Coverity[9]
  • LDRA英语Liverpool Data Research Associates[10]
  • Parasoft英语Parasoft[11]
  • PC-Lint英语PC-Lint[12]
  • QA-C英语QA-C[13]
  • Understand (軟體)英语Understand (software)
以下是一些可以配合MISRA C規則進行檢查的編譯器:
  • Green Hills軟體英语Green Hills Software[14]
  • IAR系統英语IAR Systems[15]

相關條目 编辑

參考資料 编辑

  1. ^ . 電子工程專輯. 2006-04-28 [2012-04-24]. (原始内容存档于2013-10-04) (中文). 
  2. ^ . [2012-04-24]. (原始内容存档于2012-02-12). 
  3. ^ 存档副本. [2012-04-24]. (原始内容于2012-03-17). 
  4. ^ A brief history of MISRA C. [2012-04-24]. (原始内容于2017-06-07). 
  5. ^ ([//web.archive.org/web/20120813183716/http://eetimes.com/discussion/beginner-s-corner/4023981/Introduction-to-MISRA-C 页面存档备份,存于互联网档案馆) Introduction-to-MISRA-C
  6. ^ faqs. [2012-04-24]. (原始内容于2017-07-06). 
  7. ^ PolySpace announces MISRA compliance checker. [2012-04-24]. (原始内容于2019-10-18). 
  8. ^ . [2012-04-24]. (原始内容存档于2014-10-04). 
  9. ^ The 5 Steps. [2012-04-24]. (原始内容于2012-08-20). 
  10. ^ LDRA工具套件的MISRA-C: 2004验证. [2012-04-24]. (原始内容存档于2012-09-04). 
  11. ^ MISRA Compliance. [2012-04-24]. (原始内容于2013-10-22). 
  12. ^ PC-Lint. [2012-04-24]. (原始内容于2020-09-29). 
  13. ^ QA·C. [2012-04-24]. (原始内容于2016-04-15). 
  14. ^ MISRA C Support. [2012-04-24]. (原始内容于2018-11-11). 
  15. ^ . [2012-04-24]. (原始内容存档于2012-04-27). 

外部連結 编辑

misra, 是由汽車產業軟體可靠性協會, 英语, motor, industry, software, reliability, association, misra, 提出的c語言開發標準, 其目的是在增進嵌入式系統的安全性及可移植性, 針對c, 語言也有對應的標準, 一開始主要是針對汽車產業, 不過其他產業也逐漸開始使用, 包括航空, 電信, 國防, 醫療設備, 鐵路等領域中都已有廠商使用, 的第一版, guidelines, language, vehicle, based, software, 在1998. MISRA C是由汽車產業軟體可靠性協會 英语 Motor Industry Software Reliability Association MISRA 提出的C語言開發標準 其目的是在增進嵌入式系統的安全性及可移植性 針對C 語言也有對應的標準MISRA C MISRA C一開始主要是針對汽車產業 1 不過其他產業也逐漸開始使用MISRA C 包括航空 電信 國防 醫療設備 鐵路等領域中都已有廠商使用MISRA C 2 3 MISRA C的第一版 Guidelines for the use of the C language in vehicle based software 在1998年發行 一般稱為MISRA C 1998 4 MISRA C 1998有127項規則 規則從1號編號到127號 其中有93項是強制要求 其餘的34項是推薦使用的規則 在2004年時發行了第二版的MISRA C的第一版 Guidelines for the use of the C language in critical systems 或稱作MISRA C 2004 其中有許多重要建議事項的變更 其規則也重新編號 MISRA C 2004有141項規則 其中121項是強制要求 其餘的20項是推薦使用的規則 規則分為21類 從 開發環境 到 運行期錯誤 5 目录 1 規則舉例 2 工具 3 相關條目 4 參考資料 5 外部連結規則舉例 编辑MISRA C的一些規則是針對運算符的限制 例如MISRA C 2004的規則12 10為 不要使用逗号运算符 也可以用其他方式達到一樣的效果 動態分配記憶體功能是C語言的一大特色 可以在運行期依實際需求用malloc分配記憶體 在不使用此記憶體時再用free歸還 但許多問題也和未正確處理動態分配記憶體功能有關 例如MISRA C 2004的規則20 4為 不能使用动态堆的内存分配 限制malloc free等程序的使用 工具 编辑有許多工具聲稱可以檢查代碼和MISRA規則相容性 不過MISRA沒有相關認證的程序 6 相關工具可以幫助使用者評估和比較檢查的結果 也會提供一些可符合MISRA C規定的指南 大部份的規定可以用支援靜態代碼分析的工具檢查 有些規定需要用支援動態代碼分析 英语 Dynamic program analysis 的工具檢查 以下是一些可以配合MISRA C規則進行檢查的工具 Polyspace 7 GrammaTech 英语 GrammaTech Klocwork 英语 Klocwork 8 Coverity 英语 Coverity 9 LDRA 英语 Liverpool Data Research Associates 10 Parasoft 英语 Parasoft 11 PC Lint 英语 PC Lint 12 QA C 英语 QA C 13 Understand 軟體 英语 Understand software 以下是一些可以配合MISRA C規則進行檢查的編譯器 Green Hills軟體 英语 Green Hills Software 14 IAR系統 英语 IAR Systems 15 相關條目 编辑代码风格 The Power of 10參考資料 编辑 確保嵌入式系統的網路安全性 電子工程專輯 2006 04 28 2012 04 24 原始内容存档于2013 10 04 中文 存档副本 2012 04 24 原始内容存档于2012 02 12 存档副本 2012 04 24 原始内容存档于2012 03 17 A brief history of MISRA C 2012 04 24 原始内容存档于2017 06 07 web archive org web 20120813183716 http eetimes com discussion beginner s corner 4023981 Introduction to MISRA C 页面存档备份 存于互联网档案馆 Introduction to MISRA C faqs 2012 04 24 原始内容存档于2017 07 06 PolySpace announces MISRA compliance checker 2012 04 24 原始内容存档于2019 10 18 MISRA Coding Standards 2012 04 24 原始内容存档于2014 10 04 The 5 Steps 2012 04 24 原始内容存档于2012 08 20 LDRA工具套件的MISRA C 2004验证 2012 04 24 原始内容存档于2012 09 04 MISRA Compliance 2012 04 24 原始内容存档于2013 10 22 PC Lint 2012 04 24 原始内容存档于2020 09 29 QA C 2012 04 24 原始内容存档于2016 04 15 MISRA C Support 2012 04 24 原始内容存档于2018 11 11 MISRA C 2012 04 24 原始内容存档于2012 04 27 外部連結 编辑MISRA 網站 页面存档备份 存于互联网档案馆 取自 https zh wikipedia org w index php title MISRA C amp oldid 78952266, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。