新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 什么是IAP?如何實現(xiàn)IAP?

        什么是IAP?如何實現(xiàn)IAP?

        作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
        是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運行過程中對User Flash的部分區(qū)域進行燒寫,目的是為了在產(chǎn)品發(fā)布后可以方便地通過預留的通信口對產(chǎn)品中的固件程序進行更新升級。
        通常在用戶需要實現(xiàn)IAP功能時,即用戶程序運行中作自身的更新操作,需要在設計固件程序時編寫兩個項目代碼,第一個項目程序不執(zhí)行正常的功能操作,而只是通過某種通信管道(如USB、USART)接收程序或數(shù)據(jù),執(zhí)行對第二部分代碼的更新;第二個項目代碼才是真正的功能代碼。這兩部分項目代碼都同時燒錄在User Flash中,當芯片上電后,首先是第一個項目代碼開始運行,它作如下操作:
        1)檢查是否需要對第二部分代碼進行更新
        2)如果不需要更新則轉(zhuǎn)到4)
        3)執(zhí)行更新操作
        4)跳轉(zhuǎn)到第二部分代碼執(zhí)行
        第一部分代碼必須通過其它手段,如JTAG或ISP燒入;第二部分代碼可以使用第一部分代碼IAP功能燒入,也可以和第一部分代碼一道燒入,以后需要程序更新是再通過第一部分IAP代碼更新。
        對于STM32來說,因為它的中斷向量表位于程序存儲器的最低地址區(qū),為了使第一部分代碼能夠正確地響應中斷,通常會安排第一部分代碼處于Flash的開始區(qū)域,而第二部分代碼緊隨其后。
        在第二部分代碼開始執(zhí)行時,首先需要把CPU的中斷向量表映像到自己的向量表,然后再執(zhí)行其他的操作。
        如果IAP程序被破壞,產(chǎn)品必須返廠才能重新燒寫程序,這是很麻煩并且非常耗費時間和金錢的。針對這樣的需求,STM32在對Flash區(qū)域?qū)嵭凶x保護的同時,自動地對用戶Flash區(qū)的開始4頁設置為寫保護,這樣可以有效地保證IAP程序(第一部分代碼)區(qū)域不會被意外地破壞。
        ST的網(wǎng)站上有使用USART實現(xiàn)IAP的例子,各位可以參考這個例子和相應的手冊。
        應用筆記 AN2557 - STM32F10xxx in-application programming using the USART
        例程:AN2557 - STM32F10xxx in-application programming using the USART


        關鍵詞: IAP程序運

        評論


        技術(shù)專區(qū)

        關閉
        主站蜘蛛池模板: 山东省| 卫辉市| 于都县| 江达县| 太保市| 开鲁县| 万盛区| 遵义市| 腾冲县| 崇礼县| 鲁山县| 黑龙江省| 镇雄县| 鄯善县| 手机| 图木舒克市| 嘉兴市| 泸水县| 顺义区| 镶黄旗| 隆林| 秀山| 双流县| 怀远县| 辽阳县| 阿图什市| 金昌市| 绵竹市| 乐昌市| 濮阳市| 乳源| 田阳县| 根河市| 贵港市| 潜江市| 天柱县| 迁安市| 辽中县| 濉溪县| 建始县| 凤冈县|