總部位于上海的斑馬網(wǎng)絡(luò)技術(shù)有限公司是由中國(guó)阿里巴巴集團(tuán)和上汽集團(tuán)共同成立的合資企業(yè),致力于開發(fā)和支持名為Cyber OS和Drive OS的智能網(wǎng)聯(lián)汽車操作系統(tǒng)。Cyber OS專為智能座艙設(shè)計(jì),而Drive OS則用于智能駕駛。這些操作系統(tǒng)促進(jìn)了以人為本的功能,如增強(qiáng)現(xiàn)實(shí)(AR)導(dǎo)航、人機(jī)交互及互聯(lián)網(wǎng)連接,同時(shí)也支持車輛相關(guān)的功能,如發(fā)動(dòng)機(jī)啟動(dòng)、車輛診斷、照明及座椅調(diào)節(jié)等。鑒于許多基于人工智能(AI)的應(yīng)用程序具有安全關(guān)鍵性,斑馬公司確保其用于開發(fā)斑馬平臺(tái)應(yīng)用的工具鏈符合ISO 26262功能安全標(biāo)準(zhǔn)變得尤為重要。為了驗(yàn)證所使用的GCC交叉編譯器,斑馬公司選擇了Solid Sands的SuperTest編譯器測(cè)試與驗(yàn)證套件。
斑馬公司先進(jìn)的AI解決方案旨在運(yùn)行于地平線機(jī)器人公司的AArch64 64位ARM架構(gòu)JOURNEYTM 5硬件平臺(tái)上,該平臺(tái)本身按照包括ISO 26262汽車安全完整性等級(jí)(ASIL)B在內(nèi)的認(rèn)證標(biāo)準(zhǔn)設(shè)計(jì)。斑馬公司利用開源GCC 9.3交叉編譯器將C/C++源代碼編譯為AArch64目標(biāo)文件,并將其鏈接到AArch64可執(zhí)行文件和庫(kù)中。每月運(yùn)行一次SuperTest能立即識(shí)別出與最新GCC編譯器和庫(kù)版本相關(guān)的回歸問題,確保斑馬使用該編譯器的方式持續(xù)符合ISO 26262功能安全要求。
若SuperTest測(cè)試未通過,表明交叉編譯器可能存在潛在問題,斑馬公司將發(fā)布編碼約束,以便軟件開發(fā)團(tuán)隊(duì)避免使用可能危及其軟件應(yīng)用安全性的C語言結(jié)構(gòu)。這一過程也使團(tuán)隊(duì)對(duì)特定應(yīng)用場(chǎng)景下的編譯器有了更深入的理解。
“運(yùn)行SuperTest讓我們意識(shí)到,許多GCC-W警告開關(guān)會(huì)影響到語法是否能編譯到最后。它還促使我們?cè)诰幊讨袠?biāo)準(zhǔn)化使用C/C++語法,使用標(biāo)準(zhǔn)的POSIX語法,避免使用定義不那么嚴(yán)格的GNU擴(kuò)展。”
高級(jí)駕駛輔助系統(tǒng)、增強(qiáng)現(xiàn)實(shí)導(dǎo)航及自動(dòng)駕駛對(duì)軟件延遲提出了極高要求,因此斑馬廣泛采用了編譯器優(yōu)化。令人欣慰的是,SuperTest的一大優(yōu)勢(shì)在于其能針對(duì)廣泛的優(yōu)化器實(shí)現(xiàn)源代碼的最大覆蓋率。
斑馬采用SuperTest執(zhí)行了針對(duì)GCC 8.6的ISO 26262兼容性編譯器安全資格認(rèn)證,這是其重大功能安全認(rèn)證項(xiàng)目的一部分,旨在確保其軟件達(dá)到最高安全標(biāo)準(zhǔn),從而提供下一代駕駛體驗(yàn)。這一體驗(yàn)融合了互聯(lián)網(wǎng)連接、人工智能和邊緣計(jì)算技術(shù),優(yōu)化并人性化駕駛過程,能自動(dòng)學(xué)習(xí)并適應(yīng)駕駛員的情緒和偏好,無縫提供基于情境和位置的服務(wù)。