做單片機開發的工程師經常會聽到兩個詞:ISP和IAP,但新手往往對這兩個概念不是很清楚,今天就來和大家聊聊什么是ISP,什么是IAP?
一、ISP
ISP的全稱是:In System Programming,即在系統編程,該操作是通過MCU廠商出廠BootLoader來實現,通過ISP可以對主flash區域進行擦除、編程操作,還可以修改芯片的選項字節等。我們來看下GD32F30x用戶手冊中引導模式:
通過BOOT引腳可以讓MCU有不同的引導模式,其中將BOOT0接高,BOOT1接低,此時上電后,MCU跑的是引導裝載程序,該程序就是GD公司MCU出廠固化的BootLoader。簡單而言就是,在這個模式下,MCU是在跑一段程序的,這個程序可以讓你通過MCU上的一些固定接口如串口、USB等來實現對主flash區域等的操作,而通過這個程序進行主flash的燒寫過程就是ISP。一般而言,ISP都需要一些上位機來配合操作,GD官方的是All-in-one工具:
二、IAP
IAP的全稱是:In Applicatin Programming,即在應用編程,該操作需要工程師自己寫BootLoader來實現。IAP需要兩段程序:一段在主flash最開始的地方,為用戶BootLoader;
另一段在主flash中的其他區域,為APP,比如保存在0x08008000地址的程序:
當MCU剛上電時,會執行用戶BootLoader程序(需要注意:這里需要選擇將BOOT0接低,也就是讓從主flash中啟動),工程師需要在用戶BootLoader中實現接收數據并對非本程序所在地址flash區域編程的功能,這樣用戶將APP的bin文件發給用戶BootLoader程序,BootLoader程序將APP的數據寫到特定的地址中,比如0x08008000開始的地址,這樣就實現了通過用戶BootLoader燒錄APP的功能。燒錄完成后,用戶BootLoader程序中需要實現一個跳轉指令,讓程序直接跳到APP中,這樣嶄新的APP程序就跑起來啦。上面這一整個流程,就叫做IAP。
好了,現在小伙伴們知道什么是ISP,什么是IAP了嗎?還有不懂的,歡迎評論區留言哦,悄悄說一句,我們有GD各系列的用戶BootLoader Demo程序哦。
-
單片機
+關注
關注
6037文章
44558瀏覽量
635298 -
mcu
+關注
關注
146文章
17148瀏覽量
351197 -
嵌入式
+關注
關注
5082文章
19126瀏覽量
305194 -
ISP
+關注
關注
6文章
477瀏覽量
51830 -
IAP
+關注
關注
2文章
163瀏覽量
24287
發布評論請先 登錄
相關推薦
評論