IAP 即在應(yīng)用編程,IAP 是用戶自己的程序在運(yùn)行過(guò)程中對(duì) Flash 的部分區(qū)域進(jìn)行燒寫(xiě),目的是為了在產(chǎn)品發(fā)布后可以方便地通過(guò)預(yù)留的通信口對(duì)產(chǎn)品中的固件程序進(jìn)行更新升級(jí)。
IAP 原理介紹
通常實(shí)現(xiàn) IAP 功能時(shí),需要在設(shè)計(jì)固件程序時(shí)編寫(xiě)兩個(gè)項(xiàng)目代碼,第一個(gè)項(xiàng)目程序即 Boot程序不執(zhí)行正常的功能操作,而只是通過(guò)某種通信方式(如 USB、USART)接收程序或數(shù)據(jù),執(zhí)行對(duì)第二部分代碼的更新;第二個(gè)項(xiàng)目程序即 APP 程序用戶真正的功能代碼。這兩部分項(xiàng)目代碼同時(shí)燒錄在 Flash 中,當(dāng)芯片上電后,首先是第一個(gè)項(xiàng)目程序 Boot 開(kāi)始運(yùn)行,它主要實(shí)現(xiàn)如下功能:
-
步驟 1:檢查是否需要對(duì)第二部 APP 程序代碼進(jìn)行更新
-
步驟 2:如果不需要更新則轉(zhuǎn)到步驟 4
-
步驟 3:執(zhí)行更新操作
-
步驟 4:跳轉(zhuǎn)到第二部分代碼執(zhí)行
第一部分 Boot 代碼可以通過(guò) SWD 或者離線編程器下載到芯片 Flash 內(nèi)部,首次下載程序時(shí),第二部分 APP 和第一部分 Boot 可以一起燒入芯片內(nèi)部,以后需要程序更新再通過(guò)第一部分 Boot 代碼更新。
IAP 運(yùn)行流程圖
下圖是 PC 上位機(jī)與 MCU 下位機(jī)通訊的流程圖。(注意:如果在 Boot 程序中收到程序更新幀,則繼續(xù)待在 Boot 程序中,不會(huì)進(jìn)行軟件復(fù)位。
Boot 程序?qū)哟谓Y(jié)構(gòu)圖
底層驅(qū)動(dòng)實(shí)現(xiàn)
圖二灰色區(qū)域?yàn)楦酒嚓P(guān)的文件,每個(gè)芯片系列都是由下面三個(gè)文件構(gòu)成:
-
hc32lxxx.h:芯片頭文件,比如 L006 的頭文件為 hc32l13x.h。
-
system_hc32lxxx.h:針對(duì)各芯片中斷函數(shù)名的重定義。
-
utils.h:boot 中要用到的各芯片底層驅(qū)動(dòng)在此文件中實(shí)現(xiàn)。
APP 程序 demo 樣例
hc32lxxx_app 文件夾下是跟 Boot 對(duì)應(yīng)的各芯片的應(yīng)用程序 demo,demo 中集成了各芯片的驅(qū)動(dòng),方便用戶直接在 demo 中編寫(xiě)自己的應(yīng)用程序。
審核編輯:湯梓紅
-
芯片
+關(guān)注
關(guān)注
456文章
51192瀏覽量
427336 -
mcu
+關(guān)注
關(guān)注
146文章
17324瀏覽量
352662 -
FlaSh
+關(guān)注
關(guān)注
10文章
1642瀏覽量
148685 -
源碼
+關(guān)注
關(guān)注
8文章
652瀏覽量
29458 -
IAP
+關(guān)注
關(guān)注
2文章
164瀏覽量
24393
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論