欧美激情久久久久久,人妻久久精品天天中文字幕,国产精品无码色一区二区三区按摩 ,日韩中文无码有码免费视频

程控直流電源電路設計工程師講解單片機三種燒錄方式ISP、IAP和ICP有什么不同?

程控直流電源電路設計工程師玩單片機的都應該聽(tīng)說(shuō)過(guò)這幾個(gè)詞。一直搞不太清楚他們之間的區別。今天查了資料后總結整理如下。

ISP:In System Programing,

在系統編程;

IAP:In applicaTIng Programing,

在應用編程;

ICP:In Circuit Programing,

在電路編程。


ISP是指可以在板級上進(jìn)行編程,也就是不用拆芯片下來(lái),寫(xiě)的是整個(gè)程序,一般是通過(guò)ISP接口線(xiàn)來(lái)寫(xiě)。

IAP雖然同樣也是在板級上進(jìn)行編程,但是是自已對自已進(jìn)行編程,在應用中進(jìn)行編程,也即可以只是更改某一部分而不影響系統的其它部分,另外接口程序是自已寫(xiě)的,這樣可以進(jìn)行遠程升級而不影響應用。

程控直流電源電路設計工程師講解單片機三種燒錄方式ISP、IAP和ICP有什么不同?


程控直流電源電路設計工程師打個(gè)比喻吧:ISP是把房子拆了再重造一間,那么在造好之前當然是不能住人的;IAP是在造好的房子里邊進(jìn)行一些裝修,當然人可以繼續住。


ICP是在電路編程,是LPC芯片的編程方式,相當于A(yíng)TMEL的ISP,而LPC的ISP就相當于A(yíng)TMEL的IAP了。


ISP與IAP


程控直流電源電路設計工程師講解ISP定義


用寫(xiě)入器將code燒入,不過(guò),芯片可以在目標板上,不用取出來(lái),在設計目標板的時(shí)候就將接口設計在上面,所以叫“在系統編程”,即不用脫離系統。


IAP定義


在應用編程,有芯片本身(或通過(guò)外圍的芯片)可以通過(guò)一系列操作將code寫(xiě)入,比如一款支持IAP的單片機,內分3個(gè)程序區,1作引導程序區,2作運行程序區,3作下載區,芯片通過(guò)串口接收到下載命令,進(jìn)入引導區運行引導程序,在引導程序下將new code內容下載到下載區,下載完畢并校驗通過(guò)后再將下載區內容復制到2區,運行復位程序,則IAP完成。


ISP與IAP觸發(fā)方式


ISP的觸發(fā)方式

程控直流電源電路設計工程師講解四種觸發(fā)方式


1.由外部硬件電路:如VDD保持高電平,給RST連續3個(gè)脈沖。

2.檢測狀態(tài)位:如ISPEN,為0時(shí)PC指針從0000H開(kāi)始執行;為1時(shí),通過(guò)“引導向量”計算出“ISP代碼”的位置。每次復位后都會(huì )檢測該狀態(tài)位。

3.中止控制符信號觸發(fā)芯片復位:中止控制符信號就是指在異步串行口的接收腳上出現長(cháng)達一幀長(cháng)度的低電平,這里一幀的長(cháng)度與異步串行口的工作模式有關(guān)。

4.直接調用ISP:用戶(hù)程序也可以調用,但是很危險。


4種方式的目的是相同的——進(jìn)入ISP子程序。


而進(jìn)入ISP代碼的目的是:進(jìn)入BootROM。


程控直流電源電路設計工程師講解IAP的觸發(fā)方式


IAP的觸發(fā)比較簡(jiǎn)單一些,沒(méi)有外部觸發(fā)。通過(guò)一些指示位(SST為SC0/SC1、SFCFhilips為一段IAP子程序,保存在FF00H~FFFFH地址空間中),達到引導到BootROM的目的。


殊途同歸,ISP、IAP所進(jìn)入的BootROM里面駐留的Boot代碼,才是最終目標。


并行編程模式。不需要BootROM,直接設置芯片的多個(gè)引腳來(lái)讓芯片識別命令(如:擦除、寫(xiě)入、驗證等),從P口傳地址、數據,就可以寫(xiě)入Flash。


用LPC2000的IAP,你自己分配好FLASH空間,指定一個(gè)BLOCK用來(lái)存放你的數據,然后通過(guò)IAP進(jìn)行寫(xiě)操作。每次開(kāi)機后,從這個(gè)BLOCK讀你的數據。


程控直流電源電路設計工程師講解IAP的實(shí)現


通常在用戶(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ì )被意外地破壞。

圖片加載中...

在線(xiàn)留言

◎歡迎您的留言,您也可以通過(guò)以下方式聯(lián)系我們:

◎客戶(hù)服務(wù)熱線(xiàn):021-51095123

◎郵箱:xin021@126.com

展開(kāi)