兩類DSP芯片的引導(dǎo)過(guò)程分析
出處:jzbox 發(fā)布于:2007-04-18 14:05:23
關(guān)鍵詞:TMS320C40 TMS320VC5402 系統(tǒng)引導(dǎo) 引導(dǎo)表
目前,DSP芯片正逐漸應(yīng)用到電子設(shè)計(jì)中,其中應(yīng)用廣泛的是TI公司生產(chǎn)的DSP系列產(chǎn)品。筆者在工程項(xiàng)目的開發(fā)中,對(duì)TMS320C40和TMS320VC5402(以下簡(jiǎn)稱C40和C5402)進(jìn)行了系統(tǒng)的研究,并成功的實(shí)現(xiàn)了DSP的脫機(jī)運(yùn)行。本文希望通過(guò)對(duì)C40和C5402兩種芯片系統(tǒng)引導(dǎo)的描述使大家了解設(shè)計(jì)DSP系列引導(dǎo)的步驟,能夠利用DSP設(shè)計(jì)自己的設(shè)備。
1 C40和C5402的系統(tǒng)引導(dǎo)機(jī)理
TI公司的每一種DSP產(chǎn)品,都為用戶設(shè)計(jì)了多種系統(tǒng)的引導(dǎo)方式,如串口、并行加載、HPI加載等。C40和C5402的引導(dǎo)方式如表1所示。
表1 C40和C5402的引導(dǎo)方式
| C40 | C5402 | |||||
| 程序執(zhí)行地址 | IIOF3 | IIOF2 | IIOF1 | IIOF0 | ||
| 1 | 0030 0000H | 1 | 1 | 0 | 1 | HPI口引導(dǎo)模式(由INT2引腳識(shí)別) |
| 2 | 4000 0000H | 1 | 0 | 1 | 1 | 串行8位EEPROM引導(dǎo)模式(INT3) |
| 3 | 6000 0000H | 1 | 0 | 0 | 1 | 并行引導(dǎo)模式 |
| 4 | 8000 0000H | 0 | 1 | 1 | 1 | 標(biāo)準(zhǔn)8位串行口McBPSP1 |
| 5 | A000 0000H | 0 | 1 | 0 | 1 | 標(biāo)準(zhǔn)16位串行口McBPSP2 |
| 6 | C000 0000H | 0 | 0 | 1 | 1 | I/O口引導(dǎo)模式 |
| 7 | RESERVE | 0 | 0 | 0 | 1 | HPI口引導(dǎo)模式(由入口點(diǎn)進(jìn)行識(shí)別) |
| 8 | 通訊口引導(dǎo)方式 | 1 | 1 | 1 | 1 | |
在工程中,使用廣泛的EEPROM并行加載方式。它又分為8位數(shù)據(jù)寬度和16位數(shù)據(jù)寬度兩種,筆者采用的是8位數(shù)據(jù)寬度的并行加載方式。需要注意的是C40的數(shù)據(jù)總線寬度是32位,引導(dǎo)表中數(shù)據(jù)存放的原則是低字節(jié)在低地址。C5402的數(shù)據(jù)寬度是16位,引導(dǎo)表中數(shù)據(jù)的存放原則是高字節(jié)在低地址。
1.1 C40的并行引導(dǎo)模式
C40加電時(shí),芯片塞滿到ROMAN引腳為高電平,進(jìn)入微處理器模式。再檢測(cè)IIOF3~I(xiàn)IOF0引腳電平,決定系統(tǒng)的引導(dǎo)方式和選擇并行引導(dǎo)的始地址。執(zhí)行程序引導(dǎo)程序時(shí),程序和數(shù)據(jù)存取等時(shí)間可以設(shè)置為長(zhǎng)7個(gè)等待周期。若軟件延時(shí)不夠用,則需要輔助硬件延時(shí)等待。程序引導(dǎo)完畢后,會(huì)在IACK引腳產(chǎn)生脈沖,使引腳可以作為中斷引腳使用并轉(zhuǎn)入到程序的入口地址開始執(zhí)行程序。
C40由中斷引腳的電平?jīng)Q定系統(tǒng)引導(dǎo)后的程序執(zhí)行地址,或決定是否由通訊口進(jìn)行程序的加載。采用0030 0000H作為主程序的入口地址,即將一片28C256地址設(shè)計(jì)為0030 0000H~0030 7FFFH。在系統(tǒng)引導(dǎo)時(shí),需維持IIOF3~I(xiàn)IOF0四個(gè)引腳電平為1101。
下面以IIOF2引腳和IIOF1引腳為例,敘述一下系統(tǒng)引導(dǎo)前后的中斷引腳的處理過(guò)程。圖1電路是IIOF2引腳的外圍處理電路。在系統(tǒng)加電時(shí),D31A的/PRE=0、/CLR=1,置位端有效,所以Q=1、/IIOF2=1。加電完畢后,/PRE=1、/CLR=1,此時(shí)無(wú)/IACK信號(hào),Q=1、/IIOF2=1,C40開始程序的加載工作。當(dāng)C40程序加載完畢時(shí),IACK引腳會(huì)產(chǎn)生一個(gè)脈沖,Q=D=0,/IIOF2=/INT2。C40會(huì)轉(zhuǎn)入程序的入口地址執(zhí)行程序,此時(shí)D觸發(fā)器電路的工作已經(jīng)完成,C40此時(shí)可以處理中斷信號(hào)。圖2電路是IIOF1引腳的外圍處理電路。系統(tǒng)引導(dǎo)時(shí),要求/IIOF1引腳電平為低電平。
1.2 C5402并行引導(dǎo)模式
C5402加電時(shí),如果芯片檢測(cè)到MP/MC引腳電平為低電平,系統(tǒng)從0FF80H開始執(zhí)行代碼。此處有一個(gè)分支指令(廠家編程設(shè)置的),可以跳轉(zhuǎn)到引導(dǎo)程序的開始地址(0F800H)。這個(gè)程序可以在引導(dǎo)之前設(shè)置CPU狀態(tài)寄存器的初始值。中斷被全局禁止,OVLY設(shè)置為1,程序和數(shù)據(jù)存取等待時(shí)間被設(shè)置為7個(gè)等待周期,外部?jī)?nèi)存塊被設(shè)置為4K的WOROS(16BIT),然后開始程序的引導(dǎo)。
當(dāng)C5402檢測(cè)到INT2引腳為高電平、INT3引腳為高電平,即兩個(gè)引腳都無(wú)效時(shí),C5402會(huì)轉(zhuǎn)到并行引導(dǎo)方式。并行引導(dǎo)方式是通過(guò)擴(kuò)展的內(nèi)存接口從數(shù)據(jù)地址空間讀取所需的引導(dǎo)表,再將代碼傳送到程序存儲(chǔ)區(qū)。并行引導(dǎo)既支持8位的數(shù)據(jù)寬度,也支持16位的數(shù)據(jù)寬度。軟件可編程等待寄存器(SWWSR)和塊切換控制寄存器(BSCR)都可以在這兩種模式中得到設(shè)置。
C5402數(shù)據(jù)存儲(chǔ)區(qū)、程序存儲(chǔ)區(qū)和I/O地址空間,用/DS、/PS和/IS三個(gè)引腳信號(hào)區(qū)分。系統(tǒng)的引導(dǎo)表設(shè)在數(shù)據(jù)存儲(chǔ)區(qū),考慮到C5402內(nèi)部只有16K×16的雙存取RAM(DRAM),因此用于程序加載的EEPROM(EEPROM)中存放的是系統(tǒng)的引導(dǎo)表)可考慮使用28LV256。如果在設(shè)計(jì)中,使28LV256(+3.3V供電)占用系統(tǒng)的數(shù)據(jù)空間地址為8000H~0FFFFH,那么,C5402在系統(tǒng)引導(dǎo)時(shí)需從系統(tǒng)的數(shù)據(jù)地址0FFFEH和0FFFFH得到引導(dǎo)表的起始地址8000H。在設(shè)計(jì)系統(tǒng)引導(dǎo)表時(shí)要注意這兩個(gè)單元的內(nèi)容。如果設(shè)計(jì)EEPROM的首地址(系統(tǒng)引導(dǎo)表的首地址)為0C000H,那么數(shù)據(jù)地址0FFFEH和0FFFFH兩個(gè)單元要存放C0和00H,也就是引導(dǎo)表的首地址。在設(shè)計(jì)中也可以使用其它EEPROM或FLASH,如29LE010(128K×8BIT),但要正確配置它在系統(tǒng)中的地址。引導(dǎo)表的首地址(即EEPROM的在系統(tǒng)中的首地址)是通過(guò)系統(tǒng)數(shù)據(jù)地址0FFFEH和0FFFFH決定的,可以是08000H~0FFFDH之間的任意地址,但要保證能夠存儲(chǔ)系統(tǒng)引導(dǎo)表。
2 建立系統(tǒng)引導(dǎo)表的步驟
程序經(jīng)過(guò)仿真器仿真無(wú)誤以后,就要建立引導(dǎo)表,使系統(tǒng)能夠脫機(jī)運(yùn)行。下面介紹建立系統(tǒng)引導(dǎo)表的步驟:
(1)編譯文件。編寫完程序代碼以后,對(duì)源程序進(jìn)行編譯,生成.obj文件,對(duì)于C5402,編譯時(shí)要采用-V548的編譯描述符。
(2)鏈接文件,將.obj文件生成.out文件。.out文件中應(yīng)包括初始化的段落。如.text,.const,.cinint等。以上兩步在仿真時(shí),也需要執(zhí)行,以便得到仿真用的.out文件。
(3)使用數(shù)制轉(zhuǎn)換工具生成.HEX文件或.BIN文件,C40使用的數(shù)據(jù)轉(zhuǎn)換工具為hex30.exe,C5402使用數(shù)制轉(zhuǎn)換工具編寫命令文件,命令文件的編寫很重要,下面分別例舉了C40和C5402系統(tǒng)引導(dǎo)的兩個(gè)CMD命令文件。
例1:C40系統(tǒng)引導(dǎo)的CMD文件
myfile.out /*要進(jìn)行轉(zhuǎn)化的COFF文件名*/
-i /*建立INTEL十六進(jìn)制文件的輸出*/
-image /*產(chǎn)生ROM所指出的內(nèi)存映射*/
-o n_t_fcom.hex /*輸出的文件名*/
-map n_t_hex.map /*輸出的MAP文件名*/
-romwidth 8 /*EEPROM的數(shù)據(jù)寬度*/
-cg 000000000H /*全局?jǐn)?shù)據(jù)總線控制字*/
-cl 3e3fbfd0H /*本地?cái)?shù)據(jù)總線控制字*/
-datawidth 32 /*數(shù)據(jù)寬度*/
-memwidth 8 /*存儲(chǔ)器的寬度*/
-boot /*將所有的輸入文件創(chuàng)建引導(dǎo)表*/
-bootorg 0000H /*EPROM的0000H,系統(tǒng)的0030 0000H*/
-ivtp 00700000H /*IVTP指針的初始值*/
-tvtp 00000000H /*TVTP指針的初始值*/
-iack 0300000H /*IACK指令的響應(yīng)地址*/
-e 00704000H /*程序的開始執(zhí)行地址*/
ROMS /*ROM的映射范圍*/
{
EPROM:org=00300000h,len=8000H
}
例2:C5402系統(tǒng)引導(dǎo)CMD命令文件
Myfile.out /*要進(jìn)行轉(zhuǎn)化的COFF文件名*/
-e 0300H /*程序運(yùn)行的入口點(diǎn)*/
-i /*建立INTEL十六進(jìn)制文件的輸出*/
-boot /*將所有的輸入文件創(chuàng)建引導(dǎo)表*/
-bootorg 0000H /*EPROM中引導(dǎo)表的始地址*/
-memwidth 8 /*EEPROM的數(shù)據(jù)寬度是8位*/
-o myfile.hex /*輸出的文件名*/
下面給出操作符的幾點(diǎn)說(shuō)明:
(1)-bootorg指定引導(dǎo)表的地址,注意這里使用的是0000H,.HEX文件的始地址就是0000H。在C40中,EEPROM28C256的0000H地址單元,在系統(tǒng)中地址是0030 0000H。若改為-bootorg 0030 0000H,在用燒錄器打開.HEX文件時(shí),可以看到起始地址是0030 0000H,若將.HEX文件燒到EEPROM中,需要修改燒錄芯片的起始地址,比較麻煩。但你可以將.HEX文件轉(zhuǎn)化為.BIN文件,則地址就不必修改。
(2)輸出文件的格式
-a 輸出ASCII碼的十六進(jìn)制文件
-I 輸出INTEL十六進(jìn)制文件
-m1 輸出Motrorola的S1數(shù)據(jù)格式文件
-m2 輸出Motorola的S2數(shù)據(jù)格式文件
-m3 輸出Motorola的S3數(shù)據(jù)格式文件
-t 輸出TI的數(shù)據(jù)格式文件
-x 輸出Tektronix數(shù)據(jù)格式文件
(3)檢查.HEX文件正確與否,可以查看MAP映射文件,在.MAP文件里列出了.HEX文件中的一些具體配置。如32BIT數(shù)據(jù)位的排放順序,即4個(gè)字節(jié)的排放順序;系統(tǒng)引導(dǎo)表的參數(shù):引導(dǎo)表的首地址、程序入口點(diǎn)、各個(gè)寄存器的初始值等;源程序中各段的起始地址、大小以及寬度等信息。對(duì)照它,就可以確定內(nèi)存資源是否得到了合理的配置和有無(wú)地址沖突。
以下是C40 MAP文件的舉例:
*********************************************
TMS320C3x/4x Hex Converter Version 5.00
********************************************
Fri Jun 8 09:47:33 2001
INPUT FILE NAME:<n.out>
OUTPUT FORMAT:Intel
PHYSICAL MEMORY PARAMETERS
Default data width:32
Default memory width:8(LS-->MS)
Default output width:8
BOOT LOADER PARAMETERS
Table Address: 00300000,PAGE 0
Entry Point: 00704000
Global Memory Configuration:00000000
Local Memory Configuration: 3e3fbfd0
Interrupt Vector Table Pointer(IVTP):00700000
Trap Vector Table Pointer(TVTP):00000000
IACK Location: 00300000
OUTPUT TRANSLATION MAP
-------------------------------------
00300000..00307fff Page=0 Memory Width=8 ROM Width=8 "EPROM"
-------------------------------------
OUTPUT FILES:n_t_fcom.hex [b0..b7]
CONTENTS:00300000..003013ff BOOT TABLE
intvect:dest=00700000 size=00000040 width=00000004
.text:dest=00704000 size=0000048a width=00000004
.data:dest=00705000 size=00000026 width=00000004
003004f0..00307fff FILL = 00000000
(4)燒錄芯片。C40可以直接將生成的INTEL格式的.HEX文件燒到28LV256中?;?qū)⑹M(jìn)制的文件用hexbin.exe轉(zhuǎn)化為二進(jìn)制的.BIN文件,再燒錄到芯片中。對(duì)于C5402,還需要手動(dòng)添加EEPROM在系統(tǒng)中的起始地址。如果采用28LV256(32K×8BIT),引導(dǎo)表的首地址為8000H,那么生成的.HEX文件用芯片燒錄器加載到燒錄器軟件的內(nèi)存后,手動(dòng)修改28LV256的7FFEH和7FFFH單元(即系統(tǒng)的FFFEH和FFFFH單元)為80和00H,再繞到芯片中。
以上步驟的操作都是在DOS環(huán)境中執(zhí)行的。新版本的DSP開發(fā)軟件可以在WINDOWS環(huán)境中使用,其原理是一樣的,這里不再多述。
源程序數(shù)據(jù)的存儲(chǔ)格式(8位并行裝載)如表2所示,當(dāng)燒錄時(shí)可以對(duì)比一下。
表2 源程序數(shù)據(jù)的儲(chǔ)存格式
| C40引導(dǎo)程序 | C5402引導(dǎo)程序表格 |
| 內(nèi)存寬度(00000008H)32 全局?jǐn)?shù)據(jù)總線控制字32 本地?cái)?shù)據(jù)總線控制字32 段的存儲(chǔ)空間范圍32 段程序的目的地址32 程序代碼(1)32 …… 程序代碼(N)32 …… 一段的存儲(chǔ)空間范圍32 一段程序的目的地址32 程序代碼(1)32 …… 程序代碼(N)32 0000 0000H程序塊裝載結(jié)束標(biāo)志 IVTP TVTP IACK指令的響應(yīng)地址0030 0000H |
C8AAH16 軟件可編程等待狀態(tài)寄存器的初值SWWSR16 塊切換控制寄存器的初值BSCR16 XPC16 PC16 段的存儲(chǔ)空間范圍16 段的目的(XPC)16 段的目的地址(PC)16 程序代碼(1)16 …… 程序代碼(N)16 …… 一段的存儲(chǔ)空間范圍16 一段的目的(XPC)16 一段的目的地址(PC)16 程序代碼(1)16 …… 程序代碼(N)16 0000(指示引導(dǎo)表格的結(jié)束) |
本文詳細(xì)介紹了C4X和C54XX兩類DSP芯片系統(tǒng)引導(dǎo)的詳細(xì)設(shè)計(jì)步驟,其它型號(hào)的DSP也大同小異,如C3X與C4X類似。筆者希望通過(guò)共享系統(tǒng)引導(dǎo)的經(jīng)驗(yàn),使系統(tǒng)引導(dǎo)不再成為DSP設(shè)計(jì)中的障礙,從而加速DSP的抗推廣和使用。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22









