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

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

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

常用的幾種IAP升級技術(shù)方案是哪些

汽車電子技術(shù) ? 來源:大橙子瘋嵌入式 ? 作者:大橙子瘋 ? 2023-02-15 15:42 ? 次閱讀

前言

關(guān)于 IAP 技術(shù),做過 bootloader 的想必很熟悉(IAP全稱 In Application Programming,即應(yīng)用編程),和 ISP(全稱 In System Programming,即系統(tǒng)編程)不同,ISP 一般都是通過專業(yè)的調(diào)試器或者下載器對單片機(jī)內(nèi)部的 Flash 存儲器進(jìn)程編程(如JTAG等),而 IAP 技術(shù)是從結(jié)構(gòu)上將 Flash 儲存器映射分為兩個或者多個分區(qū),在一個分區(qū)中對其他分區(qū)進(jìn)行編程,這個分區(qū)通常稱為 bootloader。

OTA(全稱 Over The Air Technology,即云端下載技術(shù),也叫做“空中下載技術(shù)”),其基礎(chǔ)是 IAP 技術(shù), 可以簡單理解為 IAP 的另一種實(shí)現(xiàn)方式,通常采用的是無線升級方式(串口、CAN 等屬于“直接線控升級”),如通過藍(lán)牙近距離無線升級、ESP8266 網(wǎng)絡(luò)升級等

IAP 技術(shù)方案

關(guān)于 ISP 技術(shù)這里不過多介紹,有興趣的朋友可以自己找資料看看。

在實(shí)現(xiàn) IAP 技術(shù)時,針對通過 bootloader 更新 app 程序通常會有多種實(shí)現(xiàn)方式,可不僅僅只是 Flash 劃分兩個分區(qū),然后用 bootloader 對 app 分區(qū)編程這一種方式。

劃分兩個分區(qū),只有bootloader和app分區(qū),這個是最簡單也是最基本的功能;而在實(shí)際產(chǎn)品開發(fā)過程中,需要考慮多種因素和需求,如:升級失敗了該怎么辦?想恢復(fù)出廠的版本怎么辦?等等一系列的問題。

開發(fā)IAP時,最基本的功能就是要有接收新程序的通信協(xié)議(用來接收固件程序,以下簡稱通信協(xié)議棧),下面介紹幾種常見的實(shí)現(xiàn)方式:

bootloader 程序集成通信協(xié)議棧

以下方案是由 bootlodaer 集成通信協(xié)議棧,編程操作均在 bootloader 中實(shí)現(xiàn),APP 程序中基本不涉及編程操作。

優(yōu)點(diǎn):在沒有 APP 程序或者 APP 程序異常的時候也能更新程序

缺點(diǎn):bootloader 相對復(fù)雜,且程序 Flash 占用空間大

方案一:更新程序時,發(fā)送升級指令給到 MCU ,MCU 通過復(fù)位或者跳轉(zhuǎn)的方式進(jìn)入 bootloader 中,bootloader 首先擦除當(dāng)前 APP 程序后,開始接收新的 APP 程序并直接寫入 APP 分區(qū)中。

| booloader Flash | app Flash |

方案二:更新程序時,發(fā)送升級指令給到 MCU ,MCU 通過復(fù)位或者跳轉(zhuǎn)的方式進(jìn)入 bootloader 中,bootloader 不會擦除當(dāng)前 APP 程序,而是將接收到的新 APP 程序?qū)懭雱澐趾玫目瞻?Flash 中,等全部接收完成并校驗(yàn)成功時,才開始擦除當(dāng)前 APP 程序,并將接收完成的新 APP 程序?qū)懭搿?/p>

| booloader Flash | app Flash | 空白Flash |

方案三:更新程序時,發(fā)送升級指令給到 MCU ,MCU 通過復(fù)位或者跳轉(zhuǎn)的方式進(jìn)入 bootloader 中,bootloader 不會擦除當(dāng)前 APP 程序(APP1),而是將接收到的新 APP 程序?qū)懭胍巡脸?APP2 中,等全部接收完成并校驗(yàn)成功時,將 APP1 程序有效標(biāo)志清除,設(shè)置 APP2 程序有效標(biāo)志,bootloader 根據(jù)有效標(biāo)志選擇需要進(jìn)入的 APP 程序 (同理:APP2下次更新程序時,先擦除 APP1 的無效程序,然后將接收的程序?qū)懭?APP1,接收完成并互轉(zhuǎn)有效標(biāo)志)。

| booloader Flash | app1 Flash | app2 Flash |


App 程序集成通信協(xié)議棧

以下方案是由 app 集成通信協(xié)議棧,編程操作在 bootloader 程序中和 APP 程序中基本都涉及;且以下方案至少需要劃分三塊區(qū)域。

優(yōu)點(diǎn):bootloader 程序 Flash 占用空間小。

缺點(diǎn):在沒有 APP 程序的情況下無法實(shí)現(xiàn)更新,且 Flash 容量需求大;由于 APP 程序迭代快,可能容易出現(xiàn) bug,無法對程序進(jìn)行更新。

方案四:更新程序時,app 開始接收新的 APP 程序并直接寫入劃分好的空白 Flash 中,等全部接收完成并校驗(yàn)成功時,通過復(fù)位或者跳轉(zhuǎn)的方式進(jìn)入 bootloader 中,由 bootloader 開始擦除當(dāng)前 APP 程序(可能有朋友要問,為啥不能在 app 程序中實(shí)現(xiàn)呢?請問你能踩著左右腳上天嗎!),并將接收完成的新 APP 程序?qū)懭耄ù朔桨?APP 和 bootloader 均涉及編程操作)。

| booloader Flash | app Flash | 空白Flash |

方案五:更新程序時,app 開始接收新的 APP 程序并直接寫入已擦除的 APP2 中,等全部接收完成并校驗(yàn)成功時,將 APP1 程序有效標(biāo)志清除,設(shè)置 APP2 程序有效標(biāo)志,復(fù)位后,bootloader 根據(jù)有效標(biāo)志選擇需要進(jìn)入的 APP 程序 (同理:APP2下次更新程序時,先擦除 APP1 的無效程序,然后將接收的程序?qū)懭?APP1,接收完成并互轉(zhuǎn)有效標(biāo)志)(此方案只有 APP 涉及編程操作)

| booloader Flash | app1 Flash | app2 Flash |

總結(jié)

圖片其中:

方案三和方案五由于程序運(yùn)行地址不同,因此需要對 APP 分別進(jìn)行編譯鏈接,可應(yīng)用性大打折扣。

OTA 升級由于采用的無線升級方式,因此相對于“直接線控升級”來說斷連的可能性較高,出錯的情況也較高,不適合 MCU 每次接收完一幀數(shù)據(jù)后立馬寫入。

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

    關(guān)注

    6

    文章

    474

    瀏覽量

    51668
  • bootloader
    +關(guān)注

    關(guān)注

    2

    文章

    234

    瀏覽量

    45503
  • IAP技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    6951
收藏 人收藏

    評論

    相關(guān)推薦

    基于IAP和Keil MDK的遠(yuǎn)程升級設(shè)計

    應(yīng)用編程(IAP)技術(shù)為系統(tǒng)在線升級和遠(yuǎn)程升級提供了良好的解決方案,也為數(shù)據(jù)存儲和現(xiàn)場固件的升級
    發(fā)表于 03-24 12:03

    STM32 IAP在線升級

    STM32很強(qiáng)大的一個功能是支持IAP在線升級,IAP(In-Application Programming),即在“應(yīng)用程序中編程 ",通俗的來將是程序自己可以往程序存儲器里寫數(shù)據(jù)或修改
    發(fā)表于 03-09 15:56

    IAP升級的相關(guān)資料分享

    IAP升級簡介IAP是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運(yùn)行過程中對User Flash的部分區(qū)域進(jìn)行燒寫,目的是在產(chǎn)品發(fā)布后可
    發(fā)表于 11-01 09:05

    如何為STM32寫bootloader實(shí)現(xiàn)IAP升級

    ARM內(nèi)核芯片下載程序方式有哪幾種?如何為STM32寫bootloader實(shí)現(xiàn)IAP升級
    發(fā)表于 12-07 07:44

    IAP是什么?IAP升級流程是怎樣的

    IAP是什么?IAP升級流程是怎樣的?IAP應(yīng)用編程有哪些實(shí)例???
    發(fā)表于 12-14 06:53

    有線IAP用戶程序升級的一些心得分享

    升級的基礎(chǔ)上,實(shí)現(xiàn)無線升級的一些心得和建議。關(guān)于有線升級,大家可以在網(wǎng)上搜索或直接看我的上一篇博文我對IAP的理解常用的單片機(jī)程序下載方式有
    發(fā)表于 02-16 06:33

    IAP/Bootloader升級原理是什么?

    單片機(jī)在線升級原理是什么?IAP/Bootloader升級原理是什么?
    發(fā)表于 02-22 08:29

    【應(yīng)用筆記】CS32L010 IAP 升級

    技術(shù)文檔旨在幫助客戶實(shí)現(xiàn)IAP 升級提供一個參考方案和模板。本文檔提供基于 UART 升級的 MCU 參考代碼和 PC 端的
    發(fā)表于 10-09 16:44

    【應(yīng)用筆記】CS32F03x IAP 升級

    技術(shù)文檔旨在幫助客戶實(shí)現(xiàn)IAP 升級提供一個參考方案和模板。本文檔提供基于 UART 升級的 MCU 參考代碼和 PC 端的
    發(fā)表于 11-15 14:28

    基于IAP遠(yuǎn)程升級技術(shù)在空間應(yīng)用系統(tǒng)解決方案

    IAP可通過專門設(shè)計的固件程序來編程內(nèi)部存儲器,不需要硬件支持,所以IAP技術(shù)提高了嵌入式系統(tǒng)的可擴(kuò)展性與可維護(hù)性,能在不變的硬件平臺上升級其軟件版本,提供更多功能及增值服務(wù),適合在軌
    發(fā)表于 11-27 17:19 ?2次下載
    基于<b class='flag-5'>IAP</b>遠(yuǎn)程<b class='flag-5'>升級</b><b class='flag-5'>技術(shù)</b>在空間應(yīng)用系統(tǒng)解決<b class='flag-5'>方案</b>

    MCU之IAP升級

    IAP升級簡介IAP是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運(yùn)行過程中對User Flash的部分區(qū)域進(jìn)行燒寫,目的是在產(chǎn)品發(fā)布后可
    發(fā)表于 10-25 13:06 ?18次下載
    MCU之<b class='flag-5'>IAP</b><b class='flag-5'>升級</b>

    STM32F030芯片的IAP升級

    昨天IAP升級差點(diǎn)翻水水,具體過程容我細(xì)細(xì)道來。。。單片機(jī)在線升級應(yīng)該是IAP+APP。怎么做STM32F030的IAP程序我就簡單介紹一下
    發(fā)表于 11-29 16:36 ?16次下載
    STM32F030芯片的<b class='flag-5'>IAP</b><b class='flag-5'>升級</b>

    STM32的IAP升級APP

    STM32的IAP升級APP什么是IAP?In Application Programming的首字母縮寫,IAP是用戶自己的程序在運(yùn)行過程中對User Flash的部分區(qū)域進(jìn)行燒寫,
    發(fā)表于 12-04 12:36 ?11次下載
    STM32的<b class='flag-5'>IAP</b><b class='flag-5'>升級</b>APP

    關(guān)于在線升級IAP的基礎(chǔ)知識

    本文主要講解在線升級IAP的基礎(chǔ)知識, 主要是針對IAP 從原理分析, 分區(qū)劃分, 到代碼編寫和實(shí)驗(yàn)驗(yàn)證等過程闡述這一過程. 幫助大家加深對在線升級的認(rèn)識.
    的頭像 發(fā)表于 05-31 17:24 ?2620次閱讀

    幾種常用單片機(jī)的在線升級能力比較

    電子發(fā)燒友網(wǎng)站提供《幾種常用單片機(jī)的在線升級能力比較.pdf》資料免費(fèi)下載
    發(fā)表于 03-24 09:39 ?2次下載