運用ARM處理器系列軟件工具可加速遵循安全至上的規范
越來(lái)越多程序設計人員在設計安全相關(guān)應用程序時(shí)采用ARM處理器,范圍遍及醫療、運輸、航空電子與工業(yè)領(lǐng)域。因此,透過(guò)這些處理器所執行的軟件也受到更為嚴格的檢查,因為任何一個(gè)小錯誤都有可能導致嚴重后果。
本文引用地址:http://dyxdggzs.com/article/201808/387569.htm為了避免導致這樣的后果,包括IEC 61508,還有最近才通過(guò)的汽車(chē)業(yè)ISO 26262等安全標準應運而生,以確保開(kāi)發(fā)人員與客戶(hù)在軟件方面能符合業(yè)界最先進(jìn)的最佳實(shí)務(wù)準則。
即便如此,要決定標準當中有哪些元素適用,哪些不適用,接下來(lái)還要確保整體設計符合標準,整個(gè)過(guò)程非常耗時(shí)以致于令人卻步。由于消費類(lèi)器件的設計周期極短且逐漸與汽車(chē)安全系統整合,開(kāi)發(fā)人員也因此面臨更大的時(shí)間壓力,必須在日益緊迫的設計周期期限前完成設計改動(dòng)。
所幸針對軟件開(kāi)發(fā)工具與相關(guān)作業(yè),軟件系列工具廠(chǎng)商具備一般軟件開(kāi)發(fā)人員所沒(méi)有的信息與知識,因此在市場(chǎng)中具有獨特定位,能為所有安全相關(guān)軟件開(kāi)發(fā)人員提供支持。
對編譯器來(lái)說(shuō)更是如此,因為編譯器能直接影響系統安全性,而且其有可能產(chǎn)生的注入錯誤,后續功能設計測試卻無(wú)法檢測。因此,系列軟件工具組很適合那些使用基于A(yíng)RM核心處理器的開(kāi)發(fā)人員,能使開(kāi)發(fā)人員確保系統符合法規規范,并同時(shí)應付日益增加的產(chǎn)品上市時(shí)間的壓力。
ARM 處理器逐漸拓展應用
伴隨移動(dòng)的風(fēng)潮,加上持續擴展的生態(tài)系統提供支持,基于A(yíng)RM核心處理器的應用已從智能手機與嵌入式等器件,拓展到基礎架構設備及數據服務(wù)器?,F在,設計人員也逐漸開(kāi)始將它們導入安全相關(guān)的應用。
這類(lèi)應用涵蓋了工業(yè)(馬達控制、工廠(chǎng)自動(dòng)化、遠距監控);汽車(chē)(底盤(pán)控制、車(chē)身與安全、儀表板、智能傳感器、引擎控制、防抱死剎車(chē));醫療(注入泵、起搏器、病患監控);鐵路(信號與通訊控制);核能(控制面板、馬達控制、系統監控)與航空電子等領(lǐng)域。
ARM處理器橫跨消費類(lèi)與數據服務(wù)器應用領(lǐng)域,打入汽車(chē)電子、工業(yè)電子等各種產(chǎn)業(yè),然而在這些領(lǐng)域當中,IEC 61508、ISO 26262等標準所規范的功能性安全需求,為微控制器軟件開(kāi)發(fā)社群帶來(lái)了新的壓力。
整體而言,系統對智能功能的需求增加,帶動(dòng)了ARM處理器為市場(chǎng)所廣泛采用,但這也要求業(yè)者必須具備整合能力與彈性以降低成本,提供更多功能,并隨時(shí)更新系統。與此同時(shí),許多采用硬編碼邏輯來(lái)提供各種功能的設計,現在都逐漸整合到由軟件所控制的32位微控制器,從而又產(chǎn)生出新的問(wèn)題。
設計重心逐漸移轉至微控制器與程序編碼功能,也同時(shí)將安全問(wèn)題推向軟件領(lǐng)域,讓安全應用程序符合IEC 61508標準的責任,也因此落在軟件開(kāi)發(fā)人員的肩上。這套標準原本規范的是電氣與/或電子系統的功能安全性,現在則同時(shí)涵蓋安全系統的電子組件。
IEC 61508及相關(guān)產(chǎn)業(yè)專(zhuān)用標準,能協(xié)助安全相關(guān)的電氣、電子與可編程系統符合最新要求。
功能性安全能讓安全相關(guān)系統針對輸入做出正確響應,進(jìn)而避免不必要的直接或間接風(fēng)險以及損傷。
由于IEC 61508標準用語(yǔ)模糊,因此衍生出各種產(chǎn)業(yè)專(zhuān)用的標準,例如專(zhuān)供鐵路運輸使用的EN50126/8/9、醫療器件專(zhuān)用的IEC 60601、核能專(zhuān)用的IEC 60880,還有陸上交通工具專(zhuān)用的ISO 26262。 ISO 26262適用于3,500公斤以下量產(chǎn)客用車(chē)的安全相關(guān)系統,但不包括殘障專(zhuān)用等特殊用途車(chē)輛。
一般汽車(chē)里的微控制器往往多達150個(gè),而隨著(zhù)消費者導向的導航系統被整合到駕駛輔助、運動(dòng)檢測系統、推進(jìn)、車(chē)載動(dòng)態(tài)控制與主動(dòng)/被動(dòng)安全系統時(shí),汽車(chē)逐漸成為運算裝置涉足安全系統的一個(gè)研究案例。
安全系統開(kāi)發(fā)人員所面臨的壓力與日俱增,汽車(chē)也成為典型案例。相較于過(guò)去動(dòng)輒長(cháng)達3到10年的產(chǎn)品生命周期,現在還得配合消費類(lèi)裝置(12到18個(gè)月)的設計周期。
汽車(chē)里的150個(gè)微控制器都仰賴(lài)軟件程序運轉,有時(shí)甚至像編譯器這樣的基本組件也會(huì )造成系統故障,只因注入了不容易發(fā)現的錯誤,并在功能測試階段有可能無(wú)法檢測。
這會(huì )對系統持續造成風(fēng)險,但只要符合IEC 61508標準,再加上ISO 26262,就能將風(fēng)險降至可以容忍的程度。舉例來(lái)說(shuō),IEC 61508最佳實(shí)務(wù)準則建議一開(kāi)始就要使用可以信賴(lài)的工具。
一般普遍認為編譯器是T3分類(lèi)的離線(xiàn)支持工具,表示編譯器會(huì )直接或間接影響安全系統的可執行代碼,因此選擇編譯器“是有其正當性的”。
我們可以藉由通過(guò)驗證且正在使用的實(shí)證,來(lái)展現工具的成熟度與穩定性,再加上來(lái)自業(yè)界專(zhuān)家的第三方評估以及廠(chǎng)商擔保,藉此證明選擇的正當性。
最佳實(shí)務(wù)準則還能加以延伸,用來(lái)驗證輸出以及語(yǔ)言子集的使用,像是MISRA C/C++。測試目標所使用的軟件自然重要,但要如何得知已經(jīng)測試了每種可能發(fā)生的狀況?畢竟沒(méi)有執行的程序代碼就無(wú)法測試。這時(shí)就要利用代碼覆蓋率分析,來(lái)辨識尚未執行的程序代碼,進(jìn)而確保整個(gè)應用程序均已測試完畢。分析代碼覆蓋率可利用源代碼插裝或跟蹤數據,因為串流跟蹤的影響程度最小。
至于語(yǔ)言子集,在許多案例當中,高階程序設計語(yǔ)言的定義不完整或模糊不清,造成不同編譯器的行為也有所不同。
“嚴格模式”,還有MISRA C/C++之類(lèi)的語(yǔ)言子集,就是為了消除這些模棱兩可的狀況所設計,同時(shí)還能:確保使用的語(yǔ)言與標準語(yǔ)言一致;替未定義的行為設定規則;移除免工具使用選項;強制統一編碼式樣(例如:/*...*/ versus //);改善可讀性;并縮小整體所需測試范圍。
ISO 26262比IEC 61508更進(jìn)一步,提供的架構更講究細節,在這樣的架構下可考慮采用以其它技術(shù)為基礎所開(kāi)發(fā)的安全系統。涵蓋范圍從產(chǎn)品周期管理到供貨商關(guān)系,但對于軟件開(kāi)發(fā)人員來(lái)說(shuō),它提供了一種專(zhuān)為汽車(chē)設計、以風(fēng)險為基礎的方法來(lái)評判完整性,而這套方法就稱(chēng)為汽車(chē)安全完整性等級。
使用ASILs明確定義ISO 26262的適用要求,以避免不合理的剩余風(fēng)險,同時(shí)提供驗證需求與確認措施,以確保達到足夠且可接受的安全程度。
建議:遵守默認標準
好消息是,在ISO 26262公布后才開(kāi)始的設計,并不一定要遵循其設計指南,才能成就“最先進(jìn)”的設計準則并取得法律保護。不過(guò)聰明的業(yè)者會(huì )強制遵循其廣泛的標準,因為傳統上說(shuō)這確實(shí)是一種好的做法也能確保一致性,同時(shí)還能降低成本,因為目前不包括在標準里的要求,很可能明天就會(huì )被列入,所以最好從一開(kāi)始就加以制度化。
但要同時(shí)符合IEC 61508與ISO 26262,每個(gè)步驟都必須準備說(shuō)明文件,從離線(xiàn)工具使用的合理性,一直到工具行為、手冊、危險分析、編譯器缺失報告、歷史版本、測試報告,還有實(shí)際及預期結果的差異報告,都只是其中少數幾個(gè)項目。
這樣的說(shuō)明文件需要投入極大心力,花費時(shí)間且成本昂貴,這時(shí)軟件系列工具供貨商就能派上用場(chǎng)。他們是工具的專(zhuān)家。舉例來(lái)說(shuō),他們熟知編譯器如何運作、如何利用安全應用程序,也了解如何利用它來(lái)取得既定輸出并利于安全相關(guān)開(kāi)發(fā)。
ARM Compiler系列軟件工具就是一個(gè)很好的使用案例,它最近取得了德國安全技術(shù)檢驗機構TüV SüD的認證。取得該認證后客戶(hù)便能將ARM Compiler建立工具應用在安全相關(guān)開(kāi)發(fā),最高可達安全完整性等級第三級(SIL3, IEC 61508)以及汽車(chē)SILD(ASILD, ISO 26262),而無(wú)須進(jìn)行其他合格驗證。還有ARM Compiler 規范套件可擴充TüV SüD驗證功能,其中包括安全手冊、缺失報告、測試報告與開(kāi)發(fā)程序報告做為支持數據。
對于生產(chǎn)汽車(chē)應用程序可編程系統的業(yè)者來(lái)說(shuō),要符合IEC 61508與ISO 26262軟件功能安全要求,就必須提供大量說(shuō)明文件與報告。
這樣的第三方認證與支持廠(chǎng)商保證,能即時(shí)節省人員工時(shí)、投入心力與相關(guān)成本,同時(shí)還能讓產(chǎn)品或設計更快上市,甚至可以保證應用程序設計還會(huì )繼續被市場(chǎng)所采用,因為在快速設計周期的時(shí)代,時(shí)間就是一切。
評論