IAP是什么
導讀:本文主要講述的是IAP是什么,不懂得童鞋們快來(lái)學(xué)習一下吧,很漲姿勢的哦~~~
本文引用地址:http://dyxdggzs.com/article/273451.htm1.IAP是什么--簡(jiǎn)介
IAP是In Application Programming的首字母縮寫(xiě),IAP是用戶(hù)自己的程序在運行過(guò)程中對User Flash的部分區域進(jìn)行燒寫(xiě),目的是為了在產(chǎn)品發(fā)布后可以方便地通過(guò)預留的通信口對產(chǎn)品中的固件程序進(jìn)行更新升級。
2.IAP是什么--功能
在應用編程IAP(In-Application Programming)是應用在Flash程序存儲器的一種編程模式。它可以在應用程序正常運行的情況下,通過(guò)調用特定的IAP程序對另外一段程序Flash空間進(jìn)行讀/寫(xiě)操作,甚至可以控制對某段、某頁(yè)甚至某個(gè)字節的讀/寫(xiě)操作,這為數據存儲和固件的現場(chǎng)升級帶來(lái)了更大的靈活性。
3.IAP是什么--實(shí)現方法
通常在用戶(hù)需要實(shí)現IAP功能時(shí),即用戶(hù)程序運行中作自身的更新操作,需要在設計固件程序時(shí)編寫(xiě)兩個(gè)項目代碼,這兩部分項目代碼都同時(shí)燒錄在User Flash中,當芯片上電后,首先是第一個(gè)項目代碼開(kāi)始運行,它作如下操作:
1)檢查是否需要對第二部分代碼進(jìn)行更新
2)如果不需要更新則轉到4)
3)執行更新操作
4)跳轉到第二部分代碼執行
第一部分代碼必須通過(guò)其它手段,如JTAG或ISP燒入;第二部分代碼可以使用第一部分代碼IAP功能燒入,也可以和第一部分代碼一道燒入,以后需要程序更新是再通過(guò)第一部分IAP代碼更新。
在第二部分代碼開(kāi)始執行時(shí),首先需要把CPU的中斷向量表映像到自己的向量表,然后再執行其他的操作。
如果IAP程序被破壞,產(chǎn)品必須返廠(chǎng)才能重新燒寫(xiě)程序,這是很麻煩并且非常耗費時(shí)間和金錢(qián)的。針對這樣的需求,STM32在對Flash區域實(shí)行讀保護的同時(shí),自動(dòng)地對用戶(hù)Flash區的開(kāi)始4頁(yè)設置為寫(xiě)保護,這樣可以有效地保證IAP程序區域不會(huì )被意外地破壞。
4.IAP是什么--IAP與ISP的區別
在線(xiàn)編程目前有兩種實(shí)現方法:在系統編程(ISP)和在應用編程(IAP)。ISP一般是通過(guò)單片機專(zhuān)用的串行編程接口對單片機內部的Flash存儲器進(jìn)行編程,而IAP技術(shù)是從結構上將Flash存儲器映射為兩個(gè)存儲體,當運行一個(gè)存儲體上的用戶(hù)程序時(shí),可對另一個(gè)存儲體重新編程,之后將控制從一個(gè)存儲體轉向另一個(gè)。ISP的實(shí)現一般需要很少的外部電路輔助實(shí)現,而IAP的實(shí)現更加靈活,通??衫脝纹瑱C的串行口接到計算機的RS232口,通過(guò)專(zhuān)門(mén)設計的固件程序來(lái)編程內部存儲器。
拓展閱讀:
評論