汽車電子軟體設計-刷新介紹1

汽車電子軟體設計-刷新介紹1

來自專欄汽車電子軟體設計4 人贊了文章

汽車電子控制器給汽車的發展帶來了無限的可能,也即是軟體定義汽車功能。汽車電子控制器里的軟體越來越複雜,動不動就是幾十萬行的代碼,不免會出現一些軟體bug,當出現軟體bug時,更新控制器里的軟體就成為必需,對控制器開發過程中,刷新功能必不可少。此次就講一下電子控制器里的刷新功能。

根據不同階段,刷新的種類也不同:

1)初次刷新;

2)Debug刷新;

3)基於UDS刷新;

4)OTA刷新;

本次文章主要講述前二種,後面幾點再開專題進行講述。

1)初次刷新:

初次刷新使用的場景是當晶元為「空」的時候,採用的一種刷新方式,經常會在控制器生產時罐裝數據所採用的一種刷新方式。那初次刷新的原理是什麼呢?在此我們以IFX TC27X晶元為例來說明。

要了解初次刷新原理,首先需要了解晶元的啟動原理。

從晶元手冊上的Memory May可看出,Flash區域有一塊特殊區域叫BootROM,這段存儲區域存放的內容是晶元供應商固化進去的程序,用戶是不可以更改的。

BootROM Flash區域示意圖

其包含的主要內容有:

? Startup Software (short name SSW);

? Software modules implementing additional functions (Bootstrap Loaders);

? Test Firmware.

在這隻需關注前兩條,對於Test Firmware暫不看。

每次MCU上電或複位,首先執行的就是BootROM里的Startup Software,那麼該Startup Software具體是幹嘛的呢?

會到如下Flash處找有效的內容(0xA0000000與0x80000000其實是互相映射的,這些地址是固定的):

BootHeader所處Flash區域示意圖

那麼這些Flash會存儲什麼內容呢?這些地址稱之為BootHeader,內容都是固定格式的(如果是正確的話),其格式為:

BootHeader格式示意圖

BootHeader中主要包含了用戶代碼的起始地址,內容有效校驗性區域配置及Checksum值。如果MCU首次啟動(上電或複位),會根據定義的區域校驗內容是否有效,如果有效,則PC指針跳轉到BootHeader中定義的起始地址,這樣就完成了從BootROM跳轉到用戶的代碼起始地址了,通常該該起始地址是BootLoader,之後再經過一系列初始化,啟動OS。

那麼BootHeader跟軟體有啥關係呢,我們在做軟體設計時可以通過定義這種結構的結構體Const變數,並將該Const變數分配到如上所述的BootHeader所在的Flash區域。

上面闡述了MCU的啟動過程,啟動的成功取決於BootHeader是否有效,那麼問題來了,如果Bootheader無效怎麼辦?

如果是第一個BootHeader無效,那麼Startup Software就嘗試去找第二個BootHeader,判斷是否有效,如果有效,則PC指針就會從BootROM跳轉到第二個BootHeader定義的用戶起始地址,如果無效,則繼續尋找第三個BootHeader,依次類推下去。

如果所有的Bootheader都無效,那麼這個時候MCU會進入一種特殊模式--BootsTrap模式,在這種模式下,MCU可以與外界進行通信,通信方式可以選擇Generic Bootloader via CAN pins - the communication protocol is automatically selected by the SSW between ASC and CAN pins,上位機設備在完成與ECU握手後,即可將用於刷新的Loader下載到MCU的RAM里,完成下載後,PC指針自動從BootROM跳轉到Program Scratchpad RAM PSPR的地址0xC0000000處,進而執行刷新Loader(開發時注意要將啟動地址定義為0xC0000000)。

初次刷新大致過程示意圖

2)Debug刷新

對於這種刷新,主要是利用JTAG協議,使得上位機軟體來控制MCU,實現對MCU Flash進行擦寫的操作。

常見的Debug有PLS的UDE和lauterbach的調試設備。想提到一點就是對於IFX的多核晶元,即使上面提到的BootHeader不存在,也可以連接Debug,但是對於單核晶元,如果BootHeader不存在,就無法連接Debug,這樣就無法通過Debug進行刷新了,此時就只能使用第一種刷新方式了。

你們的工廠採用哪種刷新方式呢?


推薦閱讀:

視頻: 雕塑藝術造型設計教程
簡歷設計技巧:從軟體工程師到it獵頭續_簡歷技巧
有哪些作品一流且樂於分享的視覺設計師?

TAG:設計 | 汽車 | 汽車電子 |