一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

3天內不再提示

基于TC3xx SWAP特性實現(xiàn)SOTA功能的配置和流程

汽車ECU開發(fā) ? 來源:汽車ECU開發(fā) ? 作者:汽車ECU開發(fā) ? 2022-11-21 09:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

什么是OTA

OTA:Over-the-Air Technology,即空中下載技術。

OTA升級:通過OTA方式實現(xiàn)固件或軟件的升級。通過無線通信方式實現(xiàn)軟件升級,都可以叫OTA升級,比如無線以太網(wǎng)/藍牙等。

HSM:Hardware Security Module 模塊保證刷寫的安全可靠。

OTA 系統(tǒng)功能示意如圖1所示:

1eb9a8a2-6934-11ed-8abf-dac502259ad0.png

圖1 系統(tǒng)功能示意圖

幾種常見的OTA實現(xiàn)方式比較及優(yōu)勢分析

在進行SOTA更新時,需要把舊的應用程序擦除,把新的應用程序寫入。常規(guī)的實現(xiàn)方式需要分別開發(fā)BootLoader程序和APP程序,MCU上電先運行BootLoader,BootLoader根據(jù)情況選擇是否跳轉到APP和是否進行程序更新。具體來說有以下幾種方式:

1、方案一

BootLoader中內置通訊協(xié)議棧,更新時,先向MCU發(fā)送指令使其跳轉到BootLoader,之后先擦除舊APP,在接收新APP的同時直接將其寫入Flash的APP運行地址處。該方案的優(yōu)點是不需要額外的Flash暫存數(shù)據(jù),缺點是BootLoader代碼更復雜,且如果數(shù)據(jù)傳輸發(fā)生中斷,舊的APP將不能被恢復。該方案更適合Flash容量較小的MCU。

2、方案二

更新程序時,由APP接收更新數(shù)據(jù)并暫存于Flash,再將APP更新標志位置位;MCU重啟時,BootLoader檢查更新標志位,如有效,則擦除舊的APP,再將暫存于Flash的新APP數(shù)據(jù)寫入APP運行地址處。該方案的優(yōu)點是更新數(shù)據(jù)的接收由APP完成,BootLoader不需要通訊協(xié)議棧,代碼量更小,且數(shù)據(jù)傳輸中斷時,原有APP不損壞。缺點是需要額外的Flash空間暫存更新數(shù)據(jù)。

3、方案三

在Flash中劃分出兩塊相同大小的區(qū)域,分為A區(qū)和B區(qū),都用來存放APP,但同一時間下只有一個區(qū)的APP是有效的,分別設置一個標志位標識其有效性。初始狀態(tài)下先將APP寫入A區(qū),更新的時候,將新的APP寫入B區(qū),再把A區(qū)的APP擦除,同時更新兩個區(qū)的有效性標志位狀態(tài)。BootLoader中判斷哪個區(qū)的APP有效,就跳轉到哪個區(qū)運行。這種方法不需要重復拷貝APP數(shù)據(jù),但最大的一個缺陷是AB區(qū)的APP程序運行地址不同,需要分別編譯,從而使得可應用性大大降低。

注釋:同時也可以將方案一和方案二相結合,即先采用方案一在BootLoader程序中內置通訊協(xié)議棧,更新時,先向MCU發(fā)送指令使其跳轉到BootLoader。之后接收更新數(shù)據(jù)的時候,采用方案二的方法,先將數(shù)據(jù)暫存于Flash,待數(shù)據(jù)全部接收完成后再擦除舊的APP,寫入新的APP。結合方案一和方案二的優(yōu)點,且能在沒有APP或APP損壞的狀態(tài)下實現(xiàn)程序更新。缺點是BootLoader代碼量更大,F(xiàn)lash空間占用更大。

英飛凌AURIX TC3xx實現(xiàn)上述SOTA方案拓撲圖,如圖2 所示:

1ec0ed6a-6934-11ed-8abf-dac502259ad0.png

圖2 TC3xx實現(xiàn)SOTA方案常見拓撲圖

經(jīng)過上面的分析,可以看到幾種常見方案都有其優(yōu)缺點。但對于TC3xx這一類的MCU來說,F(xiàn)lash容量通常都很大,足夠用,所以通??梢韵劝袮PP暫存下來再進行更新,防止數(shù)據(jù)傳輸中斷導致APP不可用。

同時AURIX TC3xx也支持AB SWAP功能。以方案三為例:TC3xx系列如果使能SOTA功能,它的AB Bank Flash物理地址支持兩種不同物理地址映射到同一個邏輯地址方式(MCU自動從兩種物理地址映射一個虛擬地址),從而使得APP編譯時不需要區(qū)分AB區(qū),使用相同的邏輯地址即可,從而避免了方案三的硬傷,為我們提供了一種最佳的SOTA方案。接下來,我們將以方案三作為基礎,結合實例詳細講解使用英飛凌AURIX TC3xx如何實現(xiàn)更優(yōu)的SOTA。

推薦的OTA實現(xiàn)方式詳解

TC3xx的Flash地址映射方式

首先, TC33x和TC33xED不支持AB SWAP功能,其他TC3xx設備都能夠通過AB SWAP功能實現(xiàn)SOTA軟件更新。

TC3xx 如果使能了AB SWAP功能,F(xiàn)lash大小實際能用的最少減半,TC3xx各系列AB SWAP能力如圖3所示。

1ee91128-6934-11ed-8abf-dac502259ad0.png

圖3 TC3xx支持AB SWAP功能芯片系列及映射關系

啟用SOTA功能時,通過將PFLASH拆分為兩A和B兩個Bank的能力,其中一組可以讀取和執(zhí)行BANK組,而另一組可以寫入新代碼。因此雖然單個物理PFLASH Bank中不支持同時讀寫(RWW)功能,但是通過AB分組支持未使用的BANK組提供安全可靠地對數(shù)據(jù)執(zhí)行寫入和擦除操作的能力來實現(xiàn)SOTA功能。

舉例TC387 AB SWAP特性

為了方便理解英飛凌TC3xx SOTA 功能,我們以TC387為例進行分析。TC387 PFLASH 10M空間映射關系,使能了AB SWAP后,實際使用大小為4M,如圖4所示:

1eefaaec-6934-11ed-8abf-dac502259ad0.png

圖4 TC387 PFLASH 映射關系以及可用PFLASH大小

TC387的4M PFlash地址空間無論是A Bank還是B Bank, 對于用戶來說,統(tǒng)一為虛擬地址0X80000000-0x803FFFFF 4M地址空間。但是刷寫過程中, A bank實際操作物理地址0X80000000-0x803FFFFF 4M空間,B Bank 實際操作物理地址0X8060 0000-0x80AF FFFF 4M空間。

注意,如果使能了AB SWAP功能,TC3xx PFLASH就沒有所謂Local PFLASH和Global PFLASH概念,統(tǒng)一理解為Global PFLASH。CPU訪問PFLASH由之前的CPUx可以通過Local總線訪問本PFLASHx提高訪問速度,變?yōu)镃PUx訪問PFLASH只能通過Global總線從而稍微增加了CPU訪問PFLASH時間。具體參考圖5所示。

1ef8693e-6934-11ed-8abf-dac502259ad0.png

圖5 SOTA功能使能后只能通過Global總線訪問PFLASH

TC3xx的SOTA功能描述

當TC387 SOTA功能激活時,PFLash被劃分為兩部分A Bank和B Bank,一部分用來存儲讀取可執(zhí)行代碼(active bank),另一部分可用來寫入(inactive bank)即刷寫。當APP更新完畢后,兩個部分互換,即切換上面兩種地址映射方式。在標準模式下使用PF0-1作為active bank,后文稱作組A,在Alternate模式下使用PF2-3作為active bank,后文稱作組B,就可以實現(xiàn)第二章節(jié)所述方案三,且能寫入完全相同的APP程序,以相同的地址(邏輯地址)進行運行。


需要注意的是,所有NVM操作都是通過DMU使用PFLASH的物理系統(tǒng)地址執(zhí)行的,也就是說,NVM操作總是使用標準的地址映射,而不管選擇使用哪種地址映射?!癗VM操作”是一個術語,用于任何針對FLASH的命令,如程序、擦除等,但不包括讀取代碼。有關SOTA地址映射的參數(shù)在Flash中的UCB(User Configuration Block)中進行配置,在UCB中配置后,只有當下次MCU復位的時候才會更新配置,后文會有詳細解釋。

TC3xx的SOTA功能實現(xiàn)詳解

實現(xiàn)SOTA功能所需關注配置項

英飛凌AURIX TC3xx實現(xiàn)SOTA功能主要需要配置如圖6所示:

1f00ee6a-6934-11ed-8abf-dac502259ad0.png

圖6 SOTA功能所需關注配置項

1

SOTA模式使能UCB_OTP.PROCONTP.SWAPEN,該參數(shù)決定是否開啟SOTA模式,在寄存器Tuning Protection Configuration中的SWAPEN進行配置,對應UCB定義如下:

使能AB SWAP功能的UCB定義(UCB32-39是ORIG, 40-47 COPY,建議全部都需要配置,內容可以一樣。)如下:

1f2d1fee-6934-11ed-8abf-dac502259ad0.png

1f3364d0-6934-11ed-8abf-dac502259ad0.png

1f5e52b2-6934-11ed-8abf-dac502259ad0.png

1f6b77da-6934-11ed-8abf-dac502259ad0.png

2

配置UCB_SWAP_ORIG/UCB_SWAP_COPY中的UCB_SWAP_ORIG_MARKERLx/UCB_SWAP_COPY_MARKERLx,激活下一次reset需要運行的標準(0x00000055)還是備選(0x000000AA)地址。在寄存器SCU_SWAPCTRL中,可以查看當前激活的是標準還是備選地址。

我們參考下面關于SOTA功能實現(xiàn)的UCB,內容定義:

1f75593a-6934-11ed-8abf-dac502259ad0.png1f7da00e-6934-11ed-8abf-dac502259ad0.png

1f87dd30-6934-11ed-8abf-dac502259ad0.png

1f9647ee-6934-11ed-8abf-dac502259ad0.png

1fbb53a4-6934-11ed-8abf-dac502259ad0.png

3

同1描述UCB塊,只要使能了SOTA就會自動禁止CPU通過本地總線訪問PFLASH功能,紅色方框中寄存器值自動為1,即禁止。

1fc09b7a-6934-11ed-8abf-dac502259ad0.png

1fc585fe-6934-11ed-8abf-dac502259ad0.png

1fd09a48-6934-11ed-8abf-dac502259ad0.png

SOTA功能實現(xiàn)時SWAP配置及流程

SOTA功能應用時:分系統(tǒng)剛啟動時SWAP配置和系統(tǒng)運行時SWAP配置。

系統(tǒng)啟動時SWAP配置:

如果SOTA功能使能,那么代碼生成的文件至少需要刷進Active Bank。為了信息安全,建議通過UCB_PFLASH設置相應的sectors讀寫保護。

起始地址需要在UCB_BMHD配置好。

如果當前選擇的是標準地址,那么0x00000055H需要寫入UCB_SWAP的MARKERL0.SWAP這個域。然后通過把MARKERL0.SWAP的地址寫入MARKERH0.ADDR予以確認;同時,將CONFIRMATIONL0.CODE的地址寫入CONFIRMATIONH0.ADDR;同時,將57B5327FH寫入57B5327FH予以確認。

UCB_ OTP一次性刷寫保護以設置所需的OTP、WOP和標定保護。請注意,任何受OTP或WOP保護的扇區(qū)都不能使用新映像重新編程。

如果使能了HSM,主核代碼和HSM代碼需要同時刷入到AB bank的PFLASH S0-S39。

任何受OTP保護的HSM扇區(qū)都不能使用新映像重新編程。

最后,由于SWAPEN是在UCB_OTP里面設置的,所以要在下一個重啟后SOTA的使能才有效。具體流程,參考圖7所示:

1fda7c34-6934-11ed-8abf-dac502259ad0.png

圖7 系統(tǒng)剛啟動時SWAP配置及流程

系統(tǒng)運行時SWAP配置:

下面是程序正在運行時,需要實現(xiàn)軟件SWAP到新程序的配置流程。

為了可以正確切換到新程序中,首先新的程序需要刷到對應的非激活的PFLASH Bank,如果非激活的BANK中對應的sectors使能了讀寫保護,那么刷寫之前要先解保護。

切記:由于NVM特性,PFLASH 和DFLASH不能同時操作。因此,在應用程序中運行的EEPROM驅動程序和執(zhí)行BOOT刷寫之間需要進行一些協(xié)調。確保要寫入的新程序所用的的PFLASH正確無誤。例如:如果在PFLASH的SOTA重新編程/擦除期間出現(xiàn)硬故障,可以使用替換邏輯扇區(qū)功能(有關更多詳細信息,請參閱DMU章節(jié))。此功能允許用戶使用“替換邏輯扇區(qū)”命令序列將故障邏輯扇區(qū)映射到冗余扇區(qū)。

由于UCB刷寫次數(shù)的限制(100次),我們可以通過16 個SWAP配置依次使用來增加SWAP的次數(shù)(100*16=1600次)。方式流程如下圖8所示:

注意:上一次用過的配置,CONFIRMATIONL(x-1) ) 和CONFIRMATIONH(x-1) 全寫為1。

增加SWAP次數(shù),可以通過UCB_SWAP_ORIG/UCB_SWAP_COPY配置如下寄存器:

1f9647ee-6934-11ed-8abf-dac502259ad0.png

1feb935c-6934-11ed-8abf-dac502259ad0.png

1ff34214-6934-11ed-8abf-dac502259ad0.png

20015188-6934-11ed-8abf-dac502259ad0.png

20084e0c-6934-11ed-8abf-dac502259ad0.png

增加SWAP次數(shù)方法流程如圖8所示:

200eb27e-6934-11ed-8abf-dac502259ad0.png

圖8 增加SWAP次數(shù)方法流程

新的配置寫好后,選擇下一次要激活的程序,等下一次重啟即運行新刷寫的程序。詳細流程如圖9所示:

2014c664-6934-11ed-8abf-dac502259ad0.png

圖9 系統(tǒng)運行時SWAP配置

總結

TC3xx SWAP特性實現(xiàn)OTA功能后,特別注意以下五點:

Flash大小實際能用的最少減半,詳情參考圖3。

CPU訪問Flash只能通過Global總線從而稍微增加了訪問時間,參考圖5。詳細參數(shù)請查相應的數(shù)據(jù)手冊。

PFLASH的prefetch功能被禁止,同樣會稍微影響整個系統(tǒng)的性能。

功能安全方面:Active Bank 的safety_endinit保護依舊存在,但是Inactive Bank的safety_endinit保護無效。

信息安全方面:Active Bank 和Inactive Bank同樣受信息安全相關寄存器的保護。

至此,TC3xx SWAP特性實現(xiàn)SOTA功能的配置和流程介紹完畢。

審核編輯:郭婷

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

    關注

    41

    文章

    5635

    瀏覽量

    175938
  • 藍牙
    +關注

    關注

    116

    文章

    6078

    瀏覽量

    174009
  • OTA
    OTA
    +關注

    關注

    7

    文章

    612

    瀏覽量

    36576
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TC397XX如何使用 EB 堆棧處理 IRQ?

    我們正在使用 TC397XX。我遇到的問題是 EB Stack 中沒有 IRQ 驅動程序。那么,我們如何使用 EB 堆棧處理 IRQ。 從哪個 AUTOSAR 版本開始,IRQ 驅動程序被刪除了?
    發(fā)表于 07-15 06:20

    Aurix TC36x MTU SSH4 和 SSH9寄存器值錯誤的原因?

    有所不同。 我一直不明白,為什么 MTU SSH4 和 SSH9 會在不改變 DMU_HF_PROCONRAM 寄存器的情況下發(fā)生改變 根據(jù) TC3xx 安全手冊 2.0,只要 SSH4 和 SSH9
    發(fā)表于 07-14 07:52

    請問CCG5中怎么做DR_SWAP?

    請教個問題,在 CCG5代碼中怎么實現(xiàn)DR_SWAP?我們配置了端口 0 作為源對外充電,但是我們希望 PORT0 做了 UFP。我們是這樣寫的代碼:案例 APP_EVT_PD_合同談判_完成
    發(fā)表于 05-26 07:23

    當 ccg3pa 收到 pr_swap 命令時,它不會執(zhí)行 eval_pr_swap 函數(shù),為什么?

    角色交換命令。 我在 swap.c-eval_pr_swap 函數(shù)中添加了調試 uart 消息。 但我發(fā)現(xiàn),當 ccg3pa 收到 pr_swap 命令時,它不會執(zhí)行 eval_pr_swa
    發(fā)表于 05-26 06:15

    請問tc3xx如何配置多個dedicatedRxBuffersNumber?

    tc3xx如何配置多個dedicatedRxBuffersNumber?
    發(fā)表于 04-21 07:53

    基于Infineon TC4D9+TLF4D985的Aurix StartKit

    英飛凌推出新一代AURIX TC4xx系列MCU,專為電動汽車和自動駕駛技術設計,解決處理器性能瓶頸,降低系統(tǒng)成本,加速產(chǎn)品上市。 在電池管理系統(tǒng)(BMS)中,TC4xx通過強大的PPU實現(xiàn)精準電池
    的頭像 發(fā)表于 04-16 14:16 ?736次閱讀
    基于Infineon <b class='flag-5'>TC</b>4D9+TLF4D985的Aurix StartKit

    優(yōu)化TC3xx系統(tǒng)運行效率的策略

    目錄 1.Tricore尋址模式 2.lsl鏈接文件Section分析 3.限定符對于代碼的影響 4.小結 1.Tricore尋址模式 今天聊個好玩的事情。 之前ARM培訓的時候,他們對于函數(shù)形參
    的頭像 發(fā)表于 11-16 11:00 ?1398次閱讀
    優(yōu)化<b class='flag-5'>TC3xx</b>系統(tǒng)運行效率的策略

    CC33xx WLAN特性

    電子發(fā)燒友網(wǎng)站提供《CC33xx WLAN特性.pdf》資料免費下載
    發(fā)表于 10-29 09:14 ?0次下載
    CC33<b class='flag-5'>xx</b> WLAN<b class='flag-5'>特性</b>

    Simplelink CC33xx安全特性

    電子發(fā)燒友網(wǎng)站提供《Simplelink CC33xx安全特性.pdf》資料免費下載
    發(fā)表于 09-03 11:49 ?0次下載
    Simplelink CC33<b class='flag-5'>xx</b>安全<b class='flag-5'>特性</b>

    CC13xx/CC26xx硬件配置和PCB設計注意事項

    電子發(fā)燒友網(wǎng)站提供《CC13xx/CC26xx硬件配置和PCB設計注意事項.pdf》資料免費下載
    發(fā)表于 09-03 11:12 ?0次下載
    CC13<b class='flag-5'>xx</b>/CC26<b class='flag-5'>xx</b>硬件<b class='flag-5'>配置</b>和PCB設計注意事項

    DP83TC812、DP83TC813和DP83TC814:Open Alliance規(guī)范合規(guī)性測試所用的配置

    電子發(fā)燒友網(wǎng)站提供《DP83TC812、DP83TC813和DP83TC814:Open Alliance規(guī)范合規(guī)性測試所用的配置.pdf》資料免費下載
    發(fā)表于 08-27 11:22 ?0次下載
    DP83<b class='flag-5'>TC</b>812、DP83<b class='flag-5'>TC</b>813和DP83<b class='flag-5'>TC</b>814:Open Alliance規(guī)范合規(guī)性測試所用的<b class='flag-5'>配置</b>

    請問AURIX TC3xx tricore架構下浮點運算和將浮點數(shù)小數(shù)點去掉變成整數(shù)來計算哪種方式更加節(jié)省算力?

    AURIX TC3xx tricore架構下浮點運算和將浮點數(shù)小數(shù)點去掉變成整數(shù)來計算哪種方式更加節(jié)省算力? 比如一個浮點數(shù)12.89V,如果將其寫成12890mV,再參與計算,哪種方式更加節(jié)省算力
    發(fā)表于 08-26 06:54

    請問EB tresos如何配置TC39XX的Flexray?

    EB tresos如何配置TC39XX 的 Flexray,在網(wǎng)絡上找不到相關的配置方法。可以提供一下 EB 的配置工程嗎?
    發(fā)表于 08-14 08:14

    TC367 SYS RESET/APP RESET之后RAM不會清除怎么解決?

    我看了單片機干貨|AURIX? TC3xx 復位后RAM不初始化方法 - 知乎 (zhihu.com) 這篇文章,并且設置了UCB(僅僅設置了DFLASH_ORIG) ? 然后設置了一些變量
    發(fā)表于 07-24 07:23

    ERAY (FlexRay) 模塊卡在INTEGRATION_LISTEN狀態(tài),為什么?

    大家好, 我有 TC3XX 入門套件板,我想實施并測試 FlexRay 協(xié)議。 我的想法是在開發(fā)板上的兩個可用 ERAY 模塊之間實現(xiàn)環(huán)回。 我以演示項目為起點,只添加了 ERAY 模塊 1
    發(fā)表于 07-24 06:54