STM32的IAP方案
IAP,全稱(chēng)是“In-Application
Programming”,中文解釋為“在程序中編程”。IAP是一種對通過(guò)微控制器的對外接口(如USART,IIC,CAN,USB,以太網(wǎng)接口甚至是無(wú)線(xiàn)射頻通道)對正在運行程序的微控制器進(jìn)行內部程序的更新的技術(shù)(注意這完全有別于ICP或者ISP技術(shù))。ICP(In-Circuit Programming)技術(shù)即通過(guò)在線(xiàn)仿真器對單片機進(jìn)行程序燒寫(xiě),而ISP技術(shù)則是通過(guò)單片機內置的bootloader程序引導的燒寫(xiě)技術(shù)。無(wú)論是ICP技術(shù)還是ISP技術(shù),都需要有機械性的操作如連接下載線(xiàn),設置跳線(xiàn)帽等。若產(chǎn)品的電路板已經(jīng)層層密封在外殼中,要對其進(jìn)行程序更新無(wú)疑困難重重,若產(chǎn)品安裝于狹窄空間等難以觸及的地方,更是一場(chǎng)災難。但若進(jìn)引入了IAP技術(shù),則完全可以避免上述尷尬情況,而且若使用遠距離或無(wú)線(xiàn)的數據傳輸方案,甚至可以實(shí)現遠程編程和無(wú)線(xiàn)編程。這絕對是ICP或ISP技術(shù)無(wú)法做到的。某種微控制器支持IAP技術(shù)的首要前提是其必須是基于可重復編程閃存的微控制器。STM32微控制器帶有可編程的內置閃存,同時(shí)STM32擁有在數量上和種類(lèi)上都非常豐富的外設通信接口,因此在STM32上實(shí)現IAP技術(shù)是完全可行的。
實(shí)現IAP技術(shù)的核心是一段預先燒寫(xiě)在單片機內部的IAP程序。這段程序主要負責與外部的上位機軟件進(jìn)行握手同步,然后將通過(guò)外設通信接口將來(lái)自于上位機軟件的程序數據接收后寫(xiě)入單片機內部指定的閃存區域,然后再跳轉執行新寫(xiě)入的程序,最終就達到了程序更新的目的。
評論