- 相關(guān)推薦
TMS320VC5402 DSP并行8bit EPROM引導(dǎo)裝載方法研究
摘要:TMS320VC5402 DSP芯片并行引導(dǎo)的特點和引導(dǎo)的過程中,設(shè)計了并行8bit EPROM引導(dǎo)裝載的電路,并給出了實現(xiàn)方法。實踐證明,該電路和方法在利用TMS320VC5402 DSP芯片設(shè)計系統(tǒng)時非常簡便,具有很大的實用性。關(guān)鍵詞:DSP 引導(dǎo)裝載 并行引導(dǎo)表
TMS320VC5402(以下簡稱C5402)是德州儀器公司(TI)推出的性價比極高的16bit定點數(shù)字信號處理器(DSP),操作速率可達100MIPS,它的內(nèi)部資源配置為用戶構(gòu)造系統(tǒng)提供了很大便利。
C5402芯片配置有4K×16bit片內(nèi)屏蔽式的ROM(F000h-FFFFh)。在4K ROM資源里,包含了Bootloader程序。這個Bootloader程序在系統(tǒng)通電后能自動將存放在外部載體的用戶代碼引導(dǎo)到程序存儲器的任何空間或片內(nèi)RAM。如果芯片的MP/MC腳在復(fù)位時為低電位,指令從片內(nèi)ROM的FF80h地址開始執(zhí)行,在FF80h地址后有一個跳轉(zhuǎn)指令自動轉(zhuǎn)入到Bootloader程序,由Bootloader程序進行引導(dǎo)裝載用戶程序。
C5402芯片內(nèi)包含有16K×16bit雙存取的RAM(DARAM)。DARAM分成兩個塊,每個塊為8K,每個塊在一個機器周期內(nèi)支持兩次讀或一次讀和一次寫。片內(nèi)DARAM位于數(shù)據(jù)空間0080h-3FFFh地址,通過設(shè)置C5402寄存器PMST的OVLY位為1,可以把片內(nèi)RAM映射成程序/數(shù)據(jù)存儲空間。用戶在設(shè)計自己的系統(tǒng)時,如程序容量不超過16K,則可考慮充分利用芯片的內(nèi)部資源,采用引導(dǎo)裝載的方式,以降低系統(tǒng)的設(shè)計難度和設(shè)計成本、縮短產(chǎn)品研制周期。
1 8bit EPROM引導(dǎo)裝載的特點和初始化
TMS320VC5402 Bootloader用于在芯片通電時將存儲于外部的用戶代碼傳輸?shù)絻?nèi)部或外部程序存儲器,用戶代碼可存儲在外部速度較慢的非失憶性的存儲器內(nèi),使C5402能外擴普通低速的EPROM。經(jīng)引導(dǎo)后,用戶代碼可裝載到高速的片內(nèi)或片外RAM中執(zhí)行,以充分發(fā)揮C5402指令高速運行的特點。
Bootloader能提供許多種引導(dǎo)方式以適配不同的系統(tǒng)設(shè)備,包括兩種并行總線方式、串口方式以及主機口方式(HPI),具有很強的系統(tǒng)靈活性。同時支持8位字節(jié)和16位字的模式。8bit EPROM并行引導(dǎo)是設(shè)計C5402 DSP系統(tǒng)最常用、最經(jīng)濟、最簡便的引導(dǎo)方式,用戶代碼可存儲在低速的EPROM外設(shè)中,其地址位于外部數(shù)據(jù)空間的4000h~FFFFh段,共48K。要實現(xiàn)EPROM并行引導(dǎo)至片內(nèi)RAM,C5402首先要進行如下初始化設(shè)置:
(1)將芯片的MP/MC腳接地,使C5402工作在微計算機方式;
(2)設(shè)置寄存器PMST中OVLY=1,使片內(nèi)RAM0080h~3FFFh既映射在程序區(qū),又映射在數(shù)據(jù)區(qū);
(3)設(shè)置寄存器PMST中DROM=0,使F000h~FFFFh映射在外部數(shù)據(jù)區(qū);
(4)程序和數(shù)據(jù)空間設(shè)置成7個等待狀態(tài)。
(2)、(3)、(4)項用C5402芯片掩摸ROM中的引導(dǎo)程序?qū)崿F(xiàn)。在C5402上電復(fù)位后,指令總是從FF80h處執(zhí)行,然后自動跳轉(zhuǎn)到內(nèi)部引導(dǎo)程序入口地址F800h,判斷芯片MP/MC位,若為邏輯0,則執(zhí)行引導(dǎo)程序。
2 8bit EPROM引導(dǎo)裝載的實現(xiàn)
2.1 EPROM并行引導(dǎo)過程
為使C5402能有效地把外擴EPROM中的程序引導(dǎo)到芯片內(nèi)RAM,需要編制一個引導(dǎo)表。引導(dǎo)表定位于數(shù)據(jù)空間的4000h~FFFFh段,引導(dǎo)表的內(nèi)容包含如下幾個方面:(1)引導(dǎo)方式的標識;(2)程序存放的目標首地址;(3)程序執(zhí)行的入口址址;(4)用戶程序代碼;(5)用戶程序塊長度。
引導(dǎo)表數(shù)據(jù)結(jié)構(gòu)是通過執(zhí)行鏈接命令程序和Hex轉(zhuǎn)換公用命令程序形成的。在鏈接命令程序中分配了程序和數(shù)據(jù)結(jié)構(gòu),在Hex轉(zhuǎn)換公用命令程序中定義了引導(dǎo)方式、程序執(zhí)行的入口地址和外部EPROM的首地址。
片內(nèi)ROM的引導(dǎo)程序首先讀取I/O空間的FFFFh地址內(nèi)容(指定為4000h)作為引導(dǎo)表的起始地址,通過判別引導(dǎo)表起始地址內(nèi)的引導(dǎo)標識來確定是8位并行還是16位并行引導(dǎo)方式。若引導(dǎo)標識是10AAh,則是16位的并行引導(dǎo)方式;若引導(dǎo)標識是08AAh,則是8位的并行引導(dǎo)方式。
當從I/O空間FFFFh地址讀取不到有效的引導(dǎo)標識時,片內(nèi)ROM的引導(dǎo)程序即讀取數(shù)據(jù)空間FFFFh的內(nèi)容作為引導(dǎo)表的起始地址。同樣通過判別引導(dǎo)表起始地址內(nèi)的引導(dǎo)標識來確定是8位并行還是16位并行引導(dǎo)方式。當EPROM數(shù)據(jù)位寬是8bit時,則要讀取數(shù)據(jù)空間FFFFh地址的內(nèi)容(低字節(jié))和FFFEh地址的內(nèi)容(高字節(jié))作為引導(dǎo)表的起始地址。
2.2 硬件實現(xiàn)電路
8bit EPROM引導(dǎo)裝載的實現(xiàn)電路如圖1所示。
圖中D3、D4器件為74AHC373,提供了C5402采集I/O端口地址FFFFh的數(shù)據(jù),這里設(shè)置為4000h。EPROM選用27C512-60(64k),緩沖器74AHC244作電平變換用,EPROM的片選端和緩沖器的選通端同時接C
5402的數(shù)據(jù)選通信號MSTRB。當程序引導(dǎo)完后,MSTRB為高,緩沖器74AHC244輸出為高阻,可以并掛在數(shù)據(jù)總線上。
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
當C5402讀取I/O端口地址FFFFh時,IOSTRB為低有效,同時地址線A15為高,經(jīng)反相與IOSTRB信號相“或”,以選通D3、D4器件,C5402即采集到引導(dǎo)表起始地址4000h。當用戶不采用從I/O端口讀取引導(dǎo)表起始地址時,C5402將讀取數(shù)據(jù)文憑間FFFFh地址的內(nèi)容和FFFEh地址的內(nèi)容作為引導(dǎo)表的起始地址。在將程序代碼用編程器寫入到EPROM時,將EPROM的FFFFh地址和FFFEh內(nèi)容寫定為00和40即可。若使用低于64k的EPROM時,只要在EPROM的最高兩個地址寫入00和40即可。例如,使用8K EPROM,而C5402的地址線只用到A0~A12,那么在EPROM的1FFFh和1FFEh地址寫入00和40即可,并將Hex制轉(zhuǎn)換命令程序中的-bootorg 0x4000句修改為-bootorg 0x0000。
2.3 編制命令文件程序
(1)鏈接命令文件程序(文件名設(shè)為dsp5402lj.cmd):
;dsp5402lj.cmd program
dsp5402.obj ;輸入?yún)R編后的文件名
-o dsp5402.out -m dsp5402.map ;設(shè)定輸出文件名
MEMORY ;內(nèi)部存儲器分配
{
PAGE 0:ROM:origin=0080h length=1000h
;程序引導(dǎo)后首地址和塊長度
PAGE 1:RAM:origin=200h length=500h
;定義數(shù)據(jù)塊首地址和塊長度
}
SECTIONS
{
.text:>ROM ;將text段定義的程序放入程序頁
.bss:>RAM ;將bss段定義的數(shù)據(jù)塊放入數(shù)據(jù)頁
}
(2)Hex制轉(zhuǎn)換命令程序(文件名設(shè)dsp5402h.cmd):
;dsp5402h.cmd program
dsp5402.out ;輸入鏈接后的文件名
-o dsp5402.m1 ;定義輸出文件名和格式
-m1 ;輸入文件格式為Motrola-s1
-memwidth 8 ;定義8位EPROM
-romwidth 8 ;輸出文件是字節(jié)
-bbtorg 0x4000 ;外擴EPROM存放代碼的首地址
-e 0x0080 ;定義引導(dǎo)后程序執(zhí)行的入口地址
SCTIONS {.text:BOOT}
2.4 創(chuàng)建并行引導(dǎo)表
為充分發(fā)揮C5402的引導(dǎo)特點,必須建立一個包含完整數(shù)據(jù)流的引導(dǎo)表。引導(dǎo)表通過Hex轉(zhuǎn)換應(yīng)用工具來實現(xiàn)。當執(zhí)行Hex轉(zhuǎn)換命令程序時,不同的引導(dǎo)方式和引導(dǎo)選項,建立的引導(dǎo)表內(nèi)容將所不同。引導(dǎo)表的建立包括如下三個步驟:
(1)匯編文件
用C5402匯編語言在文本形式下編程,執(zhí)行如下命令:
asm500.exe -1 -v548
程序?qū)⒈粎R編成后綴名為obj的目標文件,命令中如文件名缺省,目標文件名與匯編程序源文件名相同。
(2)鏈接文件
執(zhí)行命令:lnk500.exe dsp5402lj.cmd
dsp5402lj.cmd為鏈接命令文件名,由用戶編程確定用戶代碼裝載引導(dǎo)的入口地址、程序塊長度以及程序段和數(shù)據(jù)段的分配。引導(dǎo)表內(nèi)數(shù)據(jù)的每一個塊同等于COFF文件的一個初始化段,初始化段包括:.text,.data,和.sect。未初始化段為:.bss和.usect。
(3)執(zhí)行Hex轉(zhuǎn)換公用命令程序
執(zhí)行命令:Hex500.exe dsp5402h.cmd
dsp5402h.cmd為Hex轉(zhuǎn)換命令文件名。對可執(zhí)行的COFF文件使用Hex轉(zhuǎn)換公用程序進行轉(zhuǎn)換后得到若干種標準的十六進制格式文件。轉(zhuǎn)換后的十六進制格式文件即是引導(dǎo)表的內(nèi)容,引導(dǎo)表包含并行引導(dǎo)的標識、程序執(zhí)行的入口地址、程序存放的目的地址、用戶程序及用戶程序塊長度。利用編程器可以將引導(dǎo)表的內(nèi)容寫入EPROM,然后將EPROM插入C5402用戶系統(tǒng)中運行。
【TMS320VC5402 DSP并行8bit EPROM引導(dǎo)裝載方法研究】相關(guān)文章:
TMS320VC5402外部并行引導(dǎo)裝載方法的研究08-06
TMS320VC5402的并行引導(dǎo)裝載方案的研究與設(shè)計08-06
DSP外掛Flash在系統(tǒng)編程及并行引導(dǎo)裝載方法08-06
DSP56362的雙引導(dǎo)裝載方法研究與實現(xiàn)08-06
DSP+FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計與實現(xiàn)08-06
雙核DSP片TMS320VC5421的并行引導(dǎo)方案08-06