做單片機(jī)開(kāi)發(fā)的工程師經(jīng)常會(huì)聽(tīng)到兩個(gè)詞:ISP和IAP,但新手往往對(duì)這兩個(gè)概念不是很清楚,今天就來(lái)和大家聊聊什么是ISP,什么是IAP?
一、ISP
ISP的全稱是:In System Programming,即在系統(tǒng)編程,該操作是通過(guò)MCU廠商出廠BootLoader來(lái)實(shí)現(xiàn),通過(guò)ISP可以對(duì)主flash區(qū)域進(jìn)行擦除、編程操作,還可以修改芯片的選項(xiàng)字節(jié)等。我們來(lái)看下GD32F30x用戶手冊(cè)中引導(dǎo)模式:
通過(guò)BOOT引腳可以讓MCU有不同的引導(dǎo)模式,其中將BOOT0接高,BOOT1接低,此時(shí)上電后,MCU跑的是引導(dǎo)裝載程序,該程序就是GD公司MCU出廠固化的BootLoader。簡(jiǎn)單而言就是,在這個(gè)模式下,MCU是在跑一段程序的,這個(gè)程序可以讓你通過(guò)MCU上的一些固定接口如串口、USB等來(lái)實(shí)現(xiàn)對(duì)主flash區(qū)域等的操作,而通過(guò)這個(gè)程序進(jìn)行主flash的燒寫(xiě)過(guò)程就是ISP。一般而言,ISP都需要一些上位機(jī)來(lái)配合操作,GD官方的是All-in-one工具:
二、IAP
IAP的全稱是:In Applicatin Programming,即在應(yīng)用編程,該操作需要工程師自己寫(xiě)B(tài)ootLoader來(lái)實(shí)現(xiàn)。IAP需要兩段程序:一段在主flash最開(kāi)始的地方,為用戶BootLoader;
另一段在主flash中的其他區(qū)域,為APP,比如保存在0x08008000地址的程序:
當(dāng)MCU剛上電時(shí),會(huì)執(zhí)行用戶BootLoader程序(需要注意:這里需要選擇將BOOT0接低,也就是讓從主flash中啟動(dòng)),工程師需要在用戶BootLoader中實(shí)現(xiàn)接收數(shù)據(jù)并對(duì)非本程序所在地址flash區(qū)域編程的功能,這樣用戶將APP的bin文件發(fā)給用戶BootLoader程序,BootLoader程序?qū)PP的數(shù)據(jù)寫(xiě)到特定的地址中,比如0x08008000開(kāi)始的地址,這樣就實(shí)現(xiàn)了通過(guò)用戶BootLoader燒錄APP的功能。燒錄完成后,用戶BootLoader程序中需要實(shí)現(xiàn)一個(gè)跳轉(zhuǎn)指令,讓程序直接跳到APP中,這樣嶄新的APP程序就跑起來(lái)啦。上面這一整個(gè)流程,就叫做IAP。
好了,現(xiàn)在小伙伴們知道什么是ISP,什么是IAP了嗎?還有不懂的,歡迎評(píng)論區(qū)留言哦,悄悄說(shuō)一句,我們有GD各系列的用戶BootLoader Demo程序哦。
-
單片機(jī)
+關(guān)注
關(guān)注
6039文章
44588瀏覽量
636758 -
mcu
+關(guān)注
關(guān)注
146文章
17194瀏覽量
351863 -
嵌入式
+關(guān)注
關(guān)注
5087文章
19150瀏覽量
306356 -
ISP
+關(guān)注
關(guān)注
6文章
478瀏覽量
51902 -
IAP
+關(guān)注
關(guān)注
2文章
164瀏覽量
24327
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論