IAP 即在應用編程,IAP 是用戶自己的程序在運行過程中對 Flash 的部分區域進行燒寫,目的是為了在產品發布后可以方便地通過預留的通信口對產品中的固件程序進行更新升級。
IAP 原理介紹
通常實現 IAP 功能時,需要在設計固件程序時編寫兩個項目代碼,第一個項目程序即 Boot程序不執行正常的功能操作,而只是通過某種通信方式(如 USB、USART)接收程序或數據,執行對第二部分代碼的更新;第二個項目程序即 APP 程序用戶真正的功能代碼。這兩部分項目代碼同時燒錄在 Flash 中,當芯片上電后,首先是第一個項目程序 Boot 開始運行,它主要實現如下功能:
-
步驟 1:檢查是否需要對第二部 APP 程序代碼進行更新
-
步驟 2:如果不需要更新則轉到步驟 4
-
步驟 3:執行更新操作
-
步驟 4:跳轉到第二部分代碼執行
第一部分 Boot 代碼可以通過 SWD 或者離線編程器下載到芯片 Flash 內部,首次下載程序時,第二部分 APP 和第一部分 Boot 可以一起燒入芯片內部,以后需要程序更新再通過第一部分 Boot 代碼更新。
IAP 運行流程圖
下圖是 PC 上位機與 MCU 下位機通訊的流程圖。(注意:如果在 Boot 程序中收到程序更新幀,則繼續待在 Boot 程序中,不會進行軟件復位。
Boot 程序層次結構圖
底層驅動實現
圖二灰色區域為跟芯片相關的文件,每個芯片系列都是由下面三個文件構成:
-
hc32lxxx.h:芯片頭文件,比如 L006 的頭文件為 hc32l13x.h。
-
system_hc32lxxx.h:針對各芯片中斷函數名的重定義。
-
utils.h:boot 中要用到的各芯片底層驅動在此文件中實現。
APP 程序 demo 樣例
hc32lxxx_app 文件夾下是跟 Boot 對應的各芯片的應用程序 demo,demo 中集成了各芯片的驅動,方便用戶直接在 demo 中編寫自己的應用程序。
審核編輯:湯梓紅
-
芯片
+關注
關注
454文章
50430瀏覽量
421887 -
mcu
+關注
關注
146文章
17002瀏覽量
350332 -
FlaSh
+關注
關注
10文章
1622瀏覽量
147761 -
源碼
+關注
關注
8文章
633瀏覽量
29140 -
IAP
+關注
關注
2文章
163瀏覽量
24251
發布評論請先 登錄
相關推薦
評論