MATLAB與Simulink對於MISRA C的支援
為了協助評估電子控制單元(ECU)所使用軟體程式碼的品質,汽車產業軟體可靠性協會 (Motor Industry Software Reliability Association,MISRA) 制定了汽車與航太系統軟體中C程式語言的使用規範。1998年,MIRA Ltd. 發布了MISRA C (MISRA C:1998),目的是提供一套標準化、架構明確的語言的受限子集,以滿足 Safety Integrity Level (SIL) 2 以上等級的安全需求。
此後,MISRA 標準還有幾個新的版本,包括 MISRA C:2004、針對自動程式碼產生情境所制定的MISRA AC AGC標準、適用於C++的MISRA C++:2008,以及MISRA C:2012標準。
如需進一步了解MISRA C,可參考misra.org.uk。
Simulink、Stateflow與Embedded Coder已經廣泛運用在符合MISRA C®規範的嵌入式軟體程式碼生成。Polyspace程式碼驗證產品則可用於分析人工編寫或自動產生的程式碼,協助檢查程式碼是否符合MISRA C規範。其中,Polyspace Bug Finder支援偵測MISRA-C:2004、MISRA-C++:2008、MISRA C:2012,以及MISRA AC AGC等程式碼規範。
你可以透過Code Generation Advisor設定模型或子系統,讓程式碼生成工具更妥善地產生符合MISRA C:2012規範的程式碼。產生出的程式碼可進一步使用 Polyspace進行MISRA規範檢查,並可將分析結果回溯對應至原始模型。此外,你也可以直接在模型層級加入註解,針對任何規範的偏離(deviation)提供說明。