隨著汽車向自動(dòng)駕駛汽車發(fā)展,硬件和軟件的功能安全是軟件開(kāi)發(fā)人員、工程師、經(jīng)理和高管最關(guān)心的問(wèn)題。沒(méi)有不折不扣的安全性,就不會(huì)有自動(dòng)駕駛汽車。
功能安全是系統(tǒng)或設(shè)備響應(yīng)其輸入的正確操作。當(dāng)功能安全得到滿足時(shí),該系統(tǒng)已經(jīng)消除了所有不可接受的風(fēng)險(xiǎn),并且不會(huì)對(duì)乘員造成傷害威脅。不幸的是,由于嵌入式軟件通常非常復(fù)雜,因此很難降低所有風(fēng)險(xiǎn)。
汽車行業(yè)的安全標(biāo)準(zhǔn) ISO 26262 定義了開(kāi)發(fā)軟件以降低風(fēng)險(xiǎn)和生產(chǎn)更安全軟件的方法。ISO 26262 中定義的功能安全是一種為車輛中的每個(gè)電氣或電子系統(tǒng)設(shè)定安全目標(biāo)的方法。這些目標(biāo)使用汽車安全完整性等級(jí) ( ASIL ) 分類按嚴(yán)重程度分類。這些級(jí)別由風(fēng)險(xiǎn)級(jí)別確定,ASIL A 為最低嚴(yán)重性,ASIL D 為最高。例如,ASIL A 風(fēng)險(xiǎn)可能是 DVD 播放器故障(沒(méi)有受傷的機(jī)會(huì)),而安全氣囊意外展開(kāi)是 ASIL D 風(fēng)險(xiǎn)。想象一下在高速公路上以 55 英里/小時(shí)的速度進(jìn)行部署:很可能會(huì)造成嚴(yán)重傷害和失控。
ASIL 是在開(kāi)發(fā)過(guò)程開(kāi)始時(shí)確定的。ASIL 用于定義系統(tǒng)必須滿足的安全目標(biāo)。通過(guò)檢查事故的可能嚴(yán)重程度、暴露時(shí)間量以及在這種情況下車輛的可控性來(lái)確定每個(gè) ASIL。ASIL 迫使設(shè)計(jì)人員提出這樣一個(gè)問(wèn)題:“如果出現(xiàn)功能故障,操作員、相關(guān)道路使用者和周圍環(huán)境會(huì)發(fā)生什么?”
該標(biāo)準(zhǔn)定義了開(kāi)發(fā)軟件以滿足功能安全要求的方法。這些要求包括軟件開(kāi)發(fā)過(guò)程的管理、可追溯性、風(fēng)險(xiǎn)管理和質(zhì)量保證。公司需要實(shí)施嚴(yán)格的過(guò)程控制。
那么,如何才能開(kāi)發(fā)出具有這些嚴(yán)格要求的產(chǎn)品呢?
確保功能安全的工具
大多數(shù)軟件錯(cuò)誤和問(wèn)題是由于需求不足和管理不善造成的。糟糕的需求會(huì)導(dǎo)致功能執(zhí)行不正確或不可靠,從而導(dǎo)致功能安全失敗。當(dāng)一個(gè)功能執(zhí)行不正確時(shí),可能會(huì)導(dǎo)致對(duì)其他軟件功能的干擾,違反了 ISO 26262 的“基本指令”,即不受干擾。
當(dāng)軟件造成干擾時(shí),可以使用靜態(tài)分析來(lái)查找錯(cuò)誤。使用靜態(tài)分析的主要優(yōu)點(diǎn)之一是您可以在完成的模塊準(zhǔn)備好后立即開(kāi)始分析。分析可以繼續(xù),直到整個(gè)產(chǎn)品代碼集完成。
可以對(duì)源代碼或目標(biāo)代碼執(zhí)行靜態(tài)分析。分析二進(jìn)制文件有一些優(yōu)點(diǎn)。例如,它不依賴于使用的編譯器或匯編器。它還可以揭示編譯器或匯編器在沒(méi)有源代碼的情況下引入的錯(cuò)誤。
然而,缺乏關(guān)于編譯器以及它如何優(yōu)化代碼的信息使得一些分析變得不可能。此外,您無(wú)法將錯(cuò)誤追溯到源代碼中的違規(guī)點(diǎn),因此對(duì)于糾正錯(cuò)誤幾乎沒(méi)有用處。
因此,當(dāng)使用源代碼時(shí),分析質(zhì)量會(huì)大大提高。使用源代碼,您確實(shí)可以將故障追溯到它發(fā)生的點(diǎn)。當(dāng)然,您必須擁有可用于運(yùn)行靜態(tài)分析的源代碼。
靜態(tài)分析揭示了 ASIL 功能在未經(jīng)許可的情況下非法嘗試訪問(wèn)受保護(hù)內(nèi)存的干擾。您可以想象在自動(dòng)駕駛車輛中破壞受保護(hù)的內(nèi)存的后果 - 甚至在您當(dāng)前的車輛中。如果您點(diǎn)擊 DVD 播放按鈕而不是更改巡航控制設(shè)置,可能會(huì)導(dǎo)致壞事!
靜態(tài)分析確保不受干擾
靜態(tài)分析不能代替硬件和軟件驗(yàn)證,但對(duì)于防止應(yīng)用程序中的干擾非常有價(jià)值。它可以在您的源代碼中發(fā)現(xiàn)違反 ISO 26262 要求的錯(cuò)誤。通過(guò)在開(kāi)發(fā)代碼時(shí)發(fā)現(xiàn)問(wèn)題,驗(yàn)證通??梢愿斓剡M(jìn)行。具有 SIL 意識(shí)的靜態(tài)分析涵蓋了完整的代碼庫(kù)。您可以在編寫完第一個(gè)軟件元素后立即開(kāi)始分析,然后繼續(xù)分析,直到所有軟件都集成到系統(tǒng)中。
審核編輯:郭婷
-
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66833 -
編譯器
+關(guān)注
關(guān)注
1文章
1639瀏覽量
49198 -
自動(dòng)駕駛
+關(guān)注
關(guān)注
784文章
13897瀏覽量
166698
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論