IAP 即在應(yīng)用編程,IAP 是用戶自己的程序在運行過程中對 Flash 的部分區(qū)域進行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預(yù)留的通信口對產(chǎn)品中的固件程序進行更新升級。
IAP 原理介紹
通常實現(xiàn) IAP 功能時,需要在設(shè)計固件程序時編寫兩個項目代碼,第一個項目程序即 Boot程序不執(zhí)行正常的功能操作,而只是通過某種通信方式(如 USB、USART)接收程序或數(shù)據(jù),執(zhí)行對第二部分代碼的更新;第二個項目程序即 APP 程序用戶真正的功能代碼。這兩部分項目代碼同時燒錄在 Flash 中,當(dāng)芯片上電后,首先是第一個項目程序 Boot 開始運行,它主要實現(xiàn)如下功能:
-
步驟 1:檢查是否需要對第二部 APP 程序代碼進行更新
-
步驟 2:如果不需要更新則轉(zhuǎn)到步驟 4
-
步驟 3:執(zhí)行更新操作
-
步驟 4:跳轉(zhuǎn)到第二部分代碼執(zhí)行
第一部分 Boot 代碼可以通過 SWD 或者離線編程器下載到芯片 Flash 內(nèi)部,首次下載程序時,第二部分 APP 和第一部分 Boot 可以一起燒入芯片內(nèi)部,以后需要程序更新再通過第一部分 Boot 代碼更新。
IAP 運行流程圖
下圖是 PC 上位機與 MCU 下位機通訊的流程圖。(注意:如果在 Boot 程序中收到程序更新幀,則繼續(xù)待在 Boot 程序中,不會進行軟件復(fù)位。

Boot 程序?qū)哟谓Y(jié)構(gòu)圖

底層驅(qū)動實現(xiàn)
圖二灰色區(qū)域為跟芯片相關(guān)的文件,每個芯片系列都是由下面三個文件構(gòu)成:
-
hc32lxxx.h:芯片頭文件,比如 L006 的頭文件為 hc32l13x.h。
-
system_hc32lxxx.h:針對各芯片中斷函數(shù)名的重定義。
-
utils.h:boot 中要用到的各芯片底層驅(qū)動在此文件中實現(xiàn)。
APP 程序 demo 樣例
hc32lxxx_app 文件夾下是跟 Boot 對應(yīng)的各芯片的應(yīng)用程序 demo,demo 中集成了各芯片的驅(qū)動,方便用戶直接在 demo 中編寫自己的應(yīng)用程序。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
463文章
53949瀏覽量
465277 -
mcu
+關(guān)注
關(guān)注
147文章
18881瀏覽量
396664 -
FlaSh
+關(guān)注
關(guān)注
10文章
1742瀏覽量
155405 -
源碼
+關(guān)注
關(guān)注
8文章
684瀏覽量
31279 -
IAP
+關(guān)注
關(guān)注
2文章
168瀏覽量
26024
發(fā)布評論請先 登錄
芯海通用 MCU 應(yīng)用筆記: CS32F03x IAP 升級
AT32 MCU如何使用IAP
電子發(fā)燒友們看過來,電路元素T恤有獎大調(diào)查
招電源研發(fā),,,想創(chuàng)業(yè)的請看過來
【招聘】IC設(shè)計相關(guān)職位看過來 2020年1月
【招聘】你復(fù)工了嗎?有職位需求的看過來!
【應(yīng)用筆記】CS32L010 IAP 升級
【應(yīng)用筆記】CS32F03x IAP 升級
想學(xué)習(xí)IAP升級源碼+PC工具+MCU的看過來
IBM用戶看過來 如何清洗小紅帽
MCU之IAP升級
@企業(yè)主們看過來,用華為云CDN給你的網(wǎng)頁加個速
想學(xué)習(xí)IAP升級源碼+PC工具+MCU的看過來
評論