TKScope仿真/燒錄BootLoader方法
在ARM9內(nèi)核的開(kāi)發(fā)中,燒錄和仿真BootLoader程序一直是研發(fā)工程師頭痛的事情。原因是沒(méi)有高效的BootLoader下載程序和模仿BootLoader加載的仿真。因此整個(gè)BootLoader的調(diào)試開(kāi)發(fā)效率不高。
TKScope支持ARM芯片不同形式的BootLoader仿真/燒錄。例如,NXP公司LPC3000系列芯片可選擇從不同的外部設(shè)備啟動(dòng):NAND Flash、SPI存儲(chǔ)器、USB、UART或靜態(tài)存儲(chǔ)器。其中,NAND Flash、SPI存儲(chǔ)器啟動(dòng)方法比較常用。本文以LPC3000系列芯片為例,詳細(xì)講解TK-Scope仿真/燒錄NAND Flash、SPI存儲(chǔ)器的啟動(dòng)方法。LPC3000系列芯片NAND Flash、SPI存儲(chǔ)器啟動(dòng)原理是一樣的:芯片上電復(fù)位后,通過(guò)片內(nèi)BootLoader把外部存儲(chǔ)設(shè)備中的程序裝載到內(nèi)部的RAM中執(zhí)行。
1 實(shí)現(xiàn)NAND Flash啟動(dòng)仿真/燒錄方法
TKScope仿真之前需要正確地設(shè)置工作參數(shù),用戶可參考使用指南,這里只強(qiáng)調(diào)需要特別注意的兩項(xiàng)設(shè)置。
①[主要設(shè)置]選項(xiàng)。如圖1所示,要特別注意的是復(fù)位恢復(fù)時(shí)間的設(shè)置。圖1中的復(fù)位恢復(fù)時(shí)間就是Boot-Loader把NAND Flash中的程序裝載到芯片內(nèi)部RAM中的時(shí)間。時(shí)間值由用戶根據(jù)程序的大小來(lái)設(shè)定。
②[程序燒寫(xiě)]選項(xiàng)。如圖2所示,要特別注意的是Flash算法的選擇。LPC3000系列芯片內(nèi)部無(wú)Flash,所以編程算法中沒(méi)有Flash算法文件。選擇NAND Flash啟動(dòng),需要添加外部NAND Flash算法文件。
單擊[添加算法]按鈕,打開(kāi)TKScope驅(qū)動(dòng)安裝目錄下的ExtFlash文件夾,找到LPC3000系列芯片NANDFlash啟動(dòng)算法文件(路徑為 TKScope\configuration\Ext-Flash),如圖3所示??梢钥吹絅AND Flash算法文件有2種,用戶需要根據(jù)實(shí)際使用的NAND Flash類型來(lái)選擇。其中:LPC3000_NAND_2KBytesPage.flm為大頁(yè)NAND Flash算法文件;LPC3000_NAND_512BytesPage.flm為小頁(yè)NAND Flash算法文件。NAND Flash算法文件添加完畢后,界面如圖4所示。注意:此時(shí),F(xiàn)lash起始地址默認(rèn)為0x80000000,需要手動(dòng)修改為0x00000000。
程序燒寫(xiě)的最終界面如圖5所示,NAND Flash起始地址為Ox00000000。注意:[編程Flash]、[驗(yàn)證Flash]一定要選中,否則程序無(wú)法下載到Flash中。同時(shí),選擇[扇區(qū)擦除]選項(xiàng)。至此,TKScope仿真器工作參數(shù)設(shè)置完畢,可以開(kāi)始進(jìn)行仿真。
[!--empirenews.page--]
以Keil RealView MDK軟件為例,點(diǎn)擊XX進(jìn)入仿真狀態(tài),進(jìn)入之后點(diǎn)擊XX退出;然后,再次點(diǎn)擊XX進(jìn)入到仿真狀態(tài),此時(shí)就可以正確地進(jìn)行仿真調(diào)試了。也就是說(shuō),TK- Scope仿真NAND Flash啟動(dòng),需要連續(xù)2次進(jìn)入仿真狀態(tài),第2次進(jìn)入仿真狀態(tài)才可正常、正確地調(diào)試。這種操作方法是由LPC3000系列芯片NAND Flash啟動(dòng)原理決定的:第1次進(jìn)入仿真,主要任務(wù)是下載燒錄程序代碼到NAND Flash中,可以看到圖6所示的Flash編程提示框;第2次進(jìn)入仿真,主要任務(wù)是將LPC3000系列芯片復(fù)位,BootLoader把NAND Flask中的程序裝載到內(nèi)部RAM中。
用戶可以根據(jù)實(shí)際仿真需求,采用全速、單步、設(shè)置斷點(diǎn)等多種仿真方式來(lái)調(diào)試程序;同時(shí),可以打開(kāi)相應(yīng)的窗口觀察仿真結(jié)果。仿真界面如圖7所示。
2 實(shí)現(xiàn)SPI存儲(chǔ)器啟動(dòng)仿真/燒錄方法
TKScope實(shí)現(xiàn)SPI存儲(chǔ)器啟動(dòng)的仿真步驟及設(shè)置方法與NAND Flash啟動(dòng)是一樣的。這里只強(qiáng)調(diào)選擇Flash算法的不同之處。
用戶打開(kāi)TKScope驅(qū)動(dòng)安裝目錄下的ExtFlash文件夾,找到LPC3000系列芯片SPI存儲(chǔ)器啟動(dòng)外部Flash算法文件(路徑為 TKScope\configuration\ExtFlash),如圖8所示。SPI接口的Flash存儲(chǔ)器有幾種類型,TKScope仿真器會(huì)陸續(xù)提供相應(yīng)的算法文件,存放在圖8所示的Ext-Flash文件夾內(nèi)。本文所用Flash為SST25VF512,故選擇 LPC3000_SST25xFxxx.flm。
同樣,TKScope仿真SPI存儲(chǔ)器啟動(dòng),也需要連續(xù)2次進(jìn)入到仿真狀態(tài),第2次進(jìn)入仿真狀態(tài)才可正常、正確地調(diào)試。這種操作方法同樣是由 LPC3000系列芯片SPI存儲(chǔ)器啟動(dòng)原理決定的:第1次進(jìn)入仿真,主要任務(wù)是下載燒錄程序代碼到SPI存儲(chǔ)器中,可以看到Flash編程提示框;第2 次進(jìn)入仿真,主要任務(wù)是將LPC3000系列芯片復(fù)位,BootLoader把SPI存儲(chǔ)器中的程序裝載到內(nèi)部RAM中。
TKScope同樣可以實(shí)現(xiàn)其他公司芯片的BootLoader仿真。例如,Samsung公司的S3C2410/S3C2440芯片NAND Flash啟動(dòng),TKScope完全可以仿真,實(shí)現(xiàn)原理和操作方法與LPC3000系列基本相同。