新聞中心

EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 如何實現(xiàn)基于英飛凌TRAVEO? T2G系列芯片的Dual Bank方案架構(gòu)實現(xiàn)OTA功能

如何實現(xiàn)基于英飛凌TRAVEO? T2G系列芯片的Dual Bank方案架構(gòu)實現(xiàn)OTA功能

作者: 時間:2025-04-22 來源:英飛凌 收藏

最近在 開發(fā)者論壇 中注意到,許多開發(fā)者都在討論和提問關(guān)于如何實現(xiàn)基于? T2G系列芯片的OTA(Over-The-Air,遠程升級技術(shù))更新應(yīng)用。為了幫助大家更好地基于? T2G系列芯片的Dual Bank方案架構(gòu)實現(xiàn)OTA功能,本文將簡要介紹其原理,并提供相關(guān)的資源和示例代碼,希望能夠為大家提供參考和幫助。(作者: Yang Jannie)

本文引用地址:http://2s4d.com/article/202504/469654.htm

OTA(Over-the-Air) 是一種通過無線通信協(xié)議遠程更新設(shè)備固件的軟件更新方法,在現(xiàn)代智能汽車和聯(lián)網(wǎng)汽車的快速發(fā)展下,在汽車應(yīng)用中越來越受到重視。 通過OTA更新,設(shè)備制造商可以在設(shè)備部署后修復(fù)漏洞、添加新功能或優(yōu)化性能,而無需物理接觸設(shè)備。 它既可以提升用戶體驗和安全性,又降低維護成本和環(huán)境影響做出貢獻,為汽車行業(yè)的持續(xù)發(fā)展和創(chuàng)新提供了強大支持。

? T2G 系列支持雙區(qū)(Dual Bank)模式,允許RWW(Read While Write)功能。 Dual Bank 是一種支持OTA更新的存儲架構(gòu),它使用兩個獨立的存儲區(qū)來確保固件更新的可靠性和安全性。Dual bank技術(shù)通常涉及A/B分區(qū)機制,在OTA更新過程中,新固件會先被下載到備用分區(qū),下載完成后,系統(tǒng)會在下次啟動時從新分區(qū)啟動??蛻艨梢曰谄涮厥獾膁ual bank 模式進行相同位置的固件更新,提升了固件更新的靈活性和效率。

參考文檔

AN220242

AN229058

TRAVEO? T2G Dual Bank劃分

TRAVEO? T2G芯片的閃存分為Code Flash和Work Flash。

  • Code Flash用于存儲程序代碼, 即芯片的固件或軟件。

  • Work Flash用于存儲數(shù)據(jù), 即程序運行時需要存儲的數(shù)據(jù),例如配置信息、日志數(shù)據(jù)等。

在Dual Bank模式下, Code Flash被劃分為兩個獨立存儲體(Logical Bank 0和Logical Bank 1),在不同mapping下,存儲體地址互換,以支持動態(tài)重映射。以下圖CYT2B7芯片為例:

  • Mapping A :

    Logical Bank 0地址:

    0x1000_0000-0x1008_8000,

    Logical Bank 1地址:

    0x1200_0000-0x1208_8000

  • Mapping B :

    Logical Bank 0地址:

    0x1200_0000-0x1208_8000,

    Logical Bank 1地址:

    0x1000_0000-0x1008_8000

從上圖CYT2B7芯片的memory map可見,TRAVEO? T2G系列的code flash可以分成Single Bank 模式和Dual Bank 模式。通過配置 FLASHC_FLASH_CTL 寄存器的 MAIN_BANK_MODE 位與 MAIN_MAP 位實現(xiàn)對模式的控制。

  • MAIN_BANK_MODE位

    (FLASHC_FLASH_CTL[12]):

    置1啟用Dual Bank模式,置0返回Single Bank模式1。

  • MAIN_MAP位

    (FLASHC_FLASH_CTL[8]):
    僅在Dual Bank模式下有效,0選擇Mapping A,1選擇Mapping B

當然,Work Flash也可配置為Single Bank模式或Dual Bank模式,可通過 FLASHC_FLASH_CTL 寄存器的 WORK_BANK_MODE 位與 WORK_MAP 位進行配置。需要注意的是這幾位在復(fù)位時都會被清除。ROM boot和flash boot不會改變這些配置。換句話說,TRAVEO? T2G系列MCU在 Arm ? Cortex ? -M0+應(yīng)用程序啟動之前總是以Single Bank模式啟動。應(yīng)用程序需要根據(jù)實際需求手動配置Dual Bank功能。

TRAVEO? T2G Dual Bank模式優(yōu)勢

  1. 高可靠性: dual bank結(jié)構(gòu)允許在一個bank進行更新的同時,另一個bank繼續(xù)執(zhí)行當前的固件。這種方式確保了更新過程中設(shè)備的正常運行,避免了因更新失敗導(dǎo)致的系統(tǒng)崩潰。

  2. 無縫切換: 更新完成后,系統(tǒng)可以無縫切換到新固件,無需長時間的停機或重啟過程。

  3. 容錯能力: 如果在更新過程中出現(xiàn)問題,系統(tǒng)可以回滾到舊版本固件,保證設(shè)備的穩(wěn)定性和可靠性。

  4. 減少停機時間: 由于更新可以在后臺進行,設(shè)備的停機時間大大減少,提高了設(shè)備的可用性。

  5. 安全性: TRAVEO? T2G系列MCU配備硬件安全模塊,提供強大的加密和認證機制,確保OTA更新的安全性和完整性。

更新固件實現(xiàn)流程

固件更新:

  1. 假設(shè)CM4/7用戶程序代碼運行在Bank 0即處于Mapping A映射時,接收到通過車輛局域網(wǎng)(如CAN FD或以太網(wǎng))發(fā)送的固件更新請求和數(shù)據(jù)。

  2. CM0+用戶程序開始擦除整個Bank 1的code flash區(qū)域和特定的work flash區(qū)域,其中work flash區(qū)域需要放置remap參數(shù),用于標識下一次復(fù)位后需要設(shè)置Mapping A還是Mapping B,即最新程序存儲于bank 0還是bank 1中。在此示例中,將更新bank 1的code flash,故而下一次復(fù)位后將使用Mapping B。

  3. 完成flash擦除后,CM0+用戶程序?qū)⑾嗤腃M0+用戶程序代碼復(fù)制到Bank 1,并編程新的CM4/7用戶程序代碼。需要注意的是,以CYT2B7芯片為例,無論是運行在Mapping A需要更新bank 1的程序還是運行在Mapping B需要更新bank 0,更新地址皆處于0x1200_0000-0x1208_8000,而非0x1000_0000-0x1008_8000。

  4. 最后,CM0+更新work flash中的remap參數(shù),以便在下一次復(fù)位時切換應(yīng)用程序代碼。

系統(tǒng)啟動與切換

  1. 在復(fù)位后,CM4/7和CM0+開始執(zhí)行ROM boot程序。CM4/7進入等待中斷(WFI)狀態(tài),直到CM0+使能它。

  2. CM0+完成ROM boot和flash boot后,執(zhí)行其用戶程序代碼。在CM0+用戶程序配置FLASHC_FLASH_CTL 寄存器MAIN_BANK_MODE位為dual bank模式,并讀取work flash中的remap參數(shù)。

  3. 如果從work flash讀取的數(shù)據(jù)是預(yù)期值,CM0+會跳轉(zhuǎn)到SRAM代碼,然后通過設(shè)FLASHC_FLASH_CTL 寄存器的MAIN_MAP位將code flash 的mapping切換為“Mapping B”。需要注意的是,改變這一位將改變flash的映射,故必須將此部分切換mapping操作的代碼置于SRAM中執(zhí)行,而不能繼續(xù)在flash中執(zhí)行。

  4. 在完成切換操作后,code flash bank 0的地址將與code flash bank 1的地址交換。

  5. CM0+跳回到code flash中執(zhí)行程序并使能CM4/7。CM4/7和CM0+運行程序地址不變,但此時執(zhí)行的已是bank 1中的新代碼。

請訪問以下鏈接下載相關(guān)示例代碼:

  • TRAVEO? T2G SDL

  • TRAVEO? T2G Sample driver Library Code Examples

如果您在實現(xiàn)過程中遇到問題,可以嘗試在社區(qū)中尋找答案,可能已經(jīng)有人提出了相同的困擾并得到了解決。

Community熱帖舉例:

  • 關(guān)于使用CYT4BB7CEBQ0AESGS切換bank總是死機問題

  • MSP指針跳轉(zhuǎn)

  • CYT2B75-OTA-flash-driver

如果您還未曾使用過TRAVEO? T2G 系列芯片,可以點擊這里快速入門:

  • TRAVEO? T2G MCU初次使用者快速上手:編譯器IAR

  • TRAVEO? T2G MCU初次使用者快速上手:編譯器Green Hills

  • TRAVEO? T2G MCU初次使用者快速上手:編譯器GCC



關(guān)鍵詞: 英飛凌 TRAVEO

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉