做單片機開發的工程師經常會聽到兩個詞:ISP和IAP,但新手往往對這兩個概念不是很清楚,今天就來和大家聊聊什么是ISP,什么是IAP?
一、ISP
ISP的全稱是:In System Programming,即在系統編程,該操作是通過MCU廠商出廠BootLoader來實現,通過ISP可以對主flash區域進行擦除、編程操作,還可以修改芯片的選項字節等。我們來看下GD32F30x用戶手冊中引導模式:
![wKgZomW1rPCALbo_AAB-EooS260843.png](https://file1.elecfans.com/web2/M00/BE/B5/wKgZomW1rPCALbo_AAB-EooS260843.png)
通過BOOT引腳可以讓MCU有不同的引導模式,其中將BOOT0接高,BOOT1接低,此時上電后,MCU跑的是引導裝載程序,該程序就是GD公司MCU出廠固化的BootLoader。簡單而言就是,在這個模式下,MCU是在跑一段程序的,這個程序可以讓你通過MCU上的一些固定接口如串口、USB等來實現對主flash區域等的操作,而通過這個程序進行主flash的燒寫過程就是ISP。一般而言,ISP都需要一些上位機來配合操作,GD官方的是All-in-one工具:
![wKgaomW1rPWAQaucAADHLESiS7s439.png](https://file1.elecfans.com/web2/M00/BF/A1/wKgaomW1rPWAQaucAADHLESiS7s439.png)
二、IAP
IAP的全稱是:In Applicatin Programming,即在應用編程,該操作需要工程師自己寫BootLoader來實現。IAP需要兩段程序:一段在主flash最開始的地方,為用戶BootLoader;
![wKgZomW1rPqAJ5BFAACJYyIwbgc150.png](https://file1.elecfans.com/web2/M00/BE/B5/wKgZomW1rPqAJ5BFAACJYyIwbgc150.png)
另一段在主flash中的其他區域,為APP,比如保存在0x08008000地址的程序:
![wKgaomW1rP6AQuWYAABvWmVT9Jg132.png](https://file1.elecfans.com/web2/M00/BF/A1/wKgaomW1rP6AQuWYAABvWmVT9Jg132.png)
當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
發布評論請先 登錄
相關推薦
ISP、IAP 功能
ISP、IAP、ICP的區別與聯系是什么
ICP、ISP、IAP是啥意思
ISP和IAP介紹和比較
淺析ICP與ISP、及IAP三種單片機燒錄方式
![淺析ICP與<b class='flag-5'>ISP</b>、及<b class='flag-5'>IAP</b>三種單片機燒錄方式](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論