什么是IAP?如何實(shí)現IAP?

發(fā)布時(shí)間:2009-11-25 17:44    發(fā)布者:STM32
關(guān)鍵詞: IAP
是In Application Programming的首字母縮寫(xiě),IAP是用戶(hù)自己的程序在運行過(guò)程中對User Flash的部分區域進(jìn)行燒寫(xiě),目的是為了在產(chǎn)品發(fā)布后可以方便地通過(guò)預留的通信口對產(chǎn)品中的固件程序進(jìn)行更新升級。

通常在用戶(hù)需要實(shí)現IAP功能時(shí),即用戶(hù)程序運行中作自身的更新操作,需要在設計固件程序時(shí)編寫(xiě)兩個(gè)項目代碼,第一個(gè)項目程序不執行正常的功能操作,而只是通過(guò)某種通信管道(如USB、USART)接收程序或數據,執行對第二部分代碼的更新;第二個(gè)項目代碼才是真正的功能代碼。這兩部分項目代碼都同時(shí)燒錄在User Flash中,當芯片上電后,首先是第一個(gè)項目代碼開(kāi)始運行,它作如下操作:

1)檢查是否需要對第二部分代碼進(jìn)行更新
2)如果不需要更新則轉到4)
3)執行更新操作
4)跳轉到第二部分代碼執行

第一部分代碼必須通過(guò)其它手段,如JTAG或ISP燒入;第二部分代碼可以使用第一部分代碼IAP功能燒入,也可以和第一部分代碼一道燒入,以后需要程序更新是再通過(guò)第一部分IAP代碼更新。

對于STM32來(lái)說(shuō),因為它的中斷向量表位于程序存儲器的最低地址區,為了使第一部分代碼能夠正確地響應中斷,通常會(huì )安排第一部分代碼處于Flash的開(kāi)始區域,而第二部分代碼緊隨其后。

在第二部分代碼開(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ì )被意外地破壞。

ST的網(wǎng)站上有使用USART實(shí)現IAP的例子,各位可以參考這個(gè)例子和相應的手冊。

應用筆記 AN2557 - STM32F10xxx in-application programming using the USART
例程:AN2557 - STM32F10xxx in-application programming using the USART

最初發(fā)表日期:2008-7-30
本文地址:http://selenalain.com/thread-5769-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页