介紹
ISO 26262是汽車行業使用的功能安全標准,改編自IEC 61508。它包含對軟件開發和設計的要求。大多數要求都包含在第 6 部分的合規性表格中。
在本白皮書中,您將學到如何使用編碼標准和靜態代碼分析工具來幫助您符合ISO 26262中每級ASIL的要求。
汽車上越來越多地使用電子設備,而這些設備正在變得越來越復雜。軟件故障不是小事,它可能會危及車輛的安全。開發團隊需要確保不會發生故障。但詳盡的測試幾乎不可能,因此系統必須在設計上就能夠防止故障或者確保故障時的行為是受控的。
符合功能安全標准,如ISO 26262,是安全汽車系統設計的關鍵。
ISO 26262 概述
ISO 26262改編自安全相關的電子系統的功能安全標准IEC 61508,它重點關注車輛系統在整個安全生命周期中的特定需求。
需要符合 ISO 26262 的系統包括:
• 駕駛員輔助系統。
• 推進和車輛動態控制。
• 主動和被動安全系統。
越是復雜的系統,失敗的風險就越大。這包括系統性和隨機性硬件故障。
如何使用 ISO 26262 降低風險
ISO 26262 為開發人員提供了減輕這些風險的指南。這包括以下要求和設計過程。
汽車安全完整性等級 (ASIL)
ISO 26262 對風險和安全要求進行分類。有四個汽車安全完整性等級(ASIL A – D)。ASIL A 是最溫和的級別。ASIL D是最嚴格的級別。
系統(功能級)的 ASIL決定了開發團隊需要使用哪些方法。
ISO 26262 第 6 部分規定了這些要求,包括:
• 軟件開發的啟動。
• 軟件架構設計。
• 軟件單元設計和實現。
編碼標准要求
建議使用編碼標准,例如 MISRA,以符合 ISO 26262。使用編碼標准與靜態代碼分析工具可以幫助您遵守ISO 26262第6部分的要求。以下是如何達到這些標准。
ISO 26262,第 6 部分合規表
ISO 26262 第 6 部分包括定義實現符合標准方法的表格。
在這里,我們將介紹如何使用 Helix QAC (一種用於 C/C++的靜態代碼分析工具)來遵守其中四個表。
建議方法的關鍵標注:
++ 強烈建議的。
+ 建議的。
O 無建議。
表1—建模和編碼指南涵蓋的通則
表 1 包括為所有 ASIL 級別推薦的建模和編碼指南。對於用 C 或 C++ 編寫的軟件,您可以使用 Helix QAC 來遵守大多數這些規則。
例如,它強烈建議在所有ASIL級別中強制降低代碼復雜度。您可以使用Helix QAC的web儀表盤隨時監控代碼復雜度的變化趨勢,這樣可以很容易地確保代碼庫不會隨着體量的增加而變得更加復雜。
表3—軟件架構設計的原則
表3涵蓋了為所有 ASIL 級別推薦的架構設計原則。您可以使用 Helix QAC 來遵守其中一些原則。
例如,強烈建議限制所有 ASIL 級別的軟件組件的大小。Helix QAC測量和報告了與代碼大小相關的幾個不同指標。
表 8 —軟件單元設計和實現的設計原則
表 8 涵蓋了為所有 ASIL 級別推薦的設計原則。Helix QAC 與 MISRA 合規性模塊相結合,可用於遵守這些原則。
例如,強烈建議(在所有 ASIL 級別)在子程序和函數中只有一個入口點和一個出口點。
使用 Helix QAC,您可以強制執行以下 MISRA 規則以符合此設計要求:
MISRA C:2004 規則 14.4:不應使用 goto 語句。
MISRA C:2004 規則 14.7:一個函數在其末尾應該有單一的退出點。
表9 -軟件單元設計與實現的驗證方法
表 9 涵蓋了軟件設計的驗證方法。Helix QAC 可用於執行其中幾種方法。
例如,除了基本的靜態代碼分析之外,您還可以使用 Helix QAC 自動執行復雜的數據流分析。Helix QAC 會為您找出潛在的錯誤,讓您可以更快地驗證軟件設計。
使用Helix QAC輕松實現ISO 26262合規性
Helix QAC 是一個靜態代碼分析工具。它根據編碼規則檢查您的代碼,包括 MISRA 和AUTOSAR。這可以幫助您滿足 ISO 26262 中包含的所有 ASIL 級別的合規性要求。
Helix QAC 已通過 SGS-TÜV-SAAR 安全關鍵合規性認證。這包括所有 ASIL 級別 (A – D) 的ISO 26262 合規性。
認證也涵蓋了MISRA C/C++ 和 AUTOSAR C++ 合規性模塊。
通過使用Helix QAC,您將減少合規的時間和成本。