天天被操天天被操综合网,亚洲黄色一区二区三区性色,国产成人精品日本亚洲11,欧美zozo另类特级,www.黄片视频在线播放,啪啪网站永久免费看,特别一级a免费大片视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>兩類DSP芯片的引導(dǎo)過程分析

兩類DSP芯片的引導(dǎo)過程分析

時間:2023-02-21 00:05:58 電子通信論文 我要投稿
  • 相關(guān)推薦

兩類DSP芯片的引導(dǎo)過程分析

摘要:詳細(xì)分析了TI公司TMS320C40和TMS320VC5402兩類DSP芯片的系統(tǒng)引導(dǎo)特點。在了解機理的基礎(chǔ)上,敘述了工程設(shè)計中創(chuàng)建系統(tǒng)引導(dǎo)表的具體步驟,給出了創(chuàng)建步驟中所需的鍵接文件范例,并進行了說明。

    關(guān)鍵詞:TMS320C40 TMS320VC5402 系統(tǒng)引導(dǎo) 引導(dǎo)表

目前,DSP芯片正逐漸應(yīng)用到電子設(shè)計中,其中應(yīng)用最廣泛的是TI公司生產(chǎn)的DSP系列產(chǎn)品。筆者在工程項目的開發(fā)中,對TMS320C40和TMS320VC5402(以下簡稱C40和C5402)進行了系統(tǒng)的研究,并成功的實現(xiàn)了DSP的脫機運行。本文希望通過對C40和C5402兩種芯片系統(tǒng)引導(dǎo)的描述使大家了解設(shè)計DSP系列引導(dǎo)的步驟,能夠利用DSP設(shè)計自己的設(shè)備。

1 C40和C5402的系統(tǒng)引導(dǎo)機理

TI公司的每一種DSP產(chǎn)品,都為用戶設(shè)計了多種系統(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引腳識別) 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)模式(由入口點進行識別) 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加電時,芯片塞滿到ROMAN引腳為高電平,進入微處理器模式。再檢測IIOF3~IIOF0引腳電平,決定系統(tǒng)的引導(dǎo)方式和選擇并行引導(dǎo)的始地址。執(zhí)行程序引導(dǎo)程序時,程序和數(shù)據(jù)存取等時間可以設(shè)置為最長7個等待周期。若軟件延時不夠用,則需要輔助硬件延時等待。程序引導(dǎo)完畢后,會在IACK引腳產(chǎn)生脈沖,使引腳可以作為中斷引腳使用并轉(zhuǎn)入到程序的入口地址開始執(zhí)行程序。

C40由中斷引腳的電平?jīng)Q定系統(tǒng)引導(dǎo)后的程序執(zhí)行地址,或決定是否由通訊口進行程序的加載。采用0030 0000H作為主程序的入口地址,即將一片28C256地址設(shè)計為0030 0000H~0030 7FFFH。在系統(tǒng)引導(dǎo)時,需維持IIOF3~IIOF0四個引腳電平為1101。

下面以IIOF2引腳和IIOF1引腳為例,敘述一下系統(tǒng)引導(dǎo)前后的中斷引腳的處理過程。圖1電路是IIOF2引腳的外圍處理電路。在系統(tǒng)加電時,D31A的/PRE=0、/CLR=1,置位端有效,所以Q=1、/IIOF2=1。加電完畢后,/PRE=1、/CLR=1,此時無/IACK信號,Q=1、/IIOF2=1,C40開始程序的加載工作。當(dāng)C40程序加載完畢時,IACK引腳會產(chǎn)生一個脈沖,Q=D=0,/IIOF2=/INT2。C40會轉(zhuǎn)入程序的入口地址執(zhí)行程序,此時D觸發(fā)器電路的工作已經(jīng)完成,C40此時可以處理中斷信號。圖2電路是IIOF1引腳的外圍處理電路。系統(tǒng)引導(dǎo)時,要求/IIOF1引腳電平為低電平。

1.2 C5402并行引導(dǎo)模式

C5402加電時,如果芯片檢測到MP/MC引腳電平為低電平,系統(tǒng)從0FF80H開始執(zhí)行代碼。此處有一個分支指令(廠家編程設(shè)置的),可以跳轉(zhuǎn)到引導(dǎo)程序的開始地址(0F800H)。這個程序可以在引導(dǎo)之前設(shè)置CPU狀態(tài)寄存器的初始值。中斷被全局禁止,OVLY設(shè)置為1,程序和數(shù)據(jù)存取等待時間被設(shè)置為7個等待周期,外部內(nèi)存塊被設(shè)置為4K的WOROS(16BIT),然后開始程序的引導(dǎo)。

當(dāng)C5402檢測到INT2引腳為高電平、INT3引腳為高電平,即兩個引腳都無效時,C5402會轉(zhuǎn)到并行引導(dǎo)方式。并行引導(dǎo)方式是通過擴展的內(nèi)存接口從數(shù)據(jù)地址空間讀取所需的引導(dǎo)表,再將代碼傳送到程序存儲區(qū)。并行引導(dǎo)既支持8位的數(shù)據(jù)寬度,也支持16位的數(shù)據(jù)寬度。軟件可編程等待寄存器(SWWSR)和塊切換控制寄存器(BSCR)都可以在這兩種模式中得到設(shè)置。

C5402數(shù)據(jù)存儲區(qū)、程序存儲區(qū)和I/O地址空間,用/DS、/PS和/IS三個引腳信號區(qū)分。系統(tǒng)的引導(dǎo)表設(shè)在數(shù)據(jù)存儲區(qū),考慮到C5402內(nèi)部只有16K×16的雙存取RAM(DRAM),因此用于程序加載的EEPROM(EEPROM)中存放的是系統(tǒng)的引導(dǎo)表)可考慮使用28LV256。如果在設(shè)計中,使28LV256(+3.3V供電)占用系統(tǒng)的數(shù)據(jù)空間地址為8000H~0FFFFH,那么,C5402在系統(tǒng)引導(dǎo)時需從系統(tǒng)的數(shù)據(jù)地址0FFFEH和0FFFFH得到引導(dǎo)表的起始地址8000H。在設(shè)計系統(tǒng)引導(dǎo)表時要注意這兩個單元的內(nèi)容。如果設(shè)計EEPROM的首地址(系統(tǒng)引導(dǎo)表的首地址)為0C000H,那么數(shù)據(jù)地址0FFFEH和0FFFFH兩個單元要存放C0和00H,也就是引導(dǎo)表的首地址。在設(shè)計中也可以使用其它EEPROM或FLASH,如29LE010(128K×8BIT),但要正確配置它在系統(tǒng)中的地址。引導(dǎo)表的首地址(即EEPROM的在系統(tǒng)中的首地址)是通過系統(tǒng)數(shù)據(jù)地址0FFFEH和0FFFFH決定的,可以是08000H~0FFFDH之間的任意地址,但要保證能夠存儲系統(tǒng)引導(dǎo)表。
(范文先生網(wǎng)www.gymyzhishaji.com收集整理)
2 建立系統(tǒng)引導(dǎo)表的步驟

程序經(jīng)過仿真器仿真無誤以后,就要建立引導(dǎo)表,使系統(tǒng)能夠脫機運行。下面介紹建立系統(tǒng)引導(dǎo)表的步驟:

(1)編譯文件。編寫完程序代碼以后,對源程序進行編譯,生成.obj文件,對于C5402,編譯時要采用-V548的編譯描述符。

(2)鏈接文件,將.obj文件生成.out文件。.out文件中應(yīng)包括初始化的段落。如.text,.const,.cinint等。以上兩步在仿真時,也需要執(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)的兩個CMD命令文件。

例1:C40系統(tǒng)引導(dǎo)的CMD文件

myfile.out /*要進行轉(zhuǎn)化的COFF文件名*/

-i /*建立INTEL十六進制文件的輸出*/

-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 /*本地數(shù)據(jù)總線控制字*/

-datawidth 32 /*數(shù)據(jù)寬度*/

-memwidth 8 /*存儲器的寬度*/

-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 /*要進行轉(zhuǎn)化的COFF文件名*/

-e 0300H /*程序運行的入口點*/

-i /*建立INTEL十六進制文件的輸出*/

-boot /*將所有的輸入文件創(chuàng)建引導(dǎo)表*/

-bootorg 0000H /*EPROM中引導(dǎo)表的始地址*/

-memwidth 8 /*EEPROM的數(shù)據(jù)寬度是8位*/

-o myfile.hex /*輸出的文件名*/

下面給出操作符的幾點說明:

(1)-bootorg指定引導(dǎo)表的地址,注意這里使用的是0000H,.HEX文件的始地址就是0000H。在C40中,EEPROM28C256的0000H地址單元,在系統(tǒng)中地址是0030 0000H。若改為-bootorg 0030 0000H,在用燒錄器打開.HEX文件時,可以看到起始地址是0030 0000H,若將.HEX文件燒到EEPROM中,需要修改燒錄芯片的起始地址,比較麻煩。但你可以將.HEX文件轉(zhuǎn)化為.BIN文件,則地址就不必修改。

(2)輸出文件的格式

-a 輸出ASCII碼的十六進制文件

-I 輸出INTEL十六進制文件

-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個字節(jié)的排放順序;系統(tǒng)引導(dǎo)表的參數(shù):引導(dǎo)表的首地址、程序入口點、各個寄存器的初始值等;源程序中各段的起始地址、大小以及寬度等信息。對照它,就可以確定內(nèi)存資源是否得到了合理的配置和有無地址沖突。

以下是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制的文件用hexbin.exe轉(zhuǎn)化為二進制的.BIN文件,再燒錄到芯片中。對于C5402,還需要手動添加EEPROM在系統(tǒng)中的起始地址。如果采用28LV256(32K×8BIT),引導(dǎo)表的首地址為8000H,那么生成的.HEX文件用芯片燒錄器加載到燒錄器軟件的內(nèi)存后,手動修改28LV256的7FFEH和7FFFH單元(即系統(tǒng)的FFFEH和FFFFH單元)為80和00H,再繞到芯片中。

以上步驟的操作都是在DOS環(huán)境中執(zhí)行的。新版本的DSP開發(fā)軟件可以在WINDOWS環(huán)境中使用,其原理是一樣的,這里不再多述。

源程序數(shù)據(jù)的存儲格式(8位并行裝載)如表2所示,當(dāng)燒錄時可以對比一下。

表2 源程序數(shù)據(jù)的儲存格式

C40引導(dǎo)程序 C5402引導(dǎo)程序表格 內(nèi)存寬度(00000008H)32
全局?jǐn)?shù)據(jù)總線控制字32
本地數(shù)據(jù)總線控制字32
第一段的存儲空間范圍32
第一段程序的目的地址32
程序代碼(1)32
……
程序代碼(N)32
……
最后一段的存儲空間范圍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
第一段的存儲空間范圍16
第一段的目的(XPC)16
第一段的目的地址(PC)16
程序代碼(1)16
……
程序代碼(N)16
……
最后一段的存儲空間范圍16
最后一段的目的(XPC)16
最后一段的目的地址(PC)16
程序代碼(1)16
……
程序代碼(N)16
0000(指示引導(dǎo)表格的結(jié)束)

本文詳細(xì)介紹了C4X和C54XX兩類DSP芯片系統(tǒng)引導(dǎo)的詳細(xì)設(shè)計步驟,其它型號的DSP也大同小異,如C3X與C4X類似。筆者希望通過共享系統(tǒng)引導(dǎo)的經(jīng)驗,使系統(tǒng)引導(dǎo)不再成為DSP設(shè)計中的最大障礙,從而加速DSP的抗推廣和使用。



【兩類DSP芯片的引導(dǎo)過程分析】相關(guān)文章:

單片機與DSP結(jié)合的dsPIC芯片08-06

Trimedia DSP芯片JTAG接口的仿真器設(shè)計08-06

DSP接口效率的分析與提高08-06

DSP+FLASH引導(dǎo)裝載系統(tǒng)的設(shè)計與實現(xiàn)08-06

PCI總線和DSP芯片的圖像處理平臺的硬件設(shè)計08-06

基于DSP芯片的分級分布式管理系統(tǒng)設(shè)計08-06

DSP56362的雙引導(dǎo)裝載方法研究與實現(xiàn)08-06

利用ISA總線實現(xiàn)對DSP芯片VC5402的軟配置08-06

DSP外掛Flash在系統(tǒng)編程及并行引導(dǎo)裝載方法08-06