在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

常用的幾種IAP升級技術方案是哪些

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

前言

關于 IAP 技術,做過 bootloader 的想必很熟悉(IAP全稱 In Application Programming,即應用編程),和 ISP(全稱 In System Programming,即系統編程)不同,ISP 一般都是通過專業的調試器或者下載器對單片機內部的 Flash 存儲器進程編程(如JTAG等),而 IAP 技術是從結構上將 Flash 儲存器映射分為兩個或者多個分區,在一個分區中對其他分區進行編程,這個分區通常稱為 bootloader。

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

IAP 技術方案

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

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

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

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

bootloader 程序集成通信協議棧

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

優點:在沒有 APP 程序或者 APP 程序異常的時候也能更新程序

缺點:bootloader 相對復雜,且程序 Flash 占用空間大

方案一:更新程序時,發送升級指令給到 MCU ,MCU 通過復位或者跳轉的方式進入 bootloader 中,bootloader 首先擦除當前 APP 程序后,開始接收新的 APP 程序并直接寫入 APP 分區中。

| booloader Flash | app Flash |

方案二:更新程序時,發送升級指令給到 MCU ,MCU 通過復位或者跳轉的方式進入 bootloader 中,bootloader 不會擦除當前 APP 程序,而是將接收到的新 APP 程序寫入劃分好的空白 Flash 中,等全部接收完成并校驗成功時,才開始擦除當前 APP 程序,并將接收完成的新 APP 程序寫入。

| booloader Flash | app Flash | 空白Flash |

方案三:更新程序時,發送升級指令給到 MCU ,MCU 通過復位或者跳轉的方式進入 bootloader 中,bootloader 不會擦除當前 APP 程序(APP1),而是將接收到的新 APP 程序寫入已擦除的 APP2 中,等全部接收完成并校驗成功時,將 APP1 程序有效標志清除,設置 APP2 程序有效標志,bootloader 根據有效標志選擇需要進入的 APP 程序 (同理:APP2下次更新程序時,先擦除 APP1 的無效程序,然后將接收的程序寫入 APP1,接收完成并互轉有效標志)。

| booloader Flash | app1 Flash | app2 Flash |


App 程序集成通信協議棧

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

優點:bootloader 程序 Flash 占用空間小。

缺點:在沒有 APP 程序的情況下無法實現更新,且 Flash 容量需求大;由于 APP 程序迭代快,可能容易出現 bug,無法對程序進行更新。

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

| booloader Flash | app Flash | 空白Flash |

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

| booloader Flash | app1 Flash | app2 Flash |

總結

圖片其中:

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

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

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

    關注

    6

    文章

    490

    瀏覽量

    52815
  • bootloader
    +關注

    關注

    2

    文章

    238

    瀏覽量

    46465
  • IAP技術
    +關注

    關注

    0

    文章

    7

    瀏覽量

    7019
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于IAP和Keil MDK的遠程升級設計

    應用編程(IAP)技術為系統在線升級和遠程升級提供了良好的解決方案,也為數據存儲和現場固件的升級
    發表于 03-24 12:03

    STM32 IAP在線升級

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

    IAP升級的相關資料分享

    IAP升級簡介IAP是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運行過程中對User Flash的部分區域進行燒寫,目的是在產品發布后可
    發表于 11-01 09:05

    如何為STM32寫bootloader實現IAP升級?

    ARM內核芯片下載程序方式有哪幾種?如何為STM32寫bootloader實現IAP升級
    發表于 12-07 07:44

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

    IAP是什么?IAP升級流程是怎樣的?IAP應用編程有哪些實例啊?
    發表于 12-14 06:53

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

    升級的基礎上,實現無線升級的一些心得和建議。關于有線升級,大家可以在網上搜索或直接看我的上一篇博文我對IAP的理解常用的單片機程序下載方式有
    發表于 02-16 06:33

    IAP/Bootloader升級原理是什么?

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

    【應用筆記】CS32L010 IAP 升級

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

    【應用筆記】CS32F03x IAP 升級

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

    基于IAP遠程升級技術在空間應用系統解決方案

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

    MCU之IAP升級

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

    STM32的IAP升級APP

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

    關于在線升級IAP的基礎知識

    本文主要講解在線升級IAP的基礎知識, 主要是針對IAP 從原理分析, 分區劃分, 到代碼編寫和實驗驗證等過程闡述這一過程. 幫助大家加深對在線升級的認識.
    的頭像 發表于 05-31 17:24 ?2911次閱讀

    AT32 MCU如何使用USB MSD 進行IAP升級?

    AT32 MCU如何使用USB MSD 進行IAP升級?
    的頭像 發表于 10-27 09:23 ?1591次閱讀
    AT32 MCU如何使用USB MSD 進行<b class='flag-5'>IAP</b><b class='flag-5'>升級</b>?

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

    電子發燒友網站提供《幾種常用單片機的在線升級能力比較.pdf》資料免費下載
    發表于 03-24 09:39 ?2次下載
    主站蜘蛛池模板: 丁香婷婷六月天 | 97超在线 | 很很鲁在线视频播放影院 | 国产看午夜精品理论片 | 午夜视频免费观看黄 | 四虎影音在线观看 | 久久精品乱子伦免费 | 91大神在线视频观看 | 欧美tube最新的69hd | 506rr亚洲欧美 | 大尺度视频在线 | 欧美精品影院 | 五月婷婷在线观看视频 | 午夜视频免费观看 | 国产男女交性视频播放免费bd | 久久精品国产亚洲aa | www.亚洲天堂| 亚洲伦理中文字幕一区 | www.五月天 | 韩国精品videosex性韩国 | miya亚洲私人影院在线 | a网站免费| 大片毛片女女女女女女女 | 日本高清一本视频 | 亚洲男人天堂手机版 | 伊人久久影院大香线蕉 | 激情综合丝袜美女一区二区 | 亚洲欧美国产五月天综合 | 欧美亚洲一区二区三区在线 | 久久综合操 | 中文字幕久久精品波多野结 | 午夜视频高清在线aaa | 日处女穴| 欧美日韩亚洲国产一区二区综合 | 在线麻豆国产传媒60在线观看 | 婷婷5月天 | 天天干网| 亚洲欧美在线精品一区二区 | 日日操夜夜爱 | avtt香蕉 | 男人午夜视频在线观看 |