- 相關推薦
TMS320VC5402外部并行引導裝載方法的研究
摘要:分析了TMS320VC5402 DSP的引導裝載過程,給出了兩個外部并行引導裝載的典型電路。針對這兩個電路設計了可脫離Flash燒寫器的仿真器在線編程裝載方法,并得到了實驗驗證。關鍵詞:DSP引導裝載 在線編程裝載 虛擬擴展程序空間 DSP
所謂引導方式就是指單片機(MCU)系統(tǒng)復位時,其系統(tǒng)軟件代碼所取得的方式。對于單片機來說,它使用復位矢量方式從程序空間的固定地址處開始取得指令代碼。如果所需代碼來自程序空間外部,則引導過程無法進行。TMS320VC5402 DSP內(nèi)部ROM中的引導裝載程序?Bootloader?使系統(tǒng)上電后能自動將程序代碼從外部?如Flash、Eprom、主機?引導裝載到DSP內(nèi)部或者外部程序存儲器中脫機運行。這樣的設計有三個突出點:一是程序代碼可以存儲在片外相對慢速、非易失性器件中,而裝載運行于高速器件;二是提供多種裝載方式,使得DSP可以靈活應用到不同系統(tǒng);三是省去對DSP片內(nèi)ROM進行掩膜編程操作,節(jié)省大量費用。
引導裝載程序根據(jù)不同的系統(tǒng)要求提供了多種裝載模式,主要包括并行I/O口引導裝載、串行口引導裝載、HPI引導裝載、外部并行引導裝載等模式,并且兼容8位和16位字引導裝載方式。
1 引導裝載程序分析
TMS320VC5402內(nèi)部4K字的ROM程序位于0xF000~0xFFFF程序空間,包括引導裝載程序、μ律和A律擴充表、正弦對照表、工廠測試碼和中斷向量表。其中,引導裝載程序位于0xF800~0xFBFF空間。復位時,如果TMS320VC5402處在微計算機方式?MP/MC=0?,則片內(nèi)ROM中的引導裝載程序就會被執(zhí)行。引導裝載程序在決定采用何種裝載模式之前,首先對CPU狀態(tài)寄存器進行初始化。初始化工作包括:禁止可屏蔽中斷?INTM=1?,內(nèi)部DARAM映射到程序/數(shù)據(jù)區(qū)?OVLY=1?,對程序和數(shù)據(jù)區(qū)均設置為7個等待狀態(tài)。初始化完成后,引導裝載程序執(zhí)行裝載模式判斷。判斷的順序是:HPI模式、SPI模式、外部并行模式、標準串口模式、并行I/O模式。圖1說明了整個裝載模式的判斷流程。
圖1 引導裝載模式選擇流程
2 外部并行裝載電路的設計
由圖1可知,外部并行裝載時?引導裝載程序先讀I/O空間FFFFh,判斷是否是有效的并行裝載模式;如果FFFFh處為非有效值,則讀數(shù)據(jù)空間FFFFh,判斷是否是有效的并行裝載模式。對于外部并行裝載,要求裝載時Flash位于數(shù)據(jù)空間。下面給出兩種實際應用過的并行裝載電路,如圖2所示。
圖2(a)適用于程序運行時不要求大數(shù)據(jù)空間的系統(tǒng)。若對DS(數(shù)據(jù)空間選擇)信號與A15地址線譯碼,Flash占用數(shù)據(jù)空間的8000h~FFFFh共32K空間,因此程序代碼的存儲區(qū)大小不能超過32K。當然,若對A15、A14與DS譯碼,Flash也可將整個片外48K的數(shù)據(jù)空間作為程序代碼的存放區(qū)。
圖2(b)將Flash分為16頁,每頁64K,Flash的片選信號CE利用DSP的A16~A19、通用I/O引腳XF以及程序/數(shù)據(jù)空間選擇?DS/PS?信號譯碼獲得。圖2?b?所示系統(tǒng)上電后,XF=1,譯碼后Flash的0頁映射到數(shù)據(jù)空間,此時引導裝載程序可利用它正確裝載;裝載完畢后,DSP從程序代碼的入口地址開始執(zhí)行,此時DSP設置XF=1,DSP利用內(nèi)部DARAM或者外部SRAM作為程序和數(shù)據(jù)空間存儲器,Flash的0頁被屏蔽而無法再操作,Flash的1~15頁作為DSP擴展程序存儲器使用。這樣設計系統(tǒng)電路有如下好處:由于裝載時與系統(tǒng)程序運行時數(shù)據(jù)空間的物理存儲器分離,系統(tǒng)程序可利用全部64K的數(shù)據(jù)空間;程序運行時程序代碼存儲器被屏蔽,保證了裝載程序的安全性;擴展程序空間可作為數(shù)據(jù)暫存或永久存儲空間,滿足了數(shù)據(jù)處理系統(tǒng)的要求。當然,也可使用單片64K的Flash作為程序代碼存儲器,以SRAM作為程序擴展空間存儲器。
圖2 外部并行裝載典型電路
3 外部并行裝載的仿真器在線編程
DSP引導裝載程序從外部數(shù)據(jù)存儲器(Flash)中讀取引導裝載表,并且裝載程序代碼到DSP片內(nèi)或片外程序存儲器。Flash中存儲的是引導裝載表。它的結構如表1所示。要使用TMS320VC5402的引導裝載功能,必須利用Hex轉換工具生成一個如表1所示結構的包含引導裝載操作所需的全部數(shù)據(jù)項的引導裝載表。表中第一個字08AAh/10AAh代表8/16位并行裝載模式。
表1 引導裝載表結構
08AAh或者10AAh SWWSR寄存器初始化值 BSCR寄存初始化值 程序入口地址XPC 程序入口地址指(PC) 第一程序塊大小 第一個程序塊目標地址XPC 第一個程序塊目標地址指針 程序代碼1 …… 程序代碼N 最后程序塊大小 最后程序塊目標地址XPC 最后程序塊目標地址指針 程序代碼1 …… 程序代碼N 代碼結束標志0000h
通常的DSP獨立系統(tǒng)都需要利用Flash燒寫器將引導裝載表寫入Flash中,對于采用表貼封裝的Flash器件,燒寫器無法寫入數(shù)據(jù)。為了解決這個問題,采用仿真器在線編程方式將引導裝載表數(shù)據(jù)寫入Flash,它具有節(jié)約開發(fā)成本、減小器件尺寸、編程靈活的特點。
對于圖2?a?所示的系統(tǒng),在仿真器仿真狀態(tài)下,將引導裝載表讀入DSP數(shù)據(jù)區(qū)的0000h~7FFFh空間,然后使用Flash在線編程方法將數(shù)據(jù)寫入Flash中,最后在Flash的FFFFh處寫入引導裝載表在Flash中的起始地址。編程完畢,復位系統(tǒng)即可實現(xiàn)裝載過程。
對于圖2(b)所示的系統(tǒng),仿真器在線編程則要復雜得多。由于在仿真狀態(tài)下,程序空間與Flash的0頁空間重疊,Flash的0頁被屏蔽,程序無法操作到Flash的存儲空間。為此,程序將Flash的0頁空間作為“虛擬擴展程序空間”,以便程序寫入引導裝載表。具體實現(xiàn)過程是:設置外部控制信號=1,此時譯碼電路將A18地址線信號取反,虛擬擴展程序空間開放。Flash的0頁空間虛擬成為擴展程序空間的040000h~04FFFFh空間。這樣,仿真器在線編程040000h~04FFFFh空間即相當于對Flash的0頁編程。編程完畢后,設置外部控制信號=0,復位系統(tǒng)后即可實現(xiàn)裝載過程。
本文分析了TMS320VC5402的引導裝載程序的裝載過程,給出了兩個經(jīng)常使用的外部并行裝載典型電路。針對兩個典型電路設計了仿真器在線編程裝載方法。利用此方法實現(xiàn)了一個以128K×16bit的SRAM作為程序和數(shù)據(jù)空間,以1M×16bit的Flash作為擴展程序空間和系統(tǒng)程序代碼存儲器的系統(tǒng)。該系統(tǒng)無需Flash燒寫器進行Flash數(shù)據(jù)寫入,并且完全利用了TMS320VC5402的全部存儲空間,充分發(fā)揮了DSP的效能。
【TMS320VC5402外部并行引導裝載方法的研究】相關文章:
TMS320VC5402的并行引導裝載方案的研究與設計08-06
TMS320VC5402 DSP并行8bit EPROM引導裝載方法研究08-06
DSP外掛Flash在系統(tǒng)編程及并行引導裝載方法08-06
DSP56362的雙引導裝載方法研究與實現(xiàn)08-06
C6202 ROM引導裝載方式的研究08-06
TMS320C6711的FLASH引導裝載系統(tǒng)研究與設計08-06
DSP+FLASH引導裝載系統(tǒng)的設計與實現(xiàn)08-06
淺談學困生的引導方法08-05