《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > TMS320VC5402 DSP并行8bit EPROM引導(dǎo)裝載方法研究
TMS320VC5402 DSP并行8bit EPROM引導(dǎo)裝載方法研究
庾新林
摘要: TMS320VC5402 DSP芯片并行引導(dǎo)的特點(diǎn)和引導(dǎo)的過程,設(shè)計了并行8bit EPROM引導(dǎo)裝載的電路,并給出了實(shí)現(xiàn)方法。實(shí)踐證明,該電路和方法在利用TMS320VC5402 DSP芯片設(shè)計系統(tǒng)時非常簡便,具有很大的實(shí)用性。
關(guān)鍵詞: DSP 引導(dǎo)裝載 TMS320VC5402
Abstract:
Key words :

  摘  要: TMS320VC5402" title="TMS320VC5402">TMS320VC5402 DSP" title="DSP">DSP芯片并行引導(dǎo)的特點(diǎn)和引導(dǎo)的過程,設(shè)計了并行8bit EPROM引導(dǎo)裝載" title="引導(dǎo)裝載">引導(dǎo)裝載的電路,并給出了實(shí)現(xiàn)方法。實(shí)踐證明,該電路和方法在利用TMS320VC5402 DSP芯片設(shè)計系統(tǒng)時非常簡便,具有很大的實(shí)用性。 

  關(guān)鍵詞: DSP  引導(dǎo)裝載  并行引導(dǎo)表 

 

  TMS320VC5402(以下簡稱C5402)是德州儀器公司(TI)推出的性價比極高的16bit定點(diǎn)數(shù)字信號處理器(DSP),操作速率可達(dá)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程序進(jìn)行引導(dǎo)裝載用戶程序。 

  C5402芯片內(nèi)包含有16K×16bit雙存取的RAM(DARAM)。DARAM分成兩個塊,每個塊為8K,每個塊在一個機(jī)器周期內(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)裝載的特點(diǎn)和初始化

  TMS320VC5402 Bootloader用于在芯片通電時將存儲于外部的用戶代碼傳輸?shù)絻?nèi)部或外部程序存儲器,用戶代碼可存儲在外部速度較慢的非失憶性的存儲器內(nèi),使C5402能外擴(kuò)普通低速的EPROM。經(jīng)引導(dǎo)后,用戶代碼可裝載到高速的片內(nèi)或片外RAM中執(zhí)行,以充分發(fā)揮C5402指令高速運(yùn)行的特點(diǎn)。 

  Bootloader能提供許多種引導(dǎo)方式以適配不同的系統(tǒng)設(shè)備,包括兩種并行總線方式、串口方式以及主機(jī)口方式(HPI),具有很強(qiáng)的系統(tǒng)靈活性。同時支持8位字節(jié)和16位字的模式。8bit EPROM 并行引導(dǎo)是設(shè)計C5402 DSP系統(tǒng)最常用、最經(jīng)濟(jì)、最簡便的引導(dǎo)方式,用戶代碼可存儲在低速的EPROM外設(shè)中,其地址位于外部數(shù)據(jù)空間的4000h~FFFFh段,共48K。要實(shí)現(xiàn)EPROM 并行引導(dǎo)至片內(nèi)RAM,C5402首先要進(jìn)行如下初始化設(shè)置: 

  (1)將芯片的MP/MC腳接地,使C5402工作在微計算機(jī)方式; 

  (2)設(shè)置寄存器PMST中OVLY=1,使片內(nèi)RAM 0080h~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)裝載的實(shí)現(xiàn) 

2.1 EPROM 并行引導(dǎo)過程

  為使C5402能有效地把外擴(kuò)EPROM中的程序引導(dǎo)到芯片內(nèi)RAM,需要編制一個引導(dǎo)表。引導(dǎo)表定位于數(shù)據(jù)空間的4000h-FFFFh段,引導(dǎo)表的內(nèi)容包含如下幾個方面:(1)引導(dǎo)方式的標(biāo)識;(2)程序存放的目標(biāo)首地址;(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)標(biāo)識來確定是8位并行還是16位并行引導(dǎo)方式。若引導(dǎo)標(biāo)識是10AAh,則是16位的并行引導(dǎo)方式;若引導(dǎo)標(biāo)識是08AAh,則是8位的并行引導(dǎo)方式。 

  當(dāng)從I/O空間FFFFh地址讀取不到有效的引導(dǎo)標(biāo)識時,片內(nèi)ROM的引導(dǎo)程序即讀取數(shù)據(jù)空間FFFFh的內(nèi)容作為引導(dǎo)表的起始地址。同樣通過判別引導(dǎo)表起始地址內(nèi)的引導(dǎo)標(biāo)識來確定是8位并行還是16位并行引導(dǎo)方式。當(dāng)EPROM數(shù)據(jù)位寬是8bit時,則要讀取數(shù)據(jù)空間FFFFh地址的內(nèi)容(低字節(jié))和FFFEh地址的內(nèi)容(高字節(jié))作為引導(dǎo)表的起始地址。 

2.2 硬件實(shí)現(xiàn)電路

  8bit EPROM引導(dǎo)裝載的實(shí)現(xiàn)電路如圖1所示。

 

 

  圖中D3、D4器件為74AHC373,提供了C5402采集I/O端口地址FFFFh的數(shù)據(jù),這里設(shè)置為4000h。EPROM選用27C512-60(64k),緩沖器74AHC244作電平變換用,EPROM的片選端和緩沖器的選通端同時接C5402的數(shù)據(jù)選通信號MSTRB。當(dāng)程序引導(dǎo)完后,MSTRB為高,緩沖器74AHC244輸出為高阻,可以并掛在數(shù)據(jù)總線上。 

  當(dāng)C5402讀取I/O端口地址FFFFh時,IOSTRB為低有效,同時地址線A15為高,經(jīng)反相與IOSTRB信號相“或”,以選通D3、D4器件,C5402即采集到引導(dǎo)表起始地址4000h。當(dāng)用戶不采用從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=2000h  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   ;輸出文件格式為Motorola-s1 

    -memwidth 8     ;定義8位 EPROM  

    -romwidth 8    ;輸出文件是字節(jié) 

    -bootorg 0x4000 ;外擴(kuò)EPROM存放代碼的首地址 

    -e 0x0080       ;定義引導(dǎo)后程序執(zhí)行的入口地址 

    SCTIONS {.text:BOOT} 

2.4 創(chuàng)建并行引導(dǎo)表

  為充分發(fā)揮C5402的引導(dǎo)特點(diǎn),必須建立一個包含完整數(shù)據(jù)流的引導(dǎo)表。引導(dǎo)表通過Hex轉(zhuǎn)換應(yīng)用工具來實(shí)現(xiàn)。當(dāng)執(zhí)行Hex轉(zhuǎn)換命令程序時,不同的引導(dǎo)方式和引導(dǎo)選項,建立的引導(dǎo)表內(nèi)容將有所不同。引導(dǎo)表的建立包括如下三個步驟: 

  (1)匯編文件 

  用C5402匯編語言在文本形式下編程,執(zhí)行如下命令: 

    asm500.exe -l -v548 

  程序?qū)⒈粎R編成后綴名為obj的目標(biāo)文件,命令中如文件名缺省,目標(biāo)文件名與匯編程序源文件名相同。 

  (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)換公用程序進(jìn)行轉(zhuǎn)換后得到若干種標(biāo)準(zhǔn)的十六進(jìn)制格式文件。轉(zhuǎn)換后的十六進(jìn)制格式文件即是引導(dǎo)表的內(nèi)容,引導(dǎo)表包含并行引導(dǎo)的標(biāo)識、程序執(zhí)行的入口地址、程序存放的目的地址、用戶程序及用戶程序塊長度。利用編程器可以將引導(dǎo)表的內(nèi)容寫入EPROM,然后將EPROM插入C5402用戶系統(tǒng)中運(yùn)行。 

參考文獻(xiàn)

1 TMS320VC5402  FIXED-POINT  SIGNAL  PROCESSOR. from http://www.ti.com./ 

2 TMS320C54X  DSP (Literature Nunber:SPRU131F).TEXAS INSTRUMENTS,1999.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。