最近本人在學習ARM7的遠程升級,在這里將自己的學習過程與大家分享,有錯誤的地方還請大家指出便于改正!
ISP(In-System Programming)即“在系統(tǒng)可編程”,指電路板上的空白器件可以編程寫入最終用戶代碼, 而不需要從電路板上取下器件,已經(jīng)編程的器件也可以用ISP方式擦除或再編程。
IAP(In-Application Programming) 即MCU可以在系統(tǒng)中獲取新代碼并對自己重新編程,即可用程序來改變程序。ISP和IAP技術是未來儀器儀表的發(fā)展方向。
ISP和IAP的工作原理
ISP的實現(xiàn)相對要簡單一些,一般通用做法是內(nèi)部的存儲器可以由上位機的軟件通過串口來進行改寫。對于單片機來講可以通過SPI或其它的串行接口接收上位機傳來的數(shù)據(jù)并寫入存儲器中。所以即使我們將芯片焊接在電路板上,只要留出和上位機接口的這個串口,就可以實現(xiàn)芯片內(nèi)部存儲器的改寫,而無須再取下芯片。
IAP的實現(xiàn)相對要復雜一些,在實現(xiàn)IAP功能時, 單片機內(nèi)部一定要有兩塊存儲區(qū),一般一塊被稱為BOOT區(qū),另外一塊被稱為APP(應用程序)區(qū)。單片機上電運行在BOOT區(qū),如果有外部改寫程序的條件滿足,則對存儲區(qū)的程序進行改寫操作且程序指針跳到存儲區(qū),開始執(zhí)行放在存儲區(qū)的程序,這樣便實現(xiàn)了IAP功能,如果條件不滿足則再次執(zhí)行BOOT區(qū)的程序,保證可以進行再次的IAP。
通常在程序設計時有兩種思路,見下圖
思路1:將MCU分為3個區(qū):BootLoader區(qū)、APP1(應用程序1)區(qū)、APP2(應用程序2)區(qū),系統(tǒng)上電后程序從BootLoader區(qū)開始執(zhí)行,根據(jù)條件選擇跳到APP1(應用程序1)區(qū)中,當需要使用遠程升級時,通過IAP,對APP2(應用程序2)區(qū)進行編程,改變相關標志位,然后使系統(tǒng)復位,系統(tǒng)再次從BootLoader區(qū)開始執(zhí)行,通過判斷標志位,選擇跳到APP1(應用程序1)區(qū)或者APP2(應用程序2)區(qū)。當再次升級時,再對APP2(應用程序2)區(qū)進行編程,保證APP1(應用程序1)區(qū)不改變,這樣即使升級失敗,也能正常運行APP1(應用程序1)區(qū)程序,可以再次遠程升級。
思路2:思路2是對思路1的簡化,即將MCU分為2個區(qū):BootLoader區(qū)與APP1(應用程序1)區(qū)合為一體、APP2(應用程序2)區(qū),系統(tǒng)上電后程序從BootLoader區(qū)開始執(zhí)行,由于兩者合為一體了,所以也就運行了APP1程序,當需要使用遠程升級時,通過IAP,對APP2(應用程序2)區(qū)進行編程,改變相關標志位,然后使系統(tǒng)復位,系統(tǒng)再次從BootLoader區(qū)開始執(zhí)行,通過判斷標志位,選擇跳到APP2(應用程序2)區(qū)。當再次升級時,再對APP2(應用程序2)區(qū)進行編程,保證BootLoader區(qū)不改變,這樣即使升級失敗,也能正常運行APP1(應用程序1)區(qū)程序,可以再次遠程升級。
思路1與思路2的總體思想是一樣的,他們遠程升級的核心都是IAP,而這里的IAP就是遠程升級時所要用到的非常重要的知識點。這個IAP我打算放到下一篇重點介紹,這里的兩種思路后續(xù)還會介紹,今天先和大家講講ISP的使用,由于J-Link的普及(既可調(diào)試程序也可直接下載程序),所以實際產(chǎn)品開發(fā)過程中ISP用的比較少,所以這里就簡單介紹一下利用ISP下載程序。
%20ISP的使用:
%20講ARM7%20LPC2378的ISP,這里不得不提NXP公司的工具Flash%20Magic。下載地址:http://www.flashmagictool.com/%20點擊打開鏈接%20%20%20%20%20%20%20%20%20%20%20%20仔細看一下LPC2378的數(shù)據(jù)手冊,會發(fā)現(xiàn)LPC2378一個引腳的名稱為ISP(P2.10),P2.10%20復位后的低電平被當作啟動%20ISP%20命令處理器的外部硬件請求。
注意:在將管腳%20P2.10%20作為%20ISP%20硬件請求時需要特別注意:由于%20P2.10%20在復位后處于高阻模式,所以要使該管腳的狀態(tài)穩(wěn)定,%20用戶需要提供外部硬件(上拉電阻或其它器件)。否則一不小心可能就進入了%20ISP%20模式。
%20%20%20%20%20%20%20%20%20
ISP電路設計時加上上拉電阻
Flash Magic燒寫程序:
1、選擇芯片類型、COM口、波特率、晶振頻率為實際硬件電路的晶振頻率
2、選擇需要擦除的Flash
3、點擊Browse,選擇要下載的Hex文件
4、選擇編譯完成后進行校驗
5、點擊Start,開始下載