0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AURIX TC3XX系列最佳的SOTA方案

汽車ECU開發(fā) ? 來源:汽車ECU開發(fā) ? 2023-06-14 09:08 ? 次閱讀

01

什么是SOTA?

SOTA全稱是云端軟件升級(jí)(Software updates Over The Air),就是指在不連接燒寫器的情況下,通過CANUART或其它通訊方式,實(shí)現(xiàn)應(yīng)用程序的更新。 在進(jìn)行SOTA時(shí),需要把舊的應(yīng)用程序擦除,把新的應(yīng)用程序?qū)懭?。常?guī)的實(shí)現(xiàn)方式需要分別開發(fā)BootLoader程序和APP程序,MCU上電先運(yùn)行BootLoader,BootLoader根據(jù)情況選擇是否跳轉(zhuǎn)到APP和是否進(jìn)行程序更新。具體來說有以下幾種方式: 方案一:更新程序時(shí),由APP接收更新數(shù)據(jù)并暫存于Flash,再將APP更新標(biāo)志位置位;MCU重啟時(shí),BootLoader檢查更新標(biāo)志位,如有效,則擦除舊的APP,再將暫存于Flash的新APP數(shù)據(jù)寫入APP運(yùn)行地址處。該方案的優(yōu)點(diǎn)是更新數(shù)據(jù)的接收由APP完成,BootLoader不需要通訊協(xié)議棧,代碼量更小,且數(shù)據(jù)傳輸中斷時(shí),原有APP不損壞。缺點(diǎn)是需要額外的Flash空間暫存更新數(shù)據(jù)。 方案二:BootLoader中內(nèi)置通訊協(xié)議棧,更新時(shí),先向MCU發(fā)送指令使其跳轉(zhuǎn)到BootLoader,之后先擦除舊APP,在接收新APP的同時(shí)直接將其寫入Flash的APP運(yùn)行地址處。該方案的優(yōu)點(diǎn)是不需要額外的Flash暫存數(shù)據(jù),缺點(diǎn)是BootLoader代碼更復(fù)雜,且如果數(shù)據(jù)傳輸發(fā)生中斷,舊的APP將不能被恢復(fù)。該方案更適合Flash容量較小的MCU。 方案三:將方案一和方案二相結(jié)合,即在BootLoader程序中內(nèi)置通訊協(xié)議棧,更新時(shí),先向MCU發(fā)送指令使其跳轉(zhuǎn)到BootLoader,之后接收更新數(shù)據(jù)的時(shí)候,采用方案一的方法,先將數(shù)據(jù)暫存于Flash,待數(shù)據(jù)全部接收完成后再擦除舊的APP,寫入新的APP。該方案結(jié)合了方案一和方案二的優(yōu)點(diǎn),且能在沒有APP或APP損壞的狀態(tài)下實(shí)現(xiàn)程序更新。缺點(diǎn)是BootLoader代碼量更大,F(xiàn)lash空間占用更大。 方案四:在Flash中劃分出兩塊相同大小的區(qū)域,分為A區(qū)和B區(qū),都用來存放APP,但同一時(shí)間下只有一個(gè)區(qū)的APP是有效的,分別設(shè)置一個(gè)標(biāo)志位標(biāo)識(shí)其有效性。初始狀態(tài)下先將APP寫入A區(qū),更新的時(shí)候,將新的APP寫入B區(qū),再把A區(qū)的APP擦除,同時(shí)更新兩個(gè)區(qū)的有效性標(biāo)志位狀態(tài)。BootLoader中判斷哪個(gè)區(qū)的APP有效,就跳轉(zhuǎn)到哪個(gè)區(qū)運(yùn)行。這種方法不需要重復(fù)拷貝APP數(shù)據(jù),但最大的一個(gè)缺陷是AB區(qū)的APP程序運(yùn)行地址不同,需要分別編譯,從而使得可應(yīng)用性大大降低。 經(jīng)過上面的分析,可以看出來每種方案都有其優(yōu)缺點(diǎn),對于Flash容量較小的MCU,通常采用方案二,因?yàn)闆]有過多的空間暫存APP更新數(shù)據(jù)。但對于TC3XX這一類的MCU來說,F(xiàn)lash容量通常都很大,足夠用,所以通常要先把APP暫存下來再進(jìn)行更新,防止數(shù)據(jù)傳輸中斷導(dǎo)致APP不可用。上面的方案一、三、四都能實(shí)現(xiàn),但并不完美。TC3XX系列的SOTA機(jī)制更類似于方案四,但它的Flash支持兩種地址映射方式,從而使得APP編譯時(shí)不需要區(qū)分AB區(qū),使用相同的地址即可,從而避免了方案四的硬傷,為我們提供了一種最佳的SOTA方案。

02

TC3XX的Flash地址映射方式

我們以TC397的Flash為例,用于存儲(chǔ)程序代碼的PFlash的標(biāo)準(zhǔn)地址映射方式(Standard Address Map)如下,表中PF0-PF5代表物理意義上的5塊Flash。 f72fb076-0a4e-11ee-962d-dac502259ad0.png 第二種地址映射方式被稱為 Alternate Address Map,如下表所示,標(biāo)準(zhǔn)模式下PF0-1的地址范圍現(xiàn)在被映射到了PF2-3,PF4的地址范圍被映射到了PF5。 f760a816-0a4e-11ee-962d-dac502259ad0.png

03

TC3XX的SOTA功能描述

當(dāng)SOTA功能激活時(shí),PFLash被劃分為兩部分,一部分用來存儲(chǔ)可執(zhí)行代碼(active bank),另一部分可用來讀取和寫入(inactive bank)。當(dāng)APP更新完畢后,兩個(gè)部分互換,即切換上面兩種地址映射方式。在標(biāo)準(zhǔn)模式下使用PF0-1和PF4作為active bank,后文稱作組A,在Alternate模式下使用PF2-3和PF5作為active bank,后文稱作組B,就可以實(shí)現(xiàn)上述方案四,且能寫入完全相同的APP程序,以相同的地址進(jìn)行運(yùn)行。 需要注意的是,所有NVM操作都是通過DMU使用PFLASH的物理系統(tǒng)地址執(zhí)行的,也就是說,NVM操作總是使用標(biāo)準(zhǔn)的地址映射,而不管選擇使用哪種地址映射。“NVM操作”是一個(gè)術(shù)語,用于任何針對FLASH的命令,如程序、擦除等,但不包括讀取和執(zhí)行代碼。 有關(guān)SOTA地址映射的參數(shù)在Flash中的UCB(User Configuration Block)中進(jìn)行配置,在UCB中配置后,只有當(dāng)下次MCU復(fù)位的時(shí)候才會(huì)更新配置。

04

SOTA的配置參數(shù)

(1)SOTA Mode Enable 該參數(shù)決定是否開啟SOTA模式,在寄存器Tuning Protection Configuration中的SWAPEN進(jìn)行配置,定義如下: f789b59e-0a4e-11ee-962d-dac502259ad0.pngf7b1d15a-0a4e-11ee-962d-dac502259ad0.png (2)Bank Swap 在UCB_SWAP區(qū)域中,對SOTA模式下使用哪種地址映射進(jìn)行配置。 UCB_SWAP區(qū)域包含以下內(nèi)容: f7e01574-0a4e-11ee-962d-dac502259ad0.png 其中最重要的是前四個(gè),我們分別來看一下: ① MARKERLx (x=0-15) f7f66d38-0a4e-11ee-962d-dac502259ad0.pngf808b740-0a4e-11ee-962d-dac502259ad0.png MARKERL中的SWAP就是標(biāo)記使用標(biāo)準(zhǔn)地址映射還是Alternate地址映射。 ② MARKERHx (x=0-15) f81e49fc-0a4e-11ee-962d-dac502259ad0.png MARKERH中存著與之相對應(yīng)的MARKERLx.SWAP的入口地址,是用來做校驗(yàn)的。 ③ CONFIRMATIONLx (x=0-15) f8431c64-0a4e-11ee-962d-dac502259ad0.png CONFIRMATIONL是確認(rèn)代碼,要寫入固定的0x57B5327F,上面的MARKERLx.SWAP才有效。 ④ MARKERHx (x=0-15) f8740d92-0a4e-11ee-962d-dac502259ad0.png MARKERH中存著與之對應(yīng)的 CONFIRMATIONLx.CODE的入口地址,也是用來做校驗(yàn)的。 ?

05

SOTA的初始化配置

初始化狀態(tài)是使用標(biāo)準(zhǔn)地址映射,此時(shí)SOTA模式未啟用。按以下步驟啟用SOTA: ① 用燒寫器把APP燒寫進(jìn)PFlash的組A地址處。 ② 向MARKERL0寫入0x00000055。 ③ 向MARKERH0寫入MARKERL0的系統(tǒng)地址。 ④ 向CONFERMATIONL0寫入0x57B5327F。 ⑤ 向CONFERMATIONH0寫入CONFERMATIONL0的系統(tǒng)地址。 ⑥ 將UCB_OTP0中SWAPEN標(biāo)志位置為Enable。 ⑦ 重啟MCU。 經(jīng)過上面的步驟,就事MCU進(jìn)入了SOTA模式,其中步驟②-⑤是為了啟用標(biāo)準(zhǔn)地址映射。手冊中給了如下的流程圖供參考,其中一些加解密的步驟我這里省略了,暫時(shí)沒有詳細(xì)研究: f885e17a-0a4e-11ee-962d-dac502259ad0.png

06

SOTA的后續(xù)配置

上面說的是第一次啟用SOTA時(shí)的配置,下面我們就來看一下SOTA啟用后,進(jìn)行APP更新的步驟: ① 將新的APP寫入PFlash中未激活的部分,即上文提到的Inactive Bank,并進(jìn)行準(zhǔn)確性校驗(yàn)。 ② 如果新的APP被寫入組B,則向MARKERLx.SWAP寫入0x000000AA,啟用Alternate地址映射模式;如果新的APP被寫入組A,則向MARKERLx.SWAP寫入0x00000055,啟用標(biāo)準(zhǔn)地址映射模式。(x是0-15的值,從0開始向上遞增,由上文可知UCB_SWAP最多能存儲(chǔ)16組標(biāo)志值,存滿后再擦除重新寫入。) ③ MARKERHx.ADDR、CONFIRMATIONLx.CODE和CONFIRMATIONHx.ADDR配置同上文。 ④ 向CONFIRMATIONL(x-1).CODE再次寫入0xFFFFFFFF,來使上一組UCB_SWAP值失效。向PFlash再次寫入全1的值不會(huì)導(dǎo)致PFlash操作錯(cuò)誤。 手冊中給了下面這個(gè)流程圖供參考: f89ee148-0a4e-11ee-962d-dac502259ad0.png ? 以上就是Tricore TC3XX系列SOTA機(jī)制的介紹,我目前也只是看了手冊,還沒有實(shí)際運(yùn)用過,有不正確的地方歡迎大家交流討論。 最后只要將此文章分享至朋友圈,集20個(gè)贊,截圖后臺(tái)發(fā)給小編,即可獲取下圖小編整理的一些TC3XX的資料。

f96babec-0a4e-11ee-962d-dac502259ad0.png

f981f03c-0a4e-11ee-962d-dac502259ad0.png
責(zé)任編輯:彭菁

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4944

    瀏覽量

    87500
  • APP
    APP
    +關(guān)注

    關(guān)注

    33

    文章

    1574

    瀏覽量

    72489
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3787

    瀏覽量

    81049
  • Aurix
    +關(guān)注

    關(guān)注

    1

    文章

    71

    瀏覽量

    10918

原文標(biāo)題:AURIX TC3XX系列的SOTA機(jī)制詳解

文章出處:【微信號(hào):eng2mot,微信公眾號(hào):汽車ECU開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    英飛凌TC3XX系列多核MCU學(xué)習(xí)筆記(1)

    聲明:本文是在學(xué)習(xí)英飛凌 TC3XX系列多核 MCU 過程中整理的筆記,便于后期復(fù)習(xí)!
    發(fā)表于 09-19 09:54 ?2569次閱讀
    英飛凌<b class='flag-5'>TC3XX</b><b class='flag-5'>系列</b>多核MCU學(xué)習(xí)筆記(1)

    英飛凌TC3XX系列多核MCU學(xué)習(xí)筆記(3)

    TC3XX 系列屬于AURIX? 2G系列AURIX? 2G系列
    發(fā)表于 09-19 10:00 ?2348次閱讀
    英飛凌<b class='flag-5'>TC3XX</b><b class='flag-5'>系列</b>多核MCU學(xué)習(xí)筆記(<b class='flag-5'>3</b>)

    英飛凌TC3xx系列安全管理單元的使用

    本篇文檔主要用來介紹英飛凌基于AURIX-2G TriCore 1.6.2架構(gòu)的 TC3xx系列安全管理單元的使用。
    的頭像 發(fā)表于 12-07 09:29 ?2132次閱讀
    英飛凌<b class='flag-5'>TC3xx</b><b class='flag-5'>系列</b>安全管理單元的使用

    AURIX? TC3XX如何暫時(shí)僅啟用/禁用CAN中斷?

    你我使用的是 AURIX? TC3XX。 在 CAN ISR 處理期間,如何暫時(shí)僅啟用/禁用 CAN 中斷?
    發(fā)表于 01-18 06:47

    SWAP是否適用于兩個(gè)用于TC3xx系列控制器的獨(dú)立軟件?

    目前正在使用 Swap/Partitions 概念實(shí)現(xiàn) SOTATC3xx 系列)。 檢查為應(yīng)用程序和引導(dǎo)加載程序?qū)嵤?SOTA 的可行性。 1。對于兩個(gè)獨(dú)立的軟件,
    發(fā)表于 01-30 07:56

    TC3xx系列是否支持RTC功能?

    請教各位,TC3xx系列芯片是否支持RTC功能,目前要記錄snapshot的時(shí)間點(diǎn)(年月日時(shí)分秒)。
    發(fā)表于 02-02 07:53

    GCC和TASKING有什么區(qū)別?應(yīng)該為AURIX? TC3xx選擇什么?

    GCC 和 TASKING 有什么區(qū)別? 我應(yīng)該為 AURIX? TC3xx 選擇什么? 這將如何影響代碼的運(yùn)行?
    發(fā)表于 03-01 10:09

    TSIM是否支持TC3xx系列在沒有硬件的情況下調(diào)試應(yīng)用程序?

    你好, TSIM是否支持TC3xx系列在沒有硬件的情況下調(diào)試應(yīng)用程序? AURIX TC3xx - Free Entry ToolChain 是否有助于實(shí)現(xiàn)上述目的?
    發(fā)表于 05-17 07:02

    英飛凌AURIX單片機(jī)TC3xx系列助力自動(dòng)駕駛和電動(dòng)交通發(fā)展

    2016年10月28日,為滿足自動(dòng)駕駛汽車和電動(dòng)車的市場需求,英飛凌科技股份公司(FSE: IFX / OTCQX: IFNNY)近日發(fā)布新一代 AURIX?單片機(jī),即TC3xx,它是市場上同類器件中集成度最高的產(chǎn)品,實(shí)時(shí)性能是現(xiàn)有器件的
    發(fā)表于 11-07 13:51 ?3070次閱讀

    英飛凌AURIX單片機(jī)TC3xx系列助力電動(dòng)交通發(fā)展

    為滿足自動(dòng)駕駛汽車和電動(dòng)車的市場需求,英飛凌科技股份公司近日發(fā)布新一代 AURIX?單片機(jī),即TC3xx,它是市場上同類器件中集成度最高的產(chǎn)品,實(shí)時(shí)性能是現(xiàn)有器件的3倍。
    發(fā)表于 03-24 13:42 ?5848次閱讀

    關(guān)于英飛凌AURIX?單片機(jī)TC3xx系列的性能和應(yīng)用

    英飛凌副總裁兼控制器業(yè)務(wù)總經(jīng)理Peter Schaefer表示:“AURIX TC3xx系列器件將推進(jìn)自動(dòng)駕駛和電動(dòng)汽車的發(fā)展。能夠推出新一代高性能多核單片機(jī),我們頗感到自豪,它將設(shè)立新的性能標(biāo)準(zhǔn),其性能、加密和安全功能全都符合
    的頭像 發(fā)表于 09-24 17:36 ?7655次閱讀

    英飛凌 AURIX 單片機(jī) 培訓(xùn)文檔鏈接

    包括AURIX? -TC2xx Microcontroller TrainingAURIX? -TC3xx Microcontroller TrainingAURIX? TC2xx I
    發(fā)表于 12-03 16:06 ?19次下載
    英飛凌 <b class='flag-5'>AURIX</b> 單片機(jī) 培訓(xùn)文檔鏈接

    AURIX? TC3xx NVM是非易失性存儲(chǔ)器學(xué)習(xí)筆記

    TC3xx芯片最多有6個(gè)內(nèi)核,每個(gè)核有自己的私有的Memory以及共有的Memory。
    發(fā)表于 06-19 09:09 ?7116次閱讀
    <b class='flag-5'>AURIX</b>? <b class='flag-5'>TC3xx</b> NVM是非易失性存儲(chǔ)器學(xué)習(xí)筆記

    英飛凌AURIX TC3xx和TRAVEO T2G系列微控制器介紹

    英飛凌市場領(lǐng)先的 AURIX TC3xx 和TRAVEO T2G 車用 MCU將率先支持Rust語言。雖然TRAVEO 使用的是 Rust 官方工具鏈和Arm Cortex-M 目標(biāo)架構(gòu),但英飛凌的工具合作伙伴 HighTec EDV-Systeme 為
    發(fā)表于 06-20 15:07 ?995次閱讀
    英飛凌<b class='flag-5'>AURIX</b> <b class='flag-5'>TC3xx</b>和TRAVEO T2G<b class='flag-5'>系列</b>微控制器介紹

    TC3xx芯片DMU介紹

    AUTOSAR架構(gòu)圖下的Fls模塊對上(Fee)模塊提供統(tǒng)一的標(biāo)準(zhǔn)接口,但是具體的實(shí)現(xiàn)因不同的芯片而不一樣,Infineon公司的Fls模塊通過操作TC3xx芯片的DMU模塊實(shí)現(xiàn)Fls的功能。在具體
    的頭像 發(fā)表于 08-31 14:10 ?1908次閱讀
    <b class='flag-5'>TC3xx</b>芯片DMU介紹