**********===1.1 iap
isp:在系統程式設計,一般來說通過串列埠對程式進行更新. 不需要專門的程式設計器,如jlink.
isp的實現相對要簡單一些,一般通用做法是內部的儲存器可以由上位機的軟體通過串列埠來進行改寫。對於微控制器來講可以通過spi或其它的序列介面接收上位機傳來的資料並寫入儲存器中。所以即使我們將晶元焊接在電路板上,只要留出和上位機介面的這個串列埠,就可以實現晶元內部儲存器的改寫,而無須再取下晶元。
iap的實現相對要複雜一些,在實現iap功能時,微控制器內部一定要有兩塊儲存區,一般一塊被稱為boot區,另外一塊被稱為儲存區。微控制器上電執行在boot區,如果有外部改寫程式的條件滿足,則對儲存區的程式進行改寫操作。如果外部改寫程式的條件不滿足,程式指標跳到儲存區,開始執行放在儲存區的程式,這樣便實現了iap功能。
通常實現 iap 功能時,即使用者程式執行中作自身的更新操作,需要在設計韌體程式時編寫兩個專案**,第乙個專案程式不執行正常的功能操作,而只是通過某種通訊方式(如 usb、 usart)接收程式或資料,執行對第二部分**的更新;第二個專案**才是真正的功能**。 這兩部分專案**都同時燒錄在 user flash 中,當晶元上電後,首先是第乙個專案**開始執行,它作如下操作:
1)檢查是否需要對第二部分**進行更新
2)如果不需要更新則轉到 4)
3)執行更新操作
4)跳轉到第二部分**執行
第一部分**必須通過其它手段,如 jtag 或 isp 燒入;
第二部分**可以使用第一部分** iap 功能燒入,也可以和第一部分**一起燒入,以後需要程式更新時再通過第一部分 iap**更新。
**********====2.1非iap程式執行流程圖
**********===2.2 iap程式執行流程
注意:
下面再寫一篇s32k144 canbootloader的具體工程實現.
SpringMVC工作流程及原理
1 客戶發起請求到dispatcherservlet 前端控制器 4 dispatcherservlet呼叫handleadapter 處理器介面卡 處理handle,並返回乙個viewandmodel物件 5 dispatcherservlet呼叫viewresolve處理viewandmodel...
gstreamer外掛程式工作原理與流程分析
gstreamer plugins的工作同所有的基於外掛程式的程式的工作原理類似,本質上都是通過讀取動態庫實現的,只需要每個動態庫都實現某乙個特定的介面就可以了,比如xx init等,gstreamer統一使用plugin init。裡面會有個像登錄檔一樣的資料結構會儲存所有的外掛程式的資訊。1 在...
gstreamer外掛程式工作原理與流程分析
gstreamer plugins的工作同所有的基於外掛程式的程式的工作原理類似,本質上都是通過讀取動態庫實現的,只需要每個動態庫都實現某乙個特定的介面就可以了,比如xx init等,gstreamer統一使用plugin init。裡面會有個像登錄檔一樣的資料結構會儲存所有的外掛程式的資訊。1 在...