在线观看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

    瀏覽量

    52807
  • bootloader
    +關注

    關注

    2

    文章

    238

    瀏覽量

    46461
  • 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>

    STM32F030芯片的IAP升級

    昨天IAP升級差點翻水水,具體過程容我細細道來。。。單片機在線升級應該是IAP+APP。怎么做STM32F030的IAP程序我就簡單介紹一下
    發表于 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是用戶自己的程序在運行過程中對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 ?2909次閱讀

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

    電子發燒友網站提供《幾種常用單片機的在線升級能力比較.pdf》資料免費下載
    發表于 03-24 09:39 ?2次下載
    主站蜘蛛池模板: 在线视频亚洲一区 | 中国业余老太性视频 | 婷婷操| 欧美另类丰满69xxxxx | 99久久免费中文字幕精品 | 四虎永久免费在线 | 欧洲熟色妇| 日本色免费 | 天天操夜夜操美女 | 开心色xxxx| 夜色福利久久久久久777777 | 人人爽天天爽夜夜爽曰 | 四虎4hu永久在线观看 | 亚洲精品久久久久久婷婷 | 五月天综合在线 | 国产精品欧美一区二区 | 狠狠操天天操视频 | 欧美在线性| 人与牲动交xxxxbbbb | 国产ar高清视频+视频 | 国产日韩一区二区三区 | 亚洲欧美成人网 | 午夜神马福利影院 | 免费观看黄a一级视频日本 免费观看黄色网页 | 午夜影院在线视频 | 可以直接看的黄址 | 国产特黄特色的大片观看免费视频 | 美女中出视频 | 天堂8资源在线官网资源 | 在线黄色免费 | 天天av天天翘天天综合网 | 久久国产视频一区 | 精品四虎免费观看国产高清午夜 | 成人午夜大片免费看爽爽爽 | 免费激情网址 | 久久久久久久综合狠狠综合 | 四虎4hu | 黄色在线观看国产 | 日日操夜夜骑 | 快乐你懂的在线视频免费观看 | 在线精品国产成人综合第一页 |