在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

聊一聊汽車控制器的啟動——BOOT

汽車ECU開發 ? 來源:汽車ECU開發 ? 2023-02-03 17:34 ? 次閱讀

一、BOOT來源

你有沒有遇到過電腦新安裝了軟件,然后提示你Reboot的場景?這里的Reboot,大家都知道是重啟,而Boot就是啟動的意思。但你有沒有想過為什么電腦啟動會叫做Boot? Boot不是靴子嗎?

Boot作為啟動術語的來源確實與靴子有關。因為計算機的啟動都是從硬件上電開始的,此時軟件還沒工作,需要一個引導程序把它拉起來。而拉起軟件的動作又需要軟件自身的啟動和運行,這個過程就很像一句英文諺語:

Pull oneself up by one's bootstraps.

意思是通過鞋帶把自己提起來,寓意自食其力,靠自己振作起來。由于兩者思想如出一轍,計算機發展初期就把啟動的引導程序稱作BootStrap Loader,或Bootloader或Boot。

5e51b578-a3a3-11ed-bfe3-dac502259ad0.png

圖1:用鞋帶把自己拉起來的示意圖

二、Bootloader簡介

Bootloader,又稱為引導程序,對操作系統非常重要,是計算機和汽車控制器的一個關鍵組成部分。然而,因為它往往在后臺發揮作用,它經常被忽視。那么Bootloader的具體工作原理是怎樣的呢?我們以下圖中的PIC16單片機作為例子來具體看看。 按單片機設計,芯片通電后就會從Flash的0x000地址開始執行指令,也就是說芯片上電后,第一行代碼就從0X000開始執行。如左所示,用戶可以通過UART串口將整個用戶程序燒錄到Flash上,這樣整個存儲區都可以用于用戶程序。但是每次燒寫都很麻煩。如右所示,如果在0X000開始布置三行指令,用于跳轉到Bootloader區(即下圖右方的跳轉1),然后在0XF00區域開始執行Bootloader引導程序,正常啟動時,Bootloader執行完會再跳轉到用戶程序(即下圖右方的跳轉2)。在Bootloader程序中,可以進行特殊的開發例程或者刷寫新的用戶程序,這樣對開發和刷寫都更加友好。

5e5f44b8-a3a3-11ed-bfe3-dac502259ad0.png

圖2:Bootloader示意圖

不同處理器的具體Bootloader細節略有差異,但是整體邏輯和思路都是相同的。例如對于電腦上的CPU,Bootloader還會初始化硬件,將操作系統內核從硬盤加載到內存,再將操作系統從加載到內存,然后操作系統會進一步將需要運行的應用程序從硬盤加載到內存中執行。總的來說,就是處理器硬件啟動后自動執行的第一行代碼會跳轉到Bootloader,然后再由Bootloader引導執行用戶代碼。

三、Flash Bootloader

如上文所述,Bootloader的優勢主要是為用戶軟件的刷寫提供便利性。而汽車上傳統的控制器都是高度嵌入式系統,而且各個控制器從開發到量產到售后都有軟件更新的需求,Bootloader剛好就能用來完成刷寫控制器軟件的任務。這個以刷寫更新軟件為目的的Bootloader在汽車行業就被廣泛稱之為Flash Bootloader(FBL)。它主要用于MCU等傳統嵌入式系統的軟件刷寫。

實際上,Flash Bootloader應該算是Bootloader引導后的第二道程序。第一道被引導起來的Bootloader會判斷ECU狀態,再根據這個狀態來拉起應用程序或者進入Flash Bootloader。由于簡略表達或者概念模糊,在實際工作場合中很多時候都會聽到有人把Bootloader和Flash Bootloader混為一談。我們可以根據場合保持溝通的連貫性,但心里應該清晰區分兩者的區別。

在汽車行業的實際應用中,Bootloader還常細分為Primary Bootloader(PBL)和Secondary Bootloader(SBL)。其中SBL更加接近于Flash Bootloader。下圖是一種常見的PBL、SBL和MCU存儲器的關系示意圖。

5e714c8a-a3a3-11ed-bfe3-dac502259ad0.png

圖3:Flash Bootloader與內存關系示意框圖

PBL的作用是在應用軟件有效時引導它。PBL存儲在MCU芯片的Flash,它一般是產品出廠時一次性刷好的,芯片上電或重啟后,第一批執行的代碼就是PBL。需要刷寫軟件時,PBL可以通過統一診斷服務(UDS),基于CAN以太網等底層總線協議與外界診斷儀通信。在校核完診斷儀的權限后,PBL會將診斷儀上的SBL下載到MCU的內存RAM上,然后由SBL進行刷寫。SBL包含PBL提供的所有服務以及閃存驅動器(Flash Driver)和一些額外的UDS服務。通過UDS觸發,SBL會利用Flash Driver擦除舊軟件,并把新軟件寫到對應的存儲區。具體流程如下圖4所示:

5e7f641e-a3a3-11ed-bfe3-dac502259ad0.png

圖4:MCU刷寫流程示意圖

為了避免應用軟件被意外誤刷寫或者刪除,PBL中一般不包含Flash Driver,不能直接操作閃存。每次刷寫時,包含Flash Driver的SBL都會從診斷儀中重新加載到內存。這種PBL和SBL的分工方案,有這些好處:

1.平時防止應用軟件被誤刷寫。

2.提高網絡安全性。每次從診斷儀下載SBL時,都可以通過安全鑒權機制,確保合法的診斷儀才能觸發刷寫。

3.通過SBL還能反向刷寫更新PBL,提高了Bootloader的整體靈活度。

四、SoC的啟動和刷寫

上面說的Flash Bootloader是針對傳統高度嵌入式系統的。但相信各位汽車同仁也感受到,越來越多的高性能計算芯片正在汽車上普及,汽車中央電腦等方案也是不絕于耳。對于這些高性能計算芯片,行業內常以SoC(System on Chip)相稱。SoC的啟動和刷寫方案和MCU如出一轍,但由于其內部存儲管理系統和內部總線更加復雜,啟動的具體實現與MCU略有差異,其細節更接近于我們熟悉的個人電腦。總體的啟動流程如下圖所示。

5e981630-a3a3-11ed-bfe3-dac502259ad0.png

圖5:BIOS和UEFI啟動流程示意圖

傳統計算機的啟動一般采用上圖上部分的BIOS啟動。BISO是Basic Input Output System的縮寫,是計算機硬件與軟件第一次相遇的地方。BIOS的代碼通常被嵌入到電腦的主板的EEPROM中。BIOS可以完成計算機上電后的基本自檢,并指示計算機如何執行基本功能,如啟動和鍵盤控制。在BIOS中也可以選擇配置啟動參數。對,這就是我們以前重裝電腦系統時,在BIOS里可以選擇從光盤還是硬盤啟動等操作的原因。然后BIOS會調用硬盤起始位置的MBR(MasterBootRecord),然后按照其中的分區表拉起Bootloader,然后是操作系統內核,再到操作系統和應用。

當然BIOS的設計已經有年頭了。現在生產的電腦基本都是使用UEFI(Unified Extensible Firmware Interface),汽車上的高性能計算單元也一樣。從實現功能上來看,UEFI可以認為是升級版的BIOS。

UEFI是一個微型操作系統,它在內存中加載Bootloader,再執行額外的操作程序。作為微型操作系統,UEFI運行在固件之上,可以支持的功能比BIOS多得多,包括系統驗證等安全功能。其中最核心的區別是,UEFI支持更大的尋址空間,并且可以在32位或64位模式下運行(BIOS只支持16位),也就是UEFI可以支持更大的硬盤或者網絡共享,并且啟動速度更快。

由于SoC一般采用基于文件系統的操作系統,可以通過文件系統升級軟件,再加上UEFI具有更靈活的啟動分區引導,所以車上的高性能計算平臺一般還支持A/B分區升級。也就是在A系統運行時,悄悄升級冗余的B系統,完成安裝升級后再重啟SoC,然后再切換到B系統。其總體過程如下圖所示。

5ebc8e3e-a3a3-11ed-bfe3-dac502259ad0.png

圖6:A/B分區升級示意圖

五、車載控制器啟動的挑戰

新年伊始,萬象更新。每年的開始階段對這一整年的影響都舉足輕重。對車載控制器的啟動來說也是類似,好的開始是成功的一半。正是由于啟動的重要性,也有不少挑戰要通過啟動過程來解決。其中最突出的就是關于信息安全和啟動時間的挑戰。

啟動的信息安全挑戰

一年之計在于春。試想如果有人把你給孩子春節期間立下的flag偷偷換掉,然后你孩子還按照這個假的flag執行,如果flag是惡意的,那問題是不是大了?對車載控制器來說也是類似,啟動過程中加載的Bootloader或者操作系統如果是被惡意替換了,不就破防了? 為了迎接這個挑戰,在啟動過程中,會引入安全啟動(secure boot)機制。其目的是在系統啟動之前先驗證系統簽名的合法性,從而判斷將要啟動的系統的合法性。如果系統合法,則繼續加載拉起系統,如果非法則報錯或自動回滾到上一個合法系統。由于傳統嵌入式MCU和高性能計算芯片SoC的架構區別,二者在實施安全啟動時也略有差別。如下圖所示,MCU一般會使用內嵌的HSM(Hardware Security Module,硬件安全模塊)來存儲密鑰和驗證簽名。而SoC一般會使用TEE(Trusted Execution Environment,可信執行環境)架構來獲取密鑰和驗證簽名。兩者在安全層面根據芯片架構采用不同策略,但是其目的和效果都是一樣的。

5ecdcb86-a3a3-11ed-bfe3-dac502259ad0.png

圖7:一種MCU和SoC安全啟動方案的示意圖

啟動時長的挑戰

隨著車載計算平臺的發展,其所需要管理的硬件資源越來越豐富,也越來越復雜。這讓控制器啟動時需要加載的數據越來越大,需要初始化的設備也越來越多,導致其啟動時長也越來越長。這就像20年前的諾基亞手機開機可能只需要幾秒鐘,現在智能手機開機則要幾十秒甚至一分鐘以上。據行業觀察,當下流行的幾款SoC正常啟動時長很少少于10秒鐘,如果加上安全啟動等過程,則啟動時長更長。有些控制器甚至從上電到上層功能業務應用開始工作,需要差不多1分鐘。

車載業務對于啟動時間又非常敏感。例如當下大家都習慣的倒車影像,我們通常坐上車、系好安全帶、發動車輛掛倒擋,就希望影像能夠出現在中控屏。試想如果整個啟動時長需要1分鐘,那我們就需要在車上等待幾十秒,或者脫離輔助功能“盲開”出去了,這樣的用戶體驗會很差。

為了迎接這個挑戰,車載域控制器或計算平臺經常會引入休眠模式。這也類似我們電腦的休眠模式,就是讓原本掉電丟失的內存上的內容先存儲到硬盤里,下次啟動時再將所有內容重新加載到內存上,而不是采用重新從UEFI加載Bootloader到內核再初始化的那一套流程。這樣控制器技能長時間保持低功耗,又能在需要喚醒時能夠快速啟動工作。當然,這需要耗費硬盤上的額外空間來存儲休眠時的內存數據。以下圖Windows 8的示意圖為例,傳統冷啟動需要耗費大量的時間來初始化系統,但是從休眠模式中啟動時,只需把硬盤中的休眠數據(Hiberfile)加載到內存,就可以開始用戶登錄了。

5edefcc6-a3a3-11ed-bfe3-dac502259ad0.png

圖8:Windows 8冷啟動和從休眠中的啟動時長對比示意圖

而除了休眠模式,控制器還可以通過優化安全啟動策略縮短啟動時長。有些情況下,可以允許控制器先拉起Bootloader,操作系統和應用,并記錄其啟動的簽名、指紋等關鍵數據。待系統工作后,TEE會在后臺再次校驗已經啟動的系統是否合法,如果非法則進入相應的安全模式。這種做法比先驗證再啟動的方案會損失安全性,但是能縮短啟動時長。基于整車網絡安全架構的分析,可以讓部分較為安全的控制器(例如不與外網直接通訊的本地控制器)采用這種策略。

當然,產品的發展都是多維度而不是單一維度的。車載控制器的啟動過程也應該按照多維度標準去取舍和開發。這就像當年傳統非智能手機的啟動時間是很快,也很安全,沒有那么多病毒。但還是被現在啟動時間更長、安全風險更大的智能手機所取代了。春節期間大家在家看的智能電視也是一個道理。在汽車智能化的大趨勢下,啟動過程相信也會不斷平衡,做得更加智能、高效、安全。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19286

    瀏覽量

    229853
  • 指令
    +關注

    關注

    1

    文章

    607

    瀏覽量

    35714
  • bootloader
    +關注

    關注

    2

    文章

    235

    瀏覽量

    45627
  • Boot
    +關注

    關注

    0

    文章

    149

    瀏覽量

    35839
  • 汽車控制器
    +關注

    關注

    0

    文章

    25

    瀏覽量

    5577

原文標題:聊一聊汽車控制器的啟動——BOOT

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    從焊接角度,設計PCB的5個建議

    完成個電路板,需要PCB工程師、焊接工藝、焊接工人等諸多環節的把控。今天通過定位孔、MARK點、留邊、焊盤過孔、輔助工具這五個方面從畫板的角度跟大家PCB設計。
    的頭像 發表于 02-06 10:31 ?1997次閱讀
    從焊接角度<b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>,設計PCB的5個建議

    消息隊列技術選型的7種消息場景

    我們在做消息隊列的技術選型時,往往會結合業務場景進行考慮。今天來消息隊列可能會用到的 7 種消息場景。
    的頭像 發表于 12-09 17:50 ?1379次閱讀
    <b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>消息隊列技術選型的7種消息場景

    Altium中Fill,Polygon Pour,Plane的區別和用法

    Fill會造成短路,為什么還用它呢?來Altium中Fill,Polygon Pour,Plane的區別和用法
    發表于 04-25 06:29

    stm32的低功耗調試

    前言:物聯網的大部分設備都是電池供電的,設備本身低功耗對延長設備使用至關重要,今天就實際調試總結stm32的低功耗調試。1、stm32在運行狀態下的功耗上圖截圖自stm32l15x手冊
    發表于 08-11 08:18

    7系列FPGA的供電部分

    前幾篇咱們說了FPGA內部邏輯,本篇咱們再聊7系列FPGA的供電部分。首先咱們說spartan7系列,通常咱們需要使用以下電源軌:1,VCCINTFPGA內部核心電壓。其不損壞FPGA器件的范圍
    發表于 11-11 09:27

    平衡小車代碼的實現

    前言今天代碼,只有直立功能的代碼。代碼總體思路給定個目標值,單片機通過IIC和mpu6050通信,得知數據后,根據角度環計算出個P
    發表于 01-14 08:29

    IIC總線設計

    大家好,又到了每日學習的時間了,今天咱們來 IIC 總線設計。 、概述: IIC 是Inter-Integrated Circuit的縮寫,發音為eye-squared cee
    的頭像 發表于 06-22 10:32 ?9311次閱讀

    小米米2月19日停止服務 米宣布關閉服務

    v8.8.70 及以上版本支持批量導出。 2010年12月10日,反應迅速的小米僅僅用了不到2個月的時間,發布了中國第款模仿kik的產品——米。Kik是款基于手機通信錄的社交軟件,用戶可以免費短信聊天。 2012年5月,
    的頭像 發表于 01-20 05:43 ?6661次閱讀

    復活了 能維持多久?

    2021年2月19日,米宣布停服,2021年2月26日,米重新上線。不過這次,米卻是以全新的面貌與大家相見。
    發表于 03-08 16:32 ?1154次閱讀

    FPGA中的彩色轉灰度的算法

    大家好,又到了每日學習的時間了,今天我們來FPGA學習中可以遇到的些算法,今天就
    的頭像 發表于 04-15 15:47 ?1962次閱讀

    【職場雜談】與嵌入式物聯網架構師幾個話題

    【職場雜談】與嵌入式物聯網架構師幾個話題
    的頭像 發表于 08-23 09:19 ?1337次閱讀
    【職場雜談】與嵌入式物聯網架構師<b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>幾個話題

    華為云彈性公網IP的那些事兒

    華為云彈性公網IP的那些事兒 如今,企業上云已成為熱門話題,云可以驅動流程創新和業務創新,成為企業新的利潤增長點,被看成是企業實現數字化轉型的必經之路。彈性公網IP作為種網絡基
    的頭像 發表于 11-21 15:20 ?883次閱讀
    <b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>華為云彈性公網IP的那些事兒

    消防余壓控制器的作用及工作原理

    余壓控制器是余壓監控系統中不可缺少的部分,余壓監控系統中余壓控制器上需要連接余壓監控主機;下需要連接余壓探測和電動執行,余壓
    的頭像 發表于 05-31 15:42 ?3291次閱讀
    <b class='flag-5'>聊</b><b class='flag-5'>一</b><b class='flag-5'>聊</b>消防余壓<b class='flag-5'>控制器</b>的作用及工作原理

    簡單DPT技術-double pattern technology

    今天想來簡單DPT技術-double pattern technology,也就是雙層掩模版技術,在目前先進工藝下,這項技術已經應用的很普遍了。
    的頭像 發表于 12-05 14:26 ?1901次閱讀

    芯片設計的NDR是什么?

    今天突然想route相關的問題,講講NDR是什么,我也梳理總結下我對NDR的認識。
    的頭像 發表于 12-06 15:14 ?2056次閱讀
    主站蜘蛛池模板: 欧美人成在线观看| 欧美无遮挡一区二区三区| 日本黄色录像视频| 国产亚洲欧美一区| 性欧美69| xxx黄色片| 久久久这里有精品999| 97青青| 97影院午夜在线观看视频| www.亚洲天堂| 久久久噜噜噜久久久午夜| 天天综合色天天综合| 久久草在线视频播放| 天天做天天玩天天爽天天| 在线观看黄色x视频| 182tv免费视视频线路一二三 | xxx性欧美| 久久亚洲精品国产亚洲老地址| 国产精品一区牛牛影视| 国产小福利| 午夜精品免费| 天天干夜夜操美女| 亚洲福利一区二区三区| 最近2018免费中文字幕视频| 亚洲a影院| 日韩a毛片| 久久久综合久久| 丁香六月色婷婷综合网| 亚洲夜夜骑| 性猛交╳xxx乱大交| 亚洲五月婷| 日韩免费网站| 国产美女视频免费| 老师办公室高h文小说| 性欧美高清久久久久久久| 欧美综合一区二区三区| 手机福利在线| 69国产成人精品午夜福中文| 婷婷综合久久中文字幕蜜桃三| 免费四影虎ww4hu10| 国产国拍亚洲精品mv在线观看|