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

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

  關鍵詞: DSP  引導裝載  并行引導表 

 

  TMS320VC5402(以下簡稱C5402)是德州儀器公司(TI)推出的性價比極高的16bit定點數(shù)字信號處理器(DSP),操作速率可達100MIPS,它的內部資源配置為用戶構造系統(tǒng)提供了很大便利。 

  C5402芯片配置有4K×16bit片內屏蔽式的ROM(F000h-FFFFh)。在4K ROM資源里,包含了Bootloader程序。這個Bootloader程序在系統(tǒng)通電后能自動將存放在外部載體的用戶代碼引導到程序存儲器的任何空間或片內RAM。如果芯片的MP/MC腳在復位時為低電位,指令從片內ROM的FF80h地址開始執(zhí)行,在FF80h地址后有一個跳轉指令自動轉入到Bootloader程序,由Bootloader程序進行引導裝載用戶程序。 

  C5402芯片內包含有16K×16bit雙存取的RAM(DARAM)。DARAM分成兩個塊,每個塊為8K,每個塊在一個機器周期內支持兩次讀或一次讀和一次寫。片內DARAM位于數(shù)據(jù)空間0080h-3FFFh地址,通過設置C5402寄存器PMST的OVLY位為1,可以把片內RAM映射成程序/數(shù)據(jù)存儲空間。用戶在設計自己的系統(tǒng)時,如程序容量不超過16K,則可考慮充分利用芯片的內部資源,采用引導裝載的方式,以降低系統(tǒng)的設計難度和設計成本、縮短產(chǎn)品研制周期。 

1 8bit EPROM引導裝載的特點和初始化

  TMS320VC5402 Bootloader用于在芯片通電時將存儲于外部的用戶代碼傳輸?shù)絻炔炕蛲獠砍绦虼鎯ζ?用戶代碼可存儲在外部速度較慢的非失憶性的存儲器內,使C5402能外擴普通低速的EPROM。經(jīng)引導后,用戶代碼可裝載到高速的片內或片外RAM中執(zhí)行,以充分發(fā)揮C5402指令高速運行的特點。 

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

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

  (2)設置寄存器PMST中OVLY=1,使片內RAM 0080h~3FFFh既映射在程序區(qū),又映射在數(shù)據(jù)區(qū); 

  (3)設置寄存器PMST中DROM=0,使F000h~FFFFh映射在外部數(shù)據(jù)區(qū); 

  (4)程序和數(shù)據(jù)空間設置成7個等待狀態(tài)。 

  (2)、(3)、(4)項用C5402芯片掩模ROM中的引導程序實現(xiàn)。在C5402上電復位后,指令總是從FF80h處執(zhí)行,然后自動跳轉到內部引導程序入口地址F800h,判斷芯片MP/MC位,若為邏輯0,則執(zhí)行引導程序。 

2 8bit EPROM引導裝載的實現(xiàn) 

2.1 EPROM 并行引導過程

  為使C5402能有效地把外擴EPROM中的程序引導到芯片內RAM,需要編制一個引導表。引導表定位于數(shù)據(jù)空間的4000h-FFFFh段,引導表的內容包含如下幾個方面:(1)引導方式的標識;(2)程序存放的目標首地址;(3)程序執(zhí)行的入口地址;(4)用戶程序代碼;(5)用戶程序塊長度。 

  引導表數(shù)據(jù)結構是通過執(zhí)行鏈接命令程序和Hex轉換公用命令程序形成的。在鏈接命令程序中分配了程序和數(shù)據(jù)結構,在Hex轉換公用命令程序中定義了引導方式、程序執(zhí)行的入口地址和外部EPROM的首地址。 

  片內ROM的引導程序首先讀取I/O空間的FFFFh地址內容(指定為4000h)作為引導表的起始地址,通過判別引導表起始地址內的引導標識來確定是8位并行還是16位并行引導方式。若引導標識是10AAh,則是16位的并行引導方式;若引導標識是08AAh,則是8位的并行引導方式。 

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

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

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

 

 

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

  當C5402讀取I/O端口地址FFFFh時,IOSTRB為低有效,同時地址線A15為高,經(jīng)反相與IOSTRB信號相“或”,以選通D3、D4器件,C5402即采集到引導表起始地址4000h。當用戶不采用從I/O端口讀取引導表起始地址時,C5402將讀取數(shù)據(jù)空間FFFFh地址的內容和FFFEh地址的內容作為引導表的起始地址。在將程序代碼用編程器寫入到EPROM時,將EPROM的FFFFh地址和FFFEh內容寫定為00和40即可。若使用低于64k的EPROM時,只要在EPROM的最高兩個地址寫入00和40即可。例如,使用8K EPROM,而C5402的地址線只用到A0~A12,那么在EPROM的1FFFh和1FFEh地址寫入00和40即可,并將Hex制轉換命令程序中的-bootorg  0x4000句修改為-bootorg 0x0000。 

2.3 編制命令文件程序

  (1)鏈接命令文件程序(文件名設為dsp5402lj.cmd): 

    ;dsp5402lj.cmd  program 

    dsp5402.obj    ;輸入?yún)R編后的文件名 

    -o dsp5402.out -m dsp5402.map ;設定輸出文件名 

    MEMORY                          ;內部存儲器分配 

    { 

    PAGE 0:ROM:origin=0080h length=1000h ;程序引導后首地址和塊長度 

    PAGE 1: RAM:origin=2000h  length=500h ;定義數(shù)據(jù)塊首地址和塊長度 

    } 

    SECTIONS    

    { 

    .text:>ROM ;將text段定義的程序放入程序頁 

    .bss:>RAM ;將bss段定義的數(shù)據(jù)塊放入數(shù)據(jù)頁 

    } 

  (2)Hex制轉換命令程序(文件名設dsp5402h.cmd): 

    ;dsp5402h.cmd  program 

    dsp5402.out    ;輸入鏈接后的文件名 

    -o dsp5402.m1  ;定義輸出文件名和格式 

    -m1   ;輸出文件格式為Motorola-s1 

    -memwidth 8     ;定義8位 EPROM  

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

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

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

    SCTIONS {.text:BOOT} 

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

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

  (1)匯編文件 

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

    asm500.exe -l -v548 

  程序將被匯編成后綴名為obj的目標文件,命令中如文件名缺省,目標文件名與匯編程序源文件名相同。 

  (2)鏈接文件 

  執(zhí)行命令: lnk500.exe dsp5402lj.cmd 

  dsp5402lj.cmd為鏈接命令文件名,由用戶編程確定用戶代碼裝載引導的入口地址、程序塊長度以及程序段和數(shù)據(jù)段的分配。引導表內數(shù)據(jù)的每一個塊同等于COFF文件的一個初始化段,初始化段包括:.text,.data,和.sect。未初始化段為:.bss和.usect。 

  (3)執(zhí)行Hex轉換公用命令程序 

  執(zhí)行命令:Hex500.exe dsp5402h.cmd 

  dsp5402h.cmd為Hex轉換命令文件名。對可執(zhí)行的COFF文件使用Hex轉換公用程序進行轉換后得到若干種標準的十六進制格式文件。轉換后的十六進制格式文件即是引導表的內容,引導表包含并行引導的標識、程序執(zhí)行的入口地址、程序存放的目的地址、用戶程序及用戶程序塊長度。利用編程器可以將引導表的內容寫入EPROM,然后將EPROM插入C5402用戶系統(tǒng)中運行。 

參考文獻

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

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

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