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

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

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

OTA的swap Bank AB升級方案

jf_EksNQtU6 ? 來源:ZOTECK ? 2023-08-19 14:41 ? 次閱讀

“ 本文通過從芯片手冊,寄存器到代碼實(shí)現(xiàn)來梳理ota的bank AB升級方案, 舉例芯片 aurix Tc397”

01—內(nèi)存先行

首先要評估flash夠不夠,如果flash都不夠,就無從SWAP機(jī)制可談。

正常情況下,我們的芯片有6塊flash可以用。如下圖

3b666608-3dae-11ee-ac96-dac502259ad0.png

在激活OTA配置的時(shí)候,內(nèi)存映射發(fā)生了變化。如下圖

3baec92a-3dae-11ee-ac96-dac502259ad0.png

從這兩張圖可以看出來,如果打開OTA配置的話,我們實(shí)際上可以用的flash 只有7M. 當(dāng)然如果是別的芯片可用的flash會(huì)更少。這點(diǎn)是一開始就需要評估好的。否則芯片提供的機(jī)制無法滿足需求。

02—配置初始化流程

這里先放一張圖,芯片手冊提供的標(biāo)準(zhǔn)流程,后面會(huì)對每一個(gè)步驟進(jìn)行解析

3bdc01b0-3dae-11ee-ac96-dac502259ad0.png

03—運(yùn)行時(shí)流程

這里也先放一張圖,芯片手冊提供的標(biāo)準(zhǔn)流程,后面會(huì)對每一個(gè)步驟進(jìn)行解析

3c02d074-3dae-11ee-ac96-dac502259ad0.png

04—軟件實(shí)現(xiàn)

從這里開始我們要對第二三兩章的圖進(jìn)行一一實(shí)現(xiàn)。

一般來說是什么樣的流程呢,簡單的來說。下圖

3c31c08c-3dae-11ee-ac96-dac502259ad0.png

05—讀取當(dāng)前bank

當(dāng)配置完SOTA之后,下一次上電,MCU會(huì)做什么呢。會(huì)首先讀取UCB里面的SOTA配置信息。發(fā)現(xiàn)了SOTA被配置上了。則要做下面兩件事

因?yàn)榈刂分赜成淞?,訪問路徑變了,什么意思呢?答:訪問自己的pflash路徑變了。直達(dá)的路線不給訪問了,都需要走上面的總線。所以讀寫自己pflash速度可能會(huì)變慢。

3c56bb1c-3dae-11ee-ac96-dac502259ad0.png

通過下面寄存器自動(dòng)寫入。

3c84c804-3dae-11ee-ac96-dac502259ad0.png

/** rief CPUx Flash Configuration Register 4 */
typedef struct _Ifx_CPU_FLASHCON4_Bits
{
    Ifx_Strict_32Bit DDIS:1;          /**< rief [0:0] Disable direct LPB access (rw) */
    Ifx_Strict_32Bit reserved_1:31;    /**< rief [31:1] internal Reserved */
} Ifx_CPU_FLASHCON4_Bits;

把當(dāng)前的bank信息寫入寄存器,沒錯(cuò)就是下面的寄存器。所以我們可以通過這個(gè)寄存器來獲取當(dāng)前所在的bank.

3ca21328-3dae-11ee-ac96-dac502259ad0.png

SCU_SWAPCTRL.B.ADDRCFG

到這里第一步讀取當(dāng)前的bank已經(jīng)清楚了,并且也清楚什么時(shí)候這個(gè)寄存器被賦值的。

下一步根據(jù)當(dāng)前的bank來選擇刷寫的地址。我們配置mcal的flashload都知道這個(gè)函數(shù)。

06—根據(jù)當(dāng)前bank來刷寫固件

FlsLoader_ReturnType FlsLoader_Write(const FlsLoader_AddressType TargetAddress,
                                     const FlsLoader_LengthType Length,
                                     const uint8* const SourceAddressPtr)

這里面其中一個(gè)形參就是mcu的具體地址。

在使用SOTA時(shí)候,這個(gè)地址是需要注意的。也就是最上面我們給出的兩張圖。如果你下一次需要運(yùn)行在BankB 那么這次刷寫的地址需要有個(gè)offset. 好吧,把上面圖復(fù)制下來仔細(xì)說一下。

3baec92a-3dae-11ee-ac96-dac502259ad0.png

就是這里當(dāng)我們下一次需要運(yùn)行在Bank B 我們的hex/s19文件本身的地址是不需要變化的。假設(shè)我們的hex地址開始是0x80001000 那么 這個(gè)就需要被刷寫到0x80601000這個(gè)地址。當(dāng)我們把地址明確了之后,就和普通的bootloader 刷寫程序一樣。等待刷寫流程走完后。到了我們下一步,配置SOTA 和 寫入 SOTA。這里為什么提了一下寫入呢。因?yàn)檫@個(gè)寫SOTA有點(diǎn)特殊,因?yàn)檫@個(gè)配置信息是存在UCB里面的UCB_SWAP_ORIG/COPY
。這個(gè)位置是可能會(huì)把板子搞壞的位置。

07—配置SOTA

最開始的流程圖在這里就用上了。我們這里先不考慮HSM的情況,這塊容易死機(jī)。

3cf6c594-3dae-11ee-ac96-dac502259ad0.png

首先根據(jù)這個(gè)圖,直到第一步是要擦除掉現(xiàn)在已經(jīng)有的UCB。除非是第一次。否則都需要先擦除一遍。

但是這里要先注意一下SOTA的狀態(tài),是否enable. 通過下面寄存器進(jìn)行配置。具體可以看一下手冊解釋。

3d2b4e5e-3dae-11ee-ac96-dac502259ad0.png

接上面,擦除方式呢?這里屬于Dflash的位置,用Dflash最原始的辦法就可以了。

擦除完之后就要根據(jù)當(dāng)前的bank來選擇寫入的配置字。其實(shí)就是寫入U(xiǎn)CB里面。和上面擦除一樣。這里屬于dflash, 寫的方式可以使用dmu.具體寫的內(nèi)容就是下面的兩個(gè)位置。根據(jù)上面的參數(shù)即可。

3d40a3bc-3dae-11ee-ac96-dac502259ad0.png

具體數(shù)值呢?就是上面提到的0xAA 或者是0x55。下面的confirm呢?這里是固定的數(shù)據(jù)。

3d608f60-3dae-11ee-ac96-dac502259ad0.png

到了這里就到了流程的尾部。

3d7d5884-3dae-11ee-ac96-dac502259ad0.png

系統(tǒng)reset, reset之后 啟動(dòng)過程芯片會(huì)自動(dòng)通過ucb的配置,來切換到另一個(gè)bank.

審核編輯:湯梓紅

聲明:本文內(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)注

    452

    文章

    49941

    瀏覽量

    419623
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1608

    瀏覽量

    147563
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    2943

    瀏覽量

    73729
  • SWAP
    +關(guān)注

    關(guān)注

    0

    文章

    51

    瀏覽量

    12755
  • OTA
    OTA
    +關(guān)注

    關(guān)注

    7

    文章

    559

    瀏覽量

    35062

原文標(biāo)題:OTA-swap Bank AB

文章出處:【微信號:談思實(shí)驗(yàn)室,微信公眾號:談思實(shí)驗(yàn)室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    分享一個(gè)基于flash-swap,實(shí)現(xiàn)升級的freescale資料

    分享一個(gè)基于flash-swap,實(shí)現(xiàn)升級的freescale資料
    發(fā)表于 12-19 17:01

    OTA固件升級教程

    機(jī)智云的OTA服務(wù)主要提供以下功能:OTA通知服務(wù),即離線升級。當(dāng)設(shè)備的固件程序有新版本發(fā)布,OTA 通知服務(wù)會(huì)推送升級通知到設(shè)備。
    發(fā)表于 03-01 18:31

    RK3399平臺(tái)Android鏡像-OTA 本地升級OTA遠(yuǎn)程升級

    平臺(tái)android鏡像版本升級的兩種方式OTA 本地升級、OTA遠(yuǎn)程升級以及OTA
    發(fā)表于 08-11 10:00

    嵌入式OTA升級實(shí)現(xiàn)原理是什么

    目錄一、簡介1.1 概念1.2 優(yōu)點(diǎn)1.3 實(shí)現(xiàn)原理二、MCU OTA升級2.1 制作升級包2.2 下載升級包2.3 驗(yàn)簽升級包2.4 更新
    發(fā)表于 12-14 07:24

    什么是在線OTA升級

    什么是在線OTA升級- OTA是Over-the-Air的簡寫,空中下載技術(shù)的意思。- OTA在線升級在日常消費(fèi)電子產(chǎn)品中很常見,比如手機(jī),
    發(fā)表于 12-22 07:44

    設(shè)備OTA空中升級原理是什么

    1.背景沒有完美的軟件,因?yàn)樵O(shè)計(jì)缺陷、業(yè)務(wù)需求更新,軟件始終都在不斷升級完善。新軟件如何替換正在運(yùn)行的舊軟件就是本文關(guān)注的重點(diǎn),尤其是針對電子產(chǎn)品,設(shè)備空中升級OTA,受限于硬件資源,需要選擇
    發(fā)表于 01-19 07:44

    RT-thread實(shí)現(xiàn)U盤升級的一種OTA方案

    我前面介紹過RT-thread的一種OTA方案,可以通過串口或者網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程升級,那今天在原來的這套方案的基礎(chǔ)上做一些修改,實(shí)現(xiàn)U盤升級。相
    發(fā)表于 01-20 06:17

    OTA升級方法

    簡介OTA升級是嵌入式設(shè)備幾乎都有的一項(xiàng)功能。對于簡單的設(shè)備來說,例如單片機(jī)設(shè)備,OTA升級需要將新的固件刷寫到FLASH上即可;對于高級一點(diǎn)的Linux設(shè)備來說,更加復(fù)雜,首先需要對
    發(fā)表于 01-25 08:12

    如何升級OTA?

    如何升級OTA?
    發(fā)表于 02-14 06:27

    如何實(shí)現(xiàn)OpenHarmony的OTA升級

    OTA簡介隨著設(shè)備系統(tǒng)日新月異,用戶如何及時(shí)獲取系統(tǒng)的更新,體驗(yàn)新版本帶來的新的體驗(yàn),以及提升系統(tǒng)的穩(wěn)定性和安全性成為了每個(gè)廠商都面臨的嚴(yán)峻問題。OTA(Over the Air)提供對設(shè)備遠(yuǎn)程升級
    發(fā)表于 02-07 10:29

    AB swap不支持啟用cache的應(yīng)用嗎?

    AB swap不支持啟用cache的應(yīng)用嗎?Hse切換分區(qū)函數(shù)(AB swap)時(shí),發(fā)現(xiàn)只要打開Dcache,接口函數(shù)就無法運(yùn)行。如果我關(guān)閉 Dcache,它將運(yùn)行
    發(fā)表于 03-20 06:20

    在線升級 | 物聯(lián)網(wǎng)中的OTA升級原理

    從最新的固件方式來看,可以分成以下幾類 0 1 OTA升級 1.1? 概念 OTA:Over-the-Air Technology,即空中下載技術(shù)。 OTA
    的頭像 發(fā)表于 02-03 02:40 ?1293次閱讀

    OTA是什么?OTA升級有何用?

    ota是什么?ota升級是什么意思?很多用智能手機(jī)的人應(yīng)該都會(huì)知道 ota是什么 ,而對于一些剛?cè)腴T的機(jī)友們,ROOT、刷機(jī)、越獄都比較熟悉,但OT
    的頭像 發(fā)表于 03-15 14:36 ?7461次閱讀

    在線升級 | 物聯(lián)網(wǎng)中的OTA升級原理

    從最新的固件方式來看,可以分成以下幾類01OTA升級1.1概念OTA:Over-the-AirTechnology,即空中下載技術(shù)。OTA升級
    的頭像 發(fā)表于 02-02 09:59 ?1405次閱讀
    在線<b class='flag-5'>升級</b> | 物聯(lián)網(wǎng)中的<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>原理

    詳解藍(lán)牙空中升級(BLE OTA)原理與步驟

    如何實(shí)現(xiàn)BLE OTA?什么叫DFU?如何通過UART實(shí)現(xiàn)固件升級?又如何通過USB實(shí)現(xiàn)固件升級?怎么保證升級的安全性?什么叫雙區(qū)(dual ban
    的頭像 發(fā)表于 07-10 09:36 ?5237次閱讀
    詳解藍(lán)牙空中<b class='flag-5'>升級</b>(BLE <b class='flag-5'>OTA</b>)原理與步驟