TMS320VC55x系列DSP在線(xiàn)燒寫(xiě)方法研究
隨著(zhù)數字信號處理技術(shù)的快速發(fā)展,DSP越來(lái)越廣泛地應用于各種數字信號處理系統中。由于TMS320VC55x系列DSP的內部存儲器沒(méi)有可供用戶(hù)使用的Flash,而最終開(kāi)發(fā)的系統要想脫離仿真器運行。必須將程序代碼存儲在非易失性存儲器中,所以要對DSP外接存儲器。Flash存儲器以其大容量和可在線(xiàn)編程等特點(diǎn)已成為DSP系統的一個(gè)基本配置。如何將程序燒寫(xiě)入Flash,并在上電時(shí)加載到DSP內部的RAM,是Flash在DSP系統中應用的兩個(gè)基本技術(shù)問(wèn)題。
以基于TI公司的TMS320VC5502和SST公司的SST39VF200開(kāi)發(fā)的系統為背景,詳細介紹了系統引導相關(guān)的硬件設計,燒寫(xiě)軟件設計以及自舉引導等實(shí)現方法。
2 TMS320VC5502的自舉引導
2.1 TMS320VC5502的存儲區以及Boofloader
TMS320VC5502的存儲區是統一分配地址,即對程序和數據的訪(fǎng)問(wèn)在相同的物理空間。TMS320VC5502的存儲區共分為4個(gè)區,即CE0,CEl,CE2,CE3,其字節地址分別為000000h-3FFFFFh,400000h~7FFFFFh,800000h~BFFFFFh.C00000h~FFFFFFh。片內存儲器共48 K字節,可分為32 K的16位字的RAM和16 K的16位字的ROM,片內RAM的字節地址為000000h~00FFFFh,位于CEl區;片內ROM的字節地址為FF8000h~FFFF00h。
片內ROM從FF8000h開(kāi)始的區域包含Bootloader,該程序在系統上電或復位后可以將用戶(hù)代碼自動(dòng)搬移到片內RAM運行。
2.2 自舉加載模式選擇
TMS320VC5502的引導模式選擇是通過(guò)3個(gè)模式選擇引腳BOOTM[0:2]配置完成的。BOOTM[0:2]引腳分別與GPl00,GPl01,GPl02相連。自舉加載模式選擇如表1所示。
TMS320VC5502每次上電復位后,在執行完一系列初始化工作后,根據預先配置的自舉模式,通過(guò)固化在ROM內的Bootloader程序進(jìn)行程序引導。系統設計中,采用EMIF(外部存儲接口)并行引導模式(16位數據寬度),只需將BOOTM[2:0]設置成011即可。
2.3 TMS320VC5502的引導表
Bootloader允許應用代碼存放在慢速非易失性的外部存儲器中,然后再將代碼搬移到高速的片內存儲器執行。應用代碼以一種Bootloader能夠理解的特殊格式編碼,這種格式就是自舉加載表。Boofloader在引導程序時(shí),程序代碼是以自舉加載表形式加載。自舉加載表包含了將要搬移的代碼段、程序段,以及這些段將要被搬移到的地址和加載完成后程序要執行的地址(即程序入口地址)和其他一些配置信息。
TMS320VC55x系列DSP的自舉加載表結構如表2所示。
其中,程序入口地址是自舉加載表加載結束后用戶(hù)程序開(kāi)始執行的地址;寄存器配置數目決定了后面有多少個(gè)寄存器需要配置:只有當延時(shí)標志為0xFFFF時(shí),延時(shí)才被執行;延時(shí)長(cháng)度決定了在寄存器配置后延時(shí)多少個(gè)CPU周期才進(jìn)行下一個(gè)動(dòng)作;段長(cháng)度、段起始地址和數據則為用戶(hù)程序中定義的各個(gè)段的內容,并且可以重復添加;最后以0x00000000(32個(gè)01作為引導表的結束標志。
若要生成引導表,可用CCS最終編譯生成的.out文件通過(guò)CCS自帶的hex55.exe轉換程序得到。將hex55.exe文件、.out文件、.cmd文件放在同一個(gè)文件夾中,通過(guò)DOS命令調用hex55.exe和.cmd文件,即可完成.out文件到.hex格式的引導表文件的轉化。.cmd文件用于提供引導表的相關(guān)配置信息,以下為一個(gè).cmd文件實(shí)例。
一boot:表示生成一個(gè)自舉加栽表
一v5510:2:生成C55x格式的自舉加載表
一parallell6:加載模式是16位外部異步存儲器
一a :要求的輸出格式是ASCII格式
一o mvbso.hex:指明輸出文件名
bso.out:指明輸入文件名
經(jīng)hex55.exe文件轉化后的.hex格式的自舉加載表文件是不能直接導入CCS中,CCS只支持將特別規定的DAT格式文件通過(guò)LDADDATA導入內存。所以在導入之前必須先將自舉加載表轉化成DAT格式文件,這個(gè)工作可以用VC編寫(xiě)簡(jiǎn)單的C語(yǔ)言轉化程序實(shí)現。
2.4 TMS320VC5502和Flash的連接
EMIF為外部存儲接口,通過(guò)EMIF接口可靈活地和各種同步或異步存儲器件無(wú)縫連接。通過(guò)EMIF接口可以將TMS320VC5502的存儲空間擴展到128 Mbit。存儲空間被分為CE0~CE3四個(gè)區.每區占用不同的地址。在EMIF的并行引導模式下,ROM固化的Bootloader程序是以字地址0x200000為首地址開(kāi)始加載程序。Ox200000即為CEl空間的首地址,所以Flash必須接在DSP的CEl空間上。
TMS320VC5502的EMIF有內部和外部?jì)煞N地址總線(xiàn)。內部地址總線(xiàn)為A[2l:2],外部地址總線(xiàn)為A[19:0]。EMIF根據所用的存儲器數據線(xiàn)大小自動(dòng)將內部地址總線(xiàn)移位,以便與外部地址總線(xiàn)連接。外存儲器的地址總線(xiàn)應該總是連接在EMIF、的以A2開(kāi)始的地址線(xiàn)上。例如一個(gè)8,16或32位的異步存儲器的地址總線(xiàn)A[n:0](其中n表示外存儲器的地址線(xiàn)個(gè)數)應該連接EMIF的地址線(xiàn)A[n+2:2]。圖1給出TMS320VC5502和Flash的連接實(shí)例。表3為T(mén)MS320VC5502的內部總線(xiàn)和外部地址總線(xiàn)的映象關(guān)系。
評論