400-821-6015
行(xíng)業(yè)資訊
您當前的(de)位置:首頁 » 行(xíng)業(yè)資訊 » 行(xíng)業(yè)資訊
內(nèi)部資訊行(xíng)業(yè)資訊

聊一(yī)聊汽車(chē)控制(zhì)器(qì)的(de)啓動——Bα∏OOT

發布日(rì)期:2023-03-03

一(yī)、BOOT來(lái)源


  你(nǐ)有(yǒu)沒有(yǒu)遇到(dào)過電(dià   n)腦(nǎo)新安裝了(le)軟件(jiàn),然後提示你(™↕nǐ)Reboot的(de)場(chǎng)景?這(zhè)裡(lǐ)的(de)Reboot,大(dà)家(jiā)都(dōu)知(zhī)道(dào)是(shì)重啓€₩≈,而Boot就(jiù)是(shì)啓動的(de)意思。但(d§ ≤≤àn)你(nǐ)有(yǒu)沒有(yǒu)想過為(wèi)什(shén)麽電(diàn₽$↕)腦(nǎo)啓動會(huì)叫做(zuò)Boot? Boot不(bù)是(shì)靴子(zǐ)嗎(ma)?

  Boot作(zuò)為(wèi)啓動術(shù)語的(de★δ)來(lái)源确實與靴子(zǐ)有(yǒu)關。因為←♦ ÷(wèi)計(jì)算(suàn)機(j¶εī)的(de)啓動都(dōu)是(shì)‌∑×₹從(cóng)硬件(jiàn)上(shàngΩ↓)電(diàn)開(kāi)始的(de),此時(shí)軟件‌ε(jiàn)還(hái)沒工(gōng)作(zuò),需要(yào)一(yī)個(gè)引 ←$導程序把它拉起來(lái)。而拉起軟件(jiàn)™←的(de)動作(zuò)又(yòu)需要(yào)軟件(jiàn)自(zì)× §♥身(shēn)的(de)啓動和(hé)運行α ↑(xíng),這(zhè)個(gè)過程就(jiù)很©¥ ☆(hěn)像一(yī)句英文(wén)諺語:


Pull oneself up by one's  ₽♥bootstraps.


  意思是(shì)通(tōng)過鞋帶把自(zì)己提起來(lái),寓意自(β‍zì)食其力,靠自(zì)己振作(zuò)起來(lái)。由于兩♦↑♠€者思想如(rú)出一(yī)轍,計(jì)算(suàn)機(jī)發展初期就(j&•♣<iù)把啓動的(de)引導程序稱作(zuò)BootStrap Loader,或BootloaderBoot

 

圖片

1:用(yòng)鞋帶把自(zì)己拉起來(lái)的(de)示意圖


二、Bootloader簡介


      Bootloader,又(yòu)稱為(wèi)引導程序,對(duì)操作(zuò)系統非常重要(yào),₹& ε是(shì)計(jì)算(suàn)機(jī​&$±)和(hé)汽車(chē)控制(zhì)器(qì)的(de)一( δ yī)個(gè)關鍵組成部分(fēn)。然而,因'λ♠為(wèi)它往往在後台發揮作(zuò)用(yòng),它經常被忽視(shì)。那(nà<‌)麽Bootloader的(de)具體(tǐ)工(gōng)作(zuò)原理(lǐ)是(shì)怎樣的(de)呢(ne)? ♥×☆我們以下(xià)圖中的(de)PIC16單片機(jī)作(zuò)為(wèi)例子(zǐ)來(lái)具體(tǐ)看(kàn)"↕看(kàn)。
  按單片機(jī)設計(jì),芯片通(tōng)電(diàn)後↕♦就(jiù)會(huì)從(cóng)Flash的(de)0x000地(dì)址開(kāi)始執行(xíng)指令,也(yě✘•")就(jiù)是(shì)說(shuō)芯片上(shàng)電(diàn)後,第一(yī)行(xí€"∑‌ng)代碼就(jiù)從(cóng)0X000開(kāi)始執行(xíng)。如(rú)左所示,用(yòng)戶可(kě)以♠​通(tōng)過UART串口将整個(gè)用(yòng)戶程序燒•¶錄到(dào)Flash上(shàng),這(zhè)樣整個(gè)存儲β¶✘®區(qū)都(dōu)可(kě)以用(yòng)于用(yòng)戶程序。但(dà>φn)是(shì)每次燒寫都(dōu)很(hěn)麻煩。如(rú)右所示,如(rú)果σβ&®在0X000開(kāi)始布置三行(xíng)指令,用(yòng→♥)于跳(tiào)轉到(dào)Bootloader區(qū)(即下(xià)圖右方的(de)跳(tiào)轉1),然後在0XF00區(qū)域開(kāi)始執行(xíng)Bootloader引導程序,正常啓動時(shí),Bootloader執行(xíng)完會(huì)再跳(tiào)♦δ♠轉到(dào)用(yòng)戶程序(即下(xià)圖右方的(de)跳(tià ‌∑o)轉2)。在Bootloader程序中,可(kě)以進行(xíng)特殊​∞的(de)開(kāi)發例程或者刷寫新的(de)用(yòng)戶程序,這(zhè)樣對(duì→≠)開(kāi)發和(hé)刷寫都(dōu)更加友(yǒu)好(hǎo)。α¥σ

圖片 

2Bootloader示意圖


  不(bù)同處理(lǐ)器(qì)的(de)具體(tǐ)Bootloader細節略有(yǒu)差異,但(dàn)是(sh→≈ì)整體(tǐ)邏輯和(hé)思路(lù)都(dōu)γ ¥♦是(shì)相(xiàng)同的(de)。例如(≥₩→‍rú)對(duì)于電(diàn)腦(nǎo)上(shàng)的(de)CPUBootloader還(hái)會(huì)初始化(huà)硬件(jiàn≥₹),将操作(zuò)系統內(nèi)核從(cóng)硬盤加載到(dào)內(nèi)存,再将操作(‌ βzuò)系統從(cóng)加載到(dào)內(nèi)存,然後☆↓操作(zuò)系統會(huì)進一(yī)步将需要‍≈£(yào)運行(xíng)的(de)應用(yòng)程序從(cóng)硬盤加•¥£↔載到(dào)內(nèi)存中執行(xíng)。總的(de)來(lái)說(shuō),就(jδ☆≥₽iù)是(shì)處理(lǐ)器(qì)硬件(jiàn)啓動後自(zì)動執行(xíng↔™φδ)的(de)第一(yī)行(xíng)代碼會‍×(huì)跳(tiào)轉到(dào)Bootloader,然後再由Bootloader引導執行(xíng)用(yòng)戶代碼。

三、Flash Bootloader


  如(rú)上(shàng)文(¥¶wén)所述,Bootloader的(de)優勢主要(yào)是(shì)為(wèi)用(yòng)戶軟件(jiàn)的(de)Ωו↓刷寫提供便利性。而汽車(chē)上(shàng)傳統的(de)$∞§控制(zhì)器(qì)都(dōu)是(shì)高(g¥λ āo)度嵌入式系統,而且各個(gè)控制(zhì)器(qì)從•₹(cóng)開(kāi)發到(dào)量産到(δ≥♣★dào)售後都(dōu)有(yǒu)軟件(jiàn)更新的(de)需求,≥"↔≥Bootloader剛好(hǎo)就(jiù)能(néng)用(yòng)來(lái)完成刷寫控制(zhì)器(qì ↕©λ)軟件(jiàn)的(de)任務。這(zh$'♦è)個(gè)以刷寫更新軟件(jiàn)為(wèi)目的(de)的(de)Bootloader在汽車(chē)行(xíng)業(yè)就(jiù)被廣♥'•​泛稱之為(wèi)Flash BootloaderFBL)。它主要(yào)用(yòng)于MCU等傳統嵌入式系統的(de)軟件(jiàn)刷寫。


  實際上(shàng),Flash Bootloader應該算(suàn)是(shì)Bootloader引導後的(de)第二道(dào)程序。第一(yī)道(dào)被♠↕♥₹引導起來(lái)的(de)Bootloader會(huì)判斷ECU狀态,再根據這(zhè)個(gè)狀态來(lái)拉起↔∑β應用(yòng)程序或者進入Flash Bootloader。由于簡略表達或者概念模糊,在實際工(gōng)作(zuò)場(chǎng)合中很(hδβ☆•ěn)多(duō)時(shí)候都(dōu)會(huì)聽(tīng)到(dào)有(y≥​" ǒu)人(rén)把Bootloader和(hé)Flash Bootloader混為(wèi)一(yī)談。我們可(kě)以根據場(chλ♠ǎng)合保持溝通(tōng)的(de)連貫性,但(dàn÷ε γ)心裡(lǐ)應該清晰區(qū)分(fēn)兩者的(de)區(qū₽¶‌​)别。


  在汽車(chē)行(xíng)業(yè)的(de)實際應用( <≈yòng)中,Bootloader還(hái)常細分(fēn)為(wèi)Primary BootloaderPBL)和(hé)Secondary BootloaderSBL)。其中SBL更加接近(jìn)于Flash Bootloader。下(xià)圖是(shì)一(yī)種§♠常見(jiàn)的(de)PBLSBL和(hé)MCU存儲器(qì)的(de)關系示意圖。
圖片

3Flash Bootloader與內(nèi)存關系示意框圖


  PBL的(de)作(zuò)用(yòng)是(shì)在應用(yòng)軟件(jiàn)有(yǒu)效¶✔時(shí)引導它。PBL存儲在MCU芯片的(de)Flash,它一(yī)般是(shì)産品出廠(chǎng)時(shí)一(yī)σ↕↑次性刷好(hǎo)的(de),芯片上(shàng)電(diàn)或重啓後,第一(yī)批執行(xí♥✔∑ng)的(de)代碼就(jiù)是(shì) ←÷PBL。需要(yào)刷寫軟件(jiàn)時(×₩©&shí),PBL可(kě)以通(tōng)過統一(yī)診斷服務(UDS),基于CAN或以太網等底層總線協議(yì)與外(wài)界診斷儀通(×<♥tōng)信。在校(xiào)核完診斷儀的(de)權限後,PBL會(huì)将診斷儀上(shàng)的(de)SBL下(xià)載到(dào)MCU的(de)內(nèi)存RAM上(shàng),然後由SBL進行(xíng)刷寫。SBL包含PBL提供的(de)所有(yǒu)服務以及閃存驅動器(qì)(₹∏γ←Flash Driver和(hé)一(yī)些(xiē)額外(wài)的(de)UDS服務。通(tōng)過UDS觸發,SBL會(huì)利用(yòng)Flash Driver擦除舊(jiù)軟件(jiàn),并把新軟件(jiàn)寫到(dào)$♠≥對(duì)應的(de)存儲區(qū)。具體(tǐ)流程如(rú)下(xi  ♠à)圖4所示:


圖片

4MCU刷寫流程示意圖


  為(wèi)了(le)避免應用(yòng)軟件(jiàn)被意外(wài)誤刷寫或±®•γ者删除,PBL中一(yī)般不(bù)包含Flash Driver,不(bù)能(néng)直接操作(zuò)閃←'δ存。每次刷寫時(shí),包含Flash Driver的(de)SBL都(dōu)會(huì)從(cóng)診斷儀中重新加載到(dào)內(nèi)存。這(zhè)種PBL和(hé)SBL的(de)分(fēn)工(gōng)方案,有(yǒu)這(zhè)些(xiē)好(≠∑$hǎo)處:


     1.平時(shí)防止應用(yòng)軟件(jiàn)被誤刷寫。₽₩↓₩

     2.提高(gāo)網絡安全性。每次從(cóng)診斷儀下(xià)載SBL時(γ£♥•shí),都(dōu)可(kě)以通(tōng±ε♠)過安全鑒權機(jī)制(zhì),确保合法的(de)診斷儀才能(néng)觸發刷寫。

     3.通(tōng)過SBL還(hái)能(néng)反向刷寫更新PBL,提高(gāo)了(le)Bootloader的(de)整體(tǐ)靈活度。



四、SoC的(de)啓動和(hé)刷寫


  上(shàng)面說(shuō)的(de)Flash Bootloader是(shì)針對(duì)傳統高(gāo)度嵌入ε↑式系統的(de)。但(dàn)相(xiàng)信各®↕£₩位汽車(chē)同仁也(yě)感受到(dào),越來(l→£ái)越多(duō)的(de)高(gāo)性能(né 'βng)計(jì)算(suàn)芯片正在汽車(chē)上(shàng)普及,汽'‌↑車(chē)中央電(diàn)腦(nǎo)等方案也(yě)是(shì)不(bù)絕于>→☆耳。對(duì)于這(zhè)些(xiē)高(gāo)性能(néng)計(jì)算♣≈±(suàn)芯片,行(xíng)業(yè)內(nèi)常以SoCSystem on Chip)相(xiàng)稱。SoC的(de)啓動和(hé)刷寫方案和(hé)MCU如(rú)出一(yī)轍,但(dàn)由于其內(nèi)部存儲管理(lǐ)系統和(hé)內(nè&σi)部總線更加複雜(zá),啓動的(de)具體(tǐ)實現(xiàn)與MCU略有(yǒu)差異,其細節更接近(jìn)于我們→±熟悉的(de)個(gè)人(rén)電(di§✔β↑àn)腦(nǎo)。總體(tǐ)的(de)啓動流程如(rú)下(xi↑<$←à)圖所示。


圖片

5BIOS和(hé)UEFI啓動流程示意圖


  傳統計(jì)算(suàn)機(jī)的 π(de)啓動一(yī)般采用(yòng)上(shπ♣àng)圖上(shàng)部分(fēn)的(de)BIOS啓動。BISO是(shì)Basic Input Output System的(de)縮寫,是(shì)計(jì)算&≥(suàn)機(jī)硬件(jiàn)與軟件(jiàn)第一(yī£•")次相(xiàng)遇的(de)地(dì)方。§×∑BIOS的(de)代碼通(tōng)常被嵌入到(dào)電(diàn)腦(nǎo)的(de)主闆的(de₽φ)EEPROM中。BIOS可(kě)以完成計(jì)算(suàn)機(jī)上(shàng)電(diàn)後的(↕π•de)基本自(zì)檢,并指示計(jì)算(suàn)機(jī)如(rú)何執行(xínα¶φg)基本功能(néng),如(rú)啓動和(hé)鍵€‌¶±盤控制(zhì)。在BIOS也(yě)可(kě)以選擇配置啓動參數(sh♦∏ ù)。對(duì),這(zhè)就(jiù)是(★≈"shì)我們以前重裝電(diàn)腦(nǎo)系統時(shí),在BIOS裡(lǐ)可(kě)以選擇從(cóng)光(guāng)盤還(h♣Ω↓∞ái)是(shì)硬盤啓動等操作(zuò)的(de)原因。然後BIOS會(huì)調用(yòng)硬盤起始位置的(de)MBRMaster Boot Record,然後按照(zhào)其中的(de)分(fēn)區(q<δ←ū)表拉起Bootloader,然後是(shì)操作(zuò)系統內(↓↔★nèi)核,再到(dào)操作(zuò)系統和(hé)應用(yòng)。


  當然BIOS的(de)設計(jì)已經有(yǒu)年(nián)頭了(le)。現(xiàn)在生(shēngγ₹¥$)産的(de)電(diàn)腦(nǎo)基本都(dōu)是(shì)使用(yòng)UEFIUnified Extensible Firmware Int<♣★¥erface,汽車(chē)上(shàng)的(de)高(gāo♠™↔£)性能(néng)計(jì)算(suàn)單元也(yě)一σ ✘(yī)樣。從(cóng)實現(xiàn)功能(néng)λ<ε上(shàng)來(lái)看(kàn),UEFI可(kě)以認為(wèi)是(shì)升級版↔♣的(de)BIOS


  UEFI是(shì)一(yī)個(gè)微(wēi)型操作(zuò)系統,它在∞'∞$內(nèi)存中加載Bootloader,再執行(xíng)額外(wài)的(de)操作(zuò)程序。作(zuò)為(wèi)微(wēσ‍i)型操作(zuò)系統,UEFI運行(xíng)在固件(jiàn)之上(shàng),可(kě)以支持的(de)功能(néng)∑∑ε比BIOS多(duō)得(de)多(duō),包括系統驗證等安全功能(néng)。其中最核心的(‌≤de)區(qū)别是(shì),UEFI支持更大(dà)的(de)尋址空(kōng)間(ji>₹ān),并且可(kě)以在32位或64位模式下(xià)運行(xíng)(BIOS隻支持16位),也(yě)就(jiù)是(shì)UEFI可(kě)以支持更大(dà)的(de)硬盤或者網絡共享,并且啓動速度更快(kuài)。


  由于SoC一(yī)般采用(yòng)基于文(wén)件(jiàn)系統的(de)操作(zu"♦✘ò)系統,可(kě)以通(tōng)過文(wén)"$ε<件(jiàn)系統升級軟件(jiàn),再π₽加上(shàng)UEFI具有(yǒu)更靈活的(de)啓動分(fēn)區(qū)引導≥≥§,所以車(chē)上(shàng)的(de)高(gāo)性能(néng)計(jì)♦  ÷算(suàn)平台一(yī)般還(hái)支持A/B分(fēn)區(qū)升級。也(yě)就(jiù)是(shì)在÷≈πA系統運行(xíng)時(shí),悄悄升級冗餘的(de)B系統,完成安裝升級後再重啓SoC,然後再切換到(dào)B系統。其總體(tǐ)過程如(rú)下(xià)圖所示。
圖片

6A/B分(fēn)區(qū)升級示意圖



五、車(chē)載控制(zhì)器(qì)啓動的(de)挑戰


  新年(nián)伊始,萬象更新。每年(nián)的(de)開(kāi)↓∑始階段對(duì)這(zhè)一(yī)整年(nián)的(de)影(yǐng)響都&↓(dōu)舉足輕重。對(duì)車(chē)載控制(zhì)器(qì)的(de)啓動來(lái)說¥∑€(shuō)也(yě)是(shì)類似,好(hǎo)的(de)開(kāi)始↕‌→是(shì)成功的(de)一(yī)半。正是(shì)由于啓動的(de)重要(yào)性,也(yε←→ě)有(yǒu)不(bù)少(shǎo)挑戰δ‍×要(yào)通(tōng)過啓動過程來(lái)解決。其中最突出的(de)就(jiù)是(ε∑®♣shì)關于信息安全和(hé)啓動時(shí)間(jiān)的(de)挑戰。


啓動的(de)信息安全挑戰


  一(yī)年(nián)之計(jì)在于春。試想如(rú)果有(yǒu)人>σ£★(rén)把你(nǐ)給孩子(zǐ)春節期間(jiān)立下(xià)的(de)flag偷偷換掉,然後你(nǐ)孩子(zǐ)還(hái)按照(zhào)這(zhè)個>β(gè)假的(de)flag執行(xíng),如(rú)果flag是(shì)惡意的(de),那(nà)問(wèn)題是(shì)不(bù♠&✘)是(shì)大(dà)了(le)?對(duì)車(chē)載控制(zh‍βε×ì)器(qì)來(lái)說(shuō)也(yě)是(shì)®✔¥∑類似,啓動過程中加載的(de)Bootloader或者操作(zuò)系統如(rú)果是(shì)被惡意替換了(le),不(bù)就(jiù♣↔)破防了(le)?
  為(wèi)了(le)迎接這(zhè)個™÷↔(gè)挑戰,在啓動過程中,會(huì)引入安全啓動(secure boot機(jī)制(zhì)。其目的(de)是(shì)在系統啓動之前先驗證系統簽名的(de)合♦>法性,從(cóng)而判斷将要(yào)啓動的(de)系統的(de)合法性。如(rú)果系統合法©≈β¥,則繼續加載拉起系統,如(rú)果非法則報(bào)錯(cuò)或自®♠(zì)動回滾到(dào)上(shàng)一(yī)個(gè)合法系統。由于傳統嵌入式MCU和(hé)高(gāo)性能(néng)計(jì)算(suàn)芯片SoC的(de)架構區(qū)别,二者在實施安全啓動時(shí)也(yě)略有(yǒu)差别。如¥←​(rú)下(xià)圖所示,MCU一(yī)般會(huì)使用(yòng)內(nèπ>₩×i)嵌的(de)HSMHardware Security Module,硬件(jiàn)安全模塊來(lái)存儲密鑰和(hé)驗證簽名。而SoC一(yī)般會(huì)使用(yòng)TEETrusted Execution Environm‍←¶ent,可(kě)信執行(xíng)環境)架構來•≈↑(lái)獲取密鑰和(hé)驗證簽名。兩者在安全層面根據芯片架構采用(yòng)不‌↔(bù)同策略,但(dàn)是(shì)其目的(de)和(hé↕♣"§)效果都(dōu)是(shì)一(yī)樣的(de)。

圖片

 7:一(yī)種MCU和(hé)SoC安全啓動方案的(de)示意圖


啓動時(shí)長(cháng)的(de)挑戰


  随著(zhe)車(chē)載計≈↔(jì)算(suàn)平台的(de)發展,其所需要(yào)管理✘©(lǐ)的(de)硬件(jiàn)資源越來(lái)越豐富,也( δ♦→yě)越來(lái)越複雜(zá)。這(zhè)讓控制(zhì↓₹→π)器(qì)啓動時(shí)需要(yào)加載的(de)數(shù)據越來(l↕±ái)越大(dà),需要(yào)初始化(huà)的(de)設備也(yě)越來(lái'§)越多(duō),導緻其啓動時(shí)長(cháng)也(y$¶→ě)越來(lái)越長(cháng)。這(zhè)就(jiù)像20年(nián)前的(de)諾基亞手機(jī)開(kāi)機(jī)可(kě)能(néng♦≠)隻需要(yào)幾秒(miǎo)鐘(zhōng),現(xiàn)在智能(néng)手↑₩≠☆機(jī)開(kāi)機(jī)則要(yào)幾十秒↑"&↕(miǎo)甚至一(yī)分(fēn)鐘(zhōng)以上(s€♥hàng)。據行(xíng)業(yè)觀察,當下(xià)流行✔¥(xíng)的(de)幾款SoC正常啓動時(shí)長(cháng)很("§¥hěn)少(shǎo)少(shǎo)于10秒(miǎo)鐘(zhōng),如(rú)果加上(shàng)安全啓動等過程,§&π則啓動時(shí)長(cháng)更長(cháng)。有(yǒu)些♠✔(xiē)控制(zhì)器(qì)甚至從(cóng)上(shàng)電(diàn)到(dà≈€o)上(shàng)層功能(néng)業(yè)務應用(yònε∞€g)開(kāi)始工(gōng)作(zuò),需要(yào)差不(bù)多(duγ™↓¥ō)1分(fēn)鐘(zhōng)。

  車(chē)載業(yè)務對(duì)于啓動時(shí)間(jiān)又(yòu)非λΩ★常敏感。例如(rú)當下(xià)大(dà)家(jiā)都(¥‌ "dōu)習(xí)慣的(de)倒車(chē)影(yǐng)像,我們通('™&tōng)常坐(zuò)上(shàng)車(chē)、系好(hǎo) ₩↑λ安全帶、發動車(chē)輛(liàng)挂倒擋,就(ji<$∏ù)希望影(yǐng)像能(néng)夠出現(xiàn)在δλ♠中控屏。試想如(rú)果整個(gè)啓動時(shí)長(cháng)需要(yào€≈©♦)1分(fēn)鐘(zhōng),那(nà)我們就(jiù)需要€≤(yào)在車(chē)上(shàng)等待幾十秒(miǎo),或者•↑←®脫離(lí)輔助功能(néng)“盲開(kāi)σγ♥”出去(qù)了(le),這(zhè)樣的(de) φ用(yòng)戶體(tǐ)驗會(huì)很(hěn)差。


  為(wèi)了(le)迎接這(zhè)個(gè)挑戰,車(chē)載域φ∞÷控制(zhì)器(qì)或計(jì)算(suà→δ→☆n)平台經常會(huì)引入休眠模式。這(zhè)也(yě)類似我們'"→電(diàn)腦(nǎo)的(de)休眠模式,就(jiù)是(shì© ™♣)讓原本掉電(diàn)丢失的(de)內(nèi)存上(shàng)的(de)內(∏₹™nèi)容先存儲到(dào)硬盤裡(lǐ),下(xià)次啓動時(shí)再将所有(yǒu)內§£✘¶(nèi)容重新加載到(dào)內(nèi)存上(shàng),而不(bù)是(↔ εshì)采用(yòng)重新從(cóng)♣∑✘UEFI加載Bootloader到(dào)內(nèi)核再初始化(huà)的(de)那(nà)一(yī)套流程β₹®。這(zhè)樣控制(zhì)器(qì)技(jì)能(néng)長(chánπ☆₽g)時(shí)間(jiān)保持低(dī)功耗,又(yòu)能(néng)在需要(yào)喚醒時♦☆(shí)能(néng)夠快(kuài)速啓動工(gōng)作(zuò)。當然,這​>€(zhè)需要(yào)耗費(fèi)硬盤上(shàng)的(de)額外(wài)空(kōng)₹₽αβ間(jiān)來(lái)存儲休眠時(shí)的(de)內(nèi)存數(shù)∑'據。以下(xià)圖Windows 8的(de)示意圖為(wèi)例,傳統冷(lěng)啓動需要(yào)耗費(fè ≥±i)大(dà)量的(de)時(shí)間(jiān)來(lái)初始化(huà)系統,但(dàn)∞ ∏γ是(shì)從(cóng)休眠模式中啓動時(shí),隻需把硬盤中的(de)休眠數(s♥₹<Ωhù)據(Hiberfile加載到(dào)內(nèi)存,就(jiù)可(kě)以開(kāi)始用(yòng)戶‌♠登錄了(le)。


圖片

8Windows 8冷(lěng)啓動和(hé)從(cóng)休眠中的>×(de)啓動時(shí)長(cháng)對(duì)比示意圖


  而除了(le)休眠模式,控制(zhì)器(qì)還(hái)可(k•‌ě)以通(tōng)過優化(huà)安全啓動策略縮短(dβ©↑↑uǎn)啓動時(shí)長(cháng)。有(yǒu)些(xiē)情況下(xià),可(kě$ αλ)以允許控制(zhì)器(qì)先拉起Bootloader,操作(zuò)系統和(hé)應用(yòng),并記錄其啓動的(de)簽名、指紋等關鍵數(♠←shù)據。待系統工(gōng)作(zuò)後,TEE會(huì)在後台再次校(xiào)驗已經啓動的(de)系統¥φ是(shì)否合法,如(rú)果非法則進入相(xiàng)應的(de)安δ≥ε全模式。這(zhè)種做(zuò)法比先驗證再啓動的(de)®±✔∞方案會(huì)損失安全性,但(dàn)是↔‌™☆(shì)能(néng)縮短(duǎn)啓動•♠時(shí)長(cháng)。基于整車(chē)÷∏網絡安全架構的(de)分(fēn)析,可(kě)以讓部分(∏δ♥★fēn)較為(wèi)安全的(de)控制(zhì)器(qì)(例如(rú) '"不(bù)與外(wài)網直接通(tōng)訊的∞★(de)本地(dì)控制(zhì)器(qì→ >λ))采用(yòng)這(zhè)種策略。


  當然,産品的(de)發展都(dōu)是(s‌₹hì)多(duō)維度而不(bù)是(shì)單一(yī¶✘)維度的(de)。車(chē)載控制(zhì)器(qì)的(de‌♠±)啓動過程也(yě)應該按照(zhào)多(duō)維度标準去(qù)取舍¥×和(hé)開(kāi)發。這(zhè)就(jiù)像當年(nián)傳統非智能(néng)手機(↔γ∏ jī)的(de)啓動時(shí)間(jiān)是(shì)很(hěn)快(kuài),也(yě)很≥ §​(hěn)安全,沒有(yǒu)那(nà)麽多(duō)病毒。但(dàn)₽λ<≠還(hái)是(shì)被現(xiàn)在啓動時(shí←↑≠)間(jiān)更長(cháng)、安全風(fēng↓←Ω)險更大(dà)的(de)智能(néng)手機(jī)$♣所取代了(le)。春節期間(jiān)大(dà)家(jiā) ©在家(jiā)看(kàn)的(de)智能(né↔"$ng)電(diàn)視(shì)也(yě)是(shì)一(yī)個(gè)道(★<↑✘dào)理(lǐ)。在汽車(chē)智能(néng)化(huà)的(de¶₩®λ)大(dà)趨勢下(xià),啓動過程相(xiàng)信也(yě)會(huì)不(bù)斷平$÷÷₩衡,做(zuò)得(de)更加智能(néng)、高(gāo)效、安全。



轉自(zì)汽車(chē)電(diàn)子(zǐ)與軟件(jiàn)

北京德智尚車聯科技有限公司版權所有(yǒu) 京ICP證000000号   技(jì)術(shù)支持:網站(zhàn)建設