91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

OTA的swap Bank AB升級方案

jf_EksNQtU6 ? 來源:ZOTECK ? 2023-08-19 14:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

01—內(nèi)存先行

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

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

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

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

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

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

02—配置初始化流程

這里先放一張圖,芯片手冊提供的標準流程,后面會對每一個步驟進行解析

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

03—運行時流程

這里也先放一張圖,芯片手冊提供的標準流程,后面會對每一個步驟進行解析

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

04—軟件實現(xiàn)

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

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

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

05—讀取當前bank

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

因為地址重映射了,訪問路徑變了,什么意思呢?答:訪問自己的pflash路徑變了。直達的路線不給訪問了,都需要走上面的總線。所以讀寫自己pflash速度可能會變慢。

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

通過下面寄存器自動寫入。

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;

把當前的bank信息寫入寄存器,沒錯就是下面的寄存器。所以我們可以通過這個寄存器來獲取當前所在的bank.

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

SCU_SWAPCTRL.B.ADDRCFG

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

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

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

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

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

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

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

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

07—配置SOTA

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

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

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

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

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

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

擦除完之后就要根據(jù)當前的bank來選擇寫入的配置字。其實就是寫入UCB里面。和上面擦除一樣。這里屬于dflash, 寫的方式可以使用dmu.具體寫的內(nèi)容就是下面的兩個位置。根據(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之后 啟動過程芯片會自動通過ucb的配置,來切換到另一個bank.

審核編輯:湯梓紅

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

    關注

    463

    文章

    54017

    瀏覽量

    466321
  • FlaSh
    +關注

    關注

    10

    文章

    1749

    瀏覽量

    155545
  • 內(nèi)存
    +關注

    關注

    9

    文章

    3211

    瀏覽量

    76382
  • SWAP
    +關注

    關注

    0

    文章

    52

    瀏覽量

    13686
  • OTA
    OTA
    +關注

    關注

    7

    文章

    628

    瀏覽量

    38305

原文標題:OTA-swap Bank AB

文章出處:【微信號:談思實驗室,微信公眾號:談思實驗室】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    瑞薩電子MCU無感OTA升級功能介紹

    在工業(yè)控制、電機驅動乃至物聯(lián)網(wǎng)邊緣節(jié)點中,固件在線升級OTA)已成為產(chǎn)品生命周期管理的標配。然而傳統(tǒng)OTA往往伴隨停機、風險與低效。瑞薩電子MCU中的Dual?Bank閃存架構為工程
    的頭像 發(fā)表于 05-15 14:36 ?1758次閱讀
    瑞薩電子MCU無感<b class='flag-5'>OTA</b><b class='flag-5'>升級</b>功能介紹

    STM32H743 FLASH SWAP實現(xiàn)IAP升級出錯了怎么解決?

    行FLASH SWAP,然后看門狗重啟,結果升級后,程序無法啟動,同時也無法進行仿真了,flash下載不了,到擦除的時候就出錯了(timeout),跪求大佬能給分析一下!flash的過程如下://獲取程序內(nèi)存
    發(fā)表于 03-12 07:25

    藍牙空中升級(OTA)原理

    1. 概述 所謂DFU(Device Firmware Update),就是設備固件升級的意思,而OTA(Over The Air)是實現(xiàn)DFU的一種方式而已,準確說,OTA的全稱應該是OTA
    發(fā)表于 07-21 14:50

    針對雙bank和單bank的使用方法建議

    (推薦場景) 文檔普遍把雙?bank作為 首選、安全方案 :[nRF5 dual-bank 優(yōu)先] 產(chǎn)品對“升級失敗不能變磚”要求高 例如量產(chǎn)設備、現(xiàn)場難以接觸維護的設備。
    發(fā)表于 02-12 10:24

    什么是在線OTA升級

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

    設備OTA空中升級原理是什么

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

    OTA升級方法

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

    如何升級OTA?

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

    AB swap不支持啟用cache的應用嗎?

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

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

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

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

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

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

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

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

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

    OTA軟件升級管理系統(tǒng)

    OTA(Over-the-Air Technology,空中下載技術)是通過空中下載的方式對車輛中的軟件進行遠程升級。經(jīng)緯恒潤OTA軟件升級管理系統(tǒng)基于軟件架構、應用架構、業(yè)務架構和技
    的頭像 發(fā)表于 01-13 09:39 ?1599次閱讀
    <b class='flag-5'>OTA</b>軟件<b class='flag-5'>升級</b>管理系統(tǒng)

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

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