瞭解IAP

1.是什麼--簡介   產品後期升級技術

  是In Application Programming的首字母縮寫,IAP是用戶自己的程序在運行過程中對User Flash的部分區域進行燒寫,目的是爲了在產品發佈後可以方便地通過預留的通信口對產品中的固件程序進行更新升級。

2.--功能

  在應用編程IAP(In-Application Programming)是應用在Flash程序存儲器的一種編程模式。它可以在應用程序正常運行的情況下,通過調用特定的IAP程序對另外一段程序Flash空間進行讀/寫操作,甚至可以控制對某段、某頁甚至某個字節的讀/寫操作,這爲數據存儲和固件的現場升級帶來了更大的靈活性。

3.--實現方法

  通常在用戶需要實現IAP功能時,即用戶程序運行中作自身的更新操作,需要在設計固件程序時編寫兩個項目代碼,這兩部分項目代碼都同時燒錄在User Flash中,當芯片上電後,首先是第一個項目代碼開始運行,它作如下操作:

  1)檢查是否需要對第二部分代碼進行更新

  2)如果不需要更新則轉到4)

  3)執行更新操作

  4)跳轉到第二部分代碼執行

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

  在第二部分代碼開始執行時,首先需要把CPU的中斷向量表映像到自己的向量表,然後再執行其他的操作。

  如果IAP程序被破壞,產品必須返廠才能重新燒寫程序,這是很麻煩並且非常耗費時間和金錢的。針對這樣的需求,STM32在對Flash區域實行讀保護的同時,自動地對用戶Flash區的開始4頁設置爲寫保護,這樣可以有效地保證IAP程序區域不會被意外地破壞。

4.--IAP與ISP的區別

  在線編程目前有兩種實現方法:在系統編程(ISP)和在應用編程(IAP)。ISP一般是通過單片機專用的串行編程接口對單片機內部的Flash存儲器進行編程,而IAP技術是從結構上將Flash存儲器映射爲兩個存儲體,當運行一個存儲體上的用戶程序時,可對另一個存儲體重新編程,之後將控制從一個存儲體轉向另一個。ISP的實現一般需要很少的外部電路輔助實現,而IAP的實現更加靈活,通常可利用單片機的串行口接到計算機的RS232口,通過專門設計的固件程序來編程內部存儲器。



發佈了24 篇原創文章 · 獲贊 28 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章