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

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

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

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

深入探討i.MX RT1010 OTA存儲(chǔ)結(jié)構(gòu)

恩智浦MCU加油站 ? 來源:恩智浦MCU加油站 ? 作者:恩智浦MCU加油站 ? 2021-10-29 16:14 ? 次閱讀

最近恩智浦在Github發(fā)布了一套基于MCU的OTA工程,該工程支持i.MX RT系列,且支持security的相關(guān)功能,得到了用戶的廣泛關(guān)注。

這套工程是基于恩智浦的EVK開發(fā)板,板載Flash的容量也就決定了整個(gè)OTA工程的存儲(chǔ)結(jié)構(gòu)。但是不同容量的flash,OTA的存儲(chǔ)結(jié)構(gòu)也不盡相同。本文將最近支持客戶時(shí)的一些經(jīng)驗(yàn)予以總結(jié),當(dāng)大家更換flash的時(shí)候,可以更快的完成OTA工程配置。本文介紹的方案為基于Remap功能實(shí)現(xiàn)OTA的方法。整個(gè)OTA的存儲(chǔ)結(jié)構(gòu)可以用下圖進(jìn)行表示,即 SBL(Secure Bootloader), OTA Flag Data,Slot1,Slot2和Customer Data區(qū)域。

SBL的主要功能是用于在芯片POR啟動(dòng)后,根據(jù)OTA flag data的信息,決定存儲(chǔ)在Slot1或者Slot2的程序進(jìn)行運(yùn)行。除此之外,還支持程序的驗(yàn)簽,回滾等功能。

OTA Flag Data區(qū)域主要是用于存儲(chǔ)OTA升級(jí)過程中的一些標(biāo)志位信息,根據(jù)相關(guān)的標(biāo)志位信息SBL進(jìn)行image升級(jí),回滾和跳轉(zhuǎn)到對(duì)應(yīng)的slot運(yùn)行程序。

Slot1和Slot2用于存儲(chǔ)應(yīng)用程序。

Customer Data用于存儲(chǔ)客戶的一些信息(可選項(xiàng),非必須)。

本文將就上述幾個(gè)區(qū)域的存儲(chǔ)空間分配,及中間的一些需要注意的點(diǎn)予以介紹。

基本的硬件環(huán)境是i.MX RT1010-EVK開發(fā)板,客戶的實(shí)際需求是使用一顆容量為512KB的Flash,且不需要使用Security相關(guān)的功能。因此在禁用Security功能后,使用IAR編譯出一個(gè)大小為25KB的SBL.bin文件。由于OTA中使用的Remap功能需要4KB對(duì)齊,以及Flash的最小擦除容量是4KB,因此SBL分配的容量是28KB,則此時(shí)SBL的地址分配空間為:FunctionAdd_StartAdd_End

SBL0x6000 00000x6000 6FFF

OTA Flag data盡管只有32Bytes的數(shù)據(jù),但是在升級(jí)過程中這些數(shù)據(jù)需要讀寫擦,但Flash的擦除過程需要按照Sector的大小進(jìn)行,因此也至少需要留存4KB的空間,則此時(shí)OTA Flag data的地址及空間分配為:

fd68864e-388a-11ec-82a8-dac502259ad0.png

接下來就是Slot1和Slot2,Slot1和Slot2要使用Remap的功能進(jìn)行切換,Remap的地址需要4K對(duì)齊,則此時(shí)用于存儲(chǔ)應(yīng)用層程序的地址空間分配為:

FunctionAdd_StartAdd_End

Slot10x6000 80000x6004 3FFF

Slot20x6004 40000x6007 FFFF

此時(shí),細(xì)心的朋友們就會(huì)發(fā)現(xiàn),完整的512K Flash空間已經(jīng)被使用光了。沒錯(cuò),這次客戶不需要用這個(gè)CustomerData區(qū)域,希望把更多的空間用于應(yīng)用程序。

在完成了OTA存儲(chǔ)結(jié)構(gòu)按功能地址分配之后,我們進(jìn)行一些細(xì)部探究。

首先看SBL,SBL區(qū)間主要包括用于Flash boot的相關(guān)信息,例如IVT, Flash Config Block等。這部分代碼基本上不需要改動(dòng),可以直接使用。

在地址空間分配上,可以將SBL區(qū)域視為一個(gè)可以從Flash XIP boot的hello word工程。

fdc48da4-388a-11ec-82a8-dac502259ad0.png

接著看一下OTAFlag Data區(qū)間的地址分配,OTA Flag Data共計(jì)32個(gè)字節(jié),用于指示OTA過程中的三種狀態(tài),升級(jí),回滾以及正常工作(沒有升級(jí)和回滾發(fā)生)。

該32字節(jié)通常存儲(chǔ)在Slot1的首地址之前的32字節(jié)位置。

ff92553a-388a-11ec-82a8-dac502259ad0.png

最后來看Slot1和Slot2的地址空間分配。

應(yīng)用程序的首地址,即中斷向量表的首地址并不是從Slot1的首地址開始的,原因有兩點(diǎn)

第一在image的起始地址需要增加用于OTA的ImageHeader信息,該Image Header的大小為32字節(jié)。

其次,對(duì)于應(yīng)用程序中中斷向量表的起始地址,需要進(jìn)行計(jì)算。其基本的計(jì)算原則是:中斷向量的數(shù)量 * 4的結(jié)果,向上對(duì)齊到2的次冪整數(shù)倍??碦T1010的中斷向量共計(jì)256個(gè),但是真正可以使用的是96個(gè)。則此時(shí)的計(jì)算結(jié)果是:96 * 4 = 384。向上對(duì)齊到2次冪整數(shù)倍,則為512即0x200。

所以,應(yīng)用程序的真正起始地址需要在Slot1的基礎(chǔ)上,向后調(diào)整0x200。

Slot2的空間分配也需要滿足這個(gè)條件。

fff0a036-388a-11ec-82a8-dac502259ad0.png

最終完整的地址空間分配如下圖所示:

006545f8-388b-11ec-82a8-dac502259ad0.png

當(dāng)需要對(duì)OTAFlag Data以及Slot地址進(jìn)行分配,可以在程序中搜索下圖中的關(guān)鍵詞進(jìn)行更改,對(duì)下面的表格進(jìn)行調(diào)整。

通常需要進(jìn)行關(guān)注的關(guān)鍵地址為:BOOT_FLASH_ACT_APP和 BOOT_FLASH_CAND_APP。其余的地址信息,與這兩個(gè)地址信息存在依賴關(guān)系,程序內(nèi)部可根據(jù)這兩個(gè)地址信息進(jìn)行計(jì)算。

需要注意的是,本文中涉及到的OTA方法,是基于Remap功能實(shí)現(xiàn)的,因此僅僅適用于除RT1050,RT1020, RT1024, RT1015以外的RT系列。

最后,向在本次客戶支持中提供大量協(xié)助的Tim, Gavin, Xiaoli表示感謝。

差點(diǎn)忘了,原工程的下載地址是:

https://github.com/NXPmicro/sbl

https://github.com/NXPmicro/sfw

編輯:jq

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

    關(guān)注

    459

    文章

    51927

    瀏覽量

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

    關(guān)注

    7

    文章

    600

    瀏覽量

    36034
  • Boot
    +關(guān)注

    關(guān)注

    0

    文章

    153

    瀏覽量

    36441
  • SBL
    SBL
    +關(guān)注

    關(guān)注

    0

    文章

    4

    瀏覽量

    8440

原文標(biāo)題:i.MX RT1010 OTA存儲(chǔ)結(jié)構(gòu)小記

文章出處:【微信號(hào):NXP_SMART_HARDWARE,微信公眾號(hào):恩智浦MCU加油站】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何禁用i.MX RT1170 MCU中的M4內(nèi)核?

    如何禁用 i.MX RT1170 MCU 中的 M4 內(nèi)核? 您能否提供具體的可行方法? 或者是否可以將內(nèi)核的工作時(shí)鐘頻率降低到 0 ?
    發(fā)表于 04-09 07:28

    NXP基于i.MX 91應(yīng)用處理器打造的FRDM i.MX 91開發(fā)板特性參數(shù)詳解

    FRDM i.MX 91開發(fā)板。該開發(fā)板基于i.MX 91應(yīng)用處理器打造,專為加速工業(yè)與物聯(lián)網(wǎng)的開發(fā)而設(shè)計(jì),提供了一種經(jīng)濟(jì)高效、安全且具有多種連接選項(xiàng)的解決方案。
    的頭像 發(fā)表于 03-21 09:37 ?2814次閱讀
    NXP基于<b class='flag-5'>i.MX</b> 91應(yīng)用處理器打造的FRDM <b class='flag-5'>i.MX</b> 91開發(fā)板特性參數(shù)詳解

    i.MX RT 1176上正常運(yùn)行代碼時(shí)與使用IAR調(diào)試代碼時(shí)存在一些奇怪的差異,為什么?

    我在 i.MX RT 1176 上正常運(yùn)行代碼時(shí)的行為與使用 IAR 調(diào)試代碼時(shí)的行為之間存在一些奇怪的差異,并注意到這是由于堆棧指針的初始化方式造成的。 我的重置向量表將其指向 DTC 的頂部
    發(fā)表于 03-17 07:26

    NXP i.MX 93 開發(fā)板#提供高效的機(jī)器學(xué)習(xí) 支持高能效的邊緣計(jì)算

    Wi-Fi ^?^ 和藍(lán)牙功能,非常適合工業(yè)和物聯(lián)網(wǎng)應(yīng)用。其主要功能包括HDMI顯示接口、LPDDR4/LPDDR4X存儲(chǔ)器、用于快速啟動(dòng)的eMMC存儲(chǔ)器、PMIC和擴(kuò)展選項(xiàng)。該板支持面向i.MX處理器
    的頭像 發(fā)表于 03-10 15:30 ?767次閱讀
    NXP <b class='flag-5'>i.MX</b> 93 開發(fā)板#提供高效的機(jī)器學(xué)習(xí) 支持高能效的邊緣計(jì)算

    恩智浦推出FRDM i.MX 93開發(fā)板

    備受嵌入式開發(fā)者青睞的恩智浦FRDM開發(fā)平臺(tái),迎來了一位新成員——FRDM i.MX 93開發(fā)板,這也是第一塊配備i.MX MPU的FRDM開發(fā)板,意味著強(qiáng)大的FRDM生態(tài)合作體系,已經(jīng)擴(kuò)展到i.MX應(yīng)用處理器。
    的頭像 發(fā)表于 02-21 14:22 ?820次閱讀

    i.MX RT處理器上使用PXP實(shí)現(xiàn)縮放和旋轉(zhuǎn)組合操作

    本文主要探討如何使用PXP實(shí)現(xiàn)縮放和旋轉(zhuǎn)組合操作,PXP是NXP推出的一個(gè)2D圖形加速器,主要完成對(duì)圖像的數(shù)據(jù)格式轉(zhuǎn)換、固定角度旋轉(zhuǎn)(90°,180°,270°),任意比例縮放、混色,移位以及翻轉(zhuǎn)等功能。運(yùn)行平臺(tái)為i.MX RT
    的頭像 發(fā)表于 02-20 10:53 ?826次閱讀
    在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>處理器上使用PXP實(shí)現(xiàn)縮放和旋轉(zhuǎn)組合操作

    恩智浦i.MX 94應(yīng)用處理器如何變革工業(yè)和汽車連接

    恩智浦半導(dǎo)體發(fā)布i.MX 94系列應(yīng)用處理器,為工業(yè)和汽車連接設(shè)定了新的標(biāo)準(zhǔn)。作為i.MX 9系列應(yīng)用處理器的最新成員,i.MX 94旨在提供高性能和低延遲的實(shí)時(shí)計(jì)算能力,這是工業(yè)自動(dòng)化和汽車信息服務(wù)應(yīng)用的關(guān)鍵功能。
    的頭像 發(fā)表于 01-17 10:51 ?563次閱讀

    恩智浦i.MX RT700系列MCU的優(yōu)勢(shì)

    作為邊緣智能時(shí)代的嵌入式工程師,你對(duì)一款理想的MCU有何期待?高性能、高集成、低功耗、更安全,以及出眾的AI推理能力……恩智浦半導(dǎo)體新近發(fā)布的i.MX RT700跨界MCU系列,就是你想要的答案!
    的頭像 發(fā)表于 12-09 09:16 ?1194次閱讀

    恩智浦發(fā)布i.MX 94系列應(yīng)用處理器

    恩智浦半導(dǎo)體發(fā)布i.MX 9系列應(yīng)用處理器的新成員i.MX 94系列。該系列旨在用于工業(yè)控制、可編程邏輯控制器(PLC)、遠(yuǎn)程信息處理、工業(yè)和汽車網(wǎng)關(guān)以及樓宇和能量控制。
    的頭像 發(fā)表于 11-26 17:48 ?1029次閱讀

    NXP專為邊緣AI打造的i.MX RT700跨界MCU到底強(qiáng)在哪?

    i.MX RT700系列提供了高性能、高集成度、先進(jìn)功能和高能效的優(yōu)化組合,為支持智能AI的邊緣端設(shè)備賦能,例如可穿戴設(shè)備、消費(fèi)電子醫(yī)療設(shè)備、智能家居設(shè)備和HMI設(shè)備。 在i.MX RT
    發(fā)表于 11-08 09:40 ?1527次閱讀
    NXP專為邊緣AI打造的<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>700跨界MCU到底強(qiáng)在哪?

    如何在i.MX RT微控制器上初始化LWIP協(xié)議棧

    i.MX RT微控制器上初始化LWIP協(xié)議棧是一個(gè)復(fù)雜但有趣的過程,它涉及多個(gè)步驟和關(guān)鍵組件的配置.
    的頭像 發(fā)表于 10-12 11:48 ?639次閱讀
    如何在<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>微控制器上初始化LWIP協(xié)議棧

    恩智浦推出全新i.MX RT700跨界MCU系列

    高度集成的全新i.MX RT700跨界MCU旨在顯著節(jié)省功耗,配備eIQ Neutron神經(jīng)處理單(NPU),可在邊緣端提供高達(dá)172倍的AI加速。
    的頭像 發(fā)表于 10-12 11:41 ?1092次閱讀

    i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板

    電子發(fā)燒友網(wǎng)站提供《i.MX Linux開發(fā)實(shí)戰(zhàn)指南—基于野火i.MX系列開發(fā)板.pdf》資料免費(fèi)下載
    發(fā)表于 10-10 17:23 ?12次下載

    使用TPS65023的NXP i.MX 7電源設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《使用TPS65023的NXP i.MX 7電源設(shè)計(jì).pdf》資料免費(fèi)下載
    發(fā)表于 09-30 10:38 ?1次下載
    使用TPS65023的NXP <b class='flag-5'>i.MX</b> 7電源設(shè)計(jì)

    恩智浦i.MX RT1170 uSDHC eMMC啟動(dòng)時(shí)間

    大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是恩智浦i.MX RT1170 uSDHC eMMC啟動(dòng)時(shí)間。
    的頭像 發(fā)表于 08-08 15:32 ?934次閱讀
    恩智浦<b class='flag-5'>i.MX</b> <b class='flag-5'>RT</b>1170 uSDHC eMMC啟動(dòng)時(shí)間