<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 網(wǎng)絡(luò )與存儲 > 設計應用 > TMS320C6713的FLASH引導裝載系統設計

TMS320C6713的FLASH引導裝載系統設計

——
作者: 時(shí)間:2007-09-20 來(lái)源:電子元器件應用 收藏

前言

DSP系統的引導裝載是指在系統加電時(shí),由DSP將一段存儲在外部非易失性存儲器中的代碼移植到內部高速存儲器單元并執行的過(guò)程。這種方式即可利用外部存儲單元擴展DSP本身有限的ROM資源,又能充分發(fā)揮DSP內部資源的高速效能。因此,引導裝載系統的性能直接關(guān)系到整個(gè)DSP系統的可靠性和處理速度,是DSP系統設計中必不可少的重要環(huán)節。在裝載系統中,外部非易失性存儲器和DSP的性能尤為重要。是一種高密度、非易失性的電可擦寫(xiě)存儲器,而且單位存儲比特的價(jià)格比傳統EPROM要低。為此,本文介紹了浮點(diǎn)DSP芯片和SST公司提供的SST39VF400A 存儲器的基本特點(diǎn),給出了使用該存儲器設計和實(shí)現完整的 DSP引導裝載系統的具體方法。

1 硬件設計

1.1 主要芯片介紹


DSP自動(dòng)引導裝載系統主要使用DSP芯片()和外擴存儲器(SST39VF400A)兩種芯片來(lái)實(shí)現。其中TMS320C6713是一款高性能的32位浮點(diǎn)DSP,適用于專(zhuān)業(yè)音頻信號處理。該芯片的內部結構是在TMS320C62XX的基礎上加以改進(jìn)制成的,其內部集成了多個(gè)功能單元,并采用了先進(jìn)的VLIW體系結構及流水線(xiàn)技術(shù);它采用3.3 V的I/O電壓和1.8 V的內核電壓供電方式,并具有兩級cache緩存結構。除此之外,它還有以下兩個(gè)主要特點(diǎn): 第一是運行速度快。德州儀器公司(TI)推出的這一款300 MHz的TMS320C6713數字信號處理器(DSP)的處理速度高達1800 MFLOPS。TMS320C6713可以使用的工作時(shí)鐘和對應指令周期表如表1所列。

其次是精度高。TMS320C6713有三個(gè)因素影響著(zhù)浮點(diǎn)格式的內在高精度。首先,浮點(diǎn)DSP的24位I/O字長(cháng)在整數與實(shí)數值方面可實(shí)現比定點(diǎn)器件中常用的16位字長(cháng)更高的精確度。第二.取冪大幅提高了應用可用的動(dòng)態(tài)范圍,較大的動(dòng)態(tài)范圍對處理極大數據集以及難以方便預計數據集范圍的情況相當重要。第三,硬件內部的浮點(diǎn)數據表示法比定點(diǎn)器件更為精確,這就保證了最終結果的更高精確度。

SST39VF400A是SST公司推出的FLASH存儲器。該器件十分適合用作外擴存儲器,它的存儲容量為4 MB,采用3.3 V單電源供電,因而無(wú)需額外提供高電壓即可通過(guò)一些特殊的命令字序列來(lái)實(shí)現對各個(gè)子模塊的讀寫(xiě)和擦除。并可重復十萬(wàn)次以上,此外,還可通過(guò)DSP編程來(lái)實(shí)現對它的讀寫(xiě)操作,十分適合于系統的調試和開(kāi)發(fā)。

1.2 系統硬件接口設計

DSP訪(fǎng)問(wèn)片外存儲器主要通過(guò)外部存儲器接口(EMIF)完成。它不僅具有很強的接口能力(可以和各種存儲器直接接口),而且具有很高的數據吞吐能力(高達1 200 MB/s)。TMS320C6713的EMIF能支持8位、16位和32位寬的所有存儲器,當從這些窄位寬的存儲空間讀寫(xiě)數據時(shí),EMIF會(huì )將多個(gè)數據打包成一個(gè)32位的值,而不必增加額外電路。TMS320C6713與SST39VF400的接口電路設計如圖1所示。該電路主要通過(guò)DSP的相關(guān)輸出管腳來(lái)控制FLASH的擦除和讀寫(xiě)。其中,A0~A19為地址線(xiàn),DQ0~DQ15為數據線(xiàn),OE和WE分別為輸出使能和寫(xiě)使能,CE1為片使能。由于TMS320C6713默認的引導模式是從外部CE1空間的16位FLASH來(lái)引導裝載,所以,TMS320C6713的CE1和FLASH的片選CE相連。

2 軟件設計

本引導裝載系統主要由用戶(hù)應用程序和FBTC (the FlashBurn Target Component)程序兩部分構成,圖2所示是基于CCS的Flash存儲器燒寫(xiě)系統框圖。其中,用戶(hù)程序除了要完成用戶(hù)設計要求外,還要對DSP板上的EMIF寄存器進(jìn)行設置;FBTC程序則包括FLASH存儲器燒寫(xiě)算法、初始化操作、地址映射等。

2.1 用戶(hù)程序設計

用戶(hù)可根據設計要求及實(shí)際算法編寫(xiě)用戶(hù)主程序。除此之外,用戶(hù)還要根據自己的目標板上存儲器分配進(jìn)行配置。TMS320C6713芯片上電后,若選擇從EMIF引導程序,DSP則自動(dòng)將位于地址空間CE1(0x90000000~0x9FFFFFFF)開(kāi)頭的1KB代碼傳輸到地址空間0處。它的數據傳輸采用默認時(shí)序,用戶(hù)可以選擇外部程序存儲器的寬度(8位/16位/32位),然后由EMIF自動(dòng)將幾次讀人的數據合成為32位數據。傳輸由DSP中的ED-MA通道以單幀形式自動(dòng)進(jìn)行。傳輸完成后,程序從地址0處開(kāi)始運行。因此,要在TMS320C6713中實(shí)現基于FLASH的自引導功能,必須將FLASH配置在DSP的CE1地址空間中。

在這里,用戶(hù)要編寫(xiě)的EMIF配置文件是c6713 emif.s62,其程序設計代碼如下: 



事實(shí)上,除了要對EMIF進(jìn)行配置外,用戶(hù)還必須在鏈接文件中為某些段制定兩個(gè)不同的地址:一個(gè)是導入地址,一個(gè)是運行地址。導入地址用來(lái)決定裝載器把段的原始數據放在何處,而運行地址就是該段代碼運行的地址。制定兩個(gè)地址的目的是為了加快代碼執行速度。它們的鏈接可由*.cmd文件來(lái)實(shí)現。對存儲器的設置如下: 

IRAM:origin=00000000h length=0000FA00h (內部RAM)

FLASH_BOOT:origin=0x90000000 length=00000400h (存儲自舉代碼)

FLASH_REST:origin=0x90000400 length=0001fc00h (存儲主程序代碼等)

在完成用戶(hù)主程序、EMIF配置文件、鏈接命令文件后,就可利用TI公司的DSP集成開(kāi)發(fā)環(huán)境CCS進(jìn)行編譯、調試及鏈接,以生成用戶(hù)應用程序的目標文件*.out。

2.2 FBTC程序的設計

FBTC程序主要是針對DSP目標板上的FLASH存儲器進(jìn)行操作。即通過(guò)一定的編程命令序列來(lái)控制FLASH的工作方式。這些命令序列是一些特定字符的組合,只要向FLASH中的特定寄存器以特定的順序輸入這些字符,即可進(jìn)入相應的編程模式。SST39VF400中的主要命令和寫(xiě)入地址如表2所列。FBTC程序主函數的狀態(tài)圖如圖3所示。


 
圖3中的信息處理函數可依據FlashBurn編程協(xié)議提供的信息格式來(lái)設計;命令處理函數主要包括FLASH的擦除、讀取和燒寫(xiě)。同樣的,FBTC程序設計完成后,也可利用TI公司的DSP集成開(kāi)發(fā)環(huán)境CCS進(jìn)行編譯、調試及鏈接,從而生成FBTC程序的目標文件*.out。 
 


3 FLASH的燒寫(xiě) 

對FLASH存儲器進(jìn)行燒寫(xiě)一般有以下幾種方法:一是通過(guò)編程器燒寫(xiě);二是通過(guò)開(kāi)發(fā)商提供的專(zhuān)門(mén)燒寫(xiě)軟件工具進(jìn)行燒寫(xiě);三是自己編寫(xiě)燒寫(xiě)程序通過(guò)DSP燒寫(xiě)。本文是通過(guò)TI公司提供的FlashBurn軟件來(lái)對FLASH存儲器進(jìn)行燒寫(xiě)。將FlashBurn與CCS、HEX文件轉換工具以及FBTC配合使用,可以方便快捷地將用戶(hù)數據與程序寫(xiě)入FLASH存儲器。FlashBurn采用圖形化界面,使用方便,用戶(hù)只要簡(jiǎn)單配置幾個(gè)操作參數,即可實(shí)現對FLASH存儲器進(jìn)行擦除、燒寫(xiě)和查看內存內容等多項功能操作。其具體步驟如下:


(1) 編寫(xiě)用戶(hù)程序,通過(guò)CCS編譯、鏈接生成目標文件user.out;

(2) 編寫(xiě)FBTC程序,通過(guò)CCS編譯、鏈接以生成目標文件FBTC.out;

(3) 編寫(xiě)hex6x命令文件(*.cmd),并利用hex6x來(lái)執行這個(gè)文件,然后將用戶(hù)目標文件user.out轉換為十六進(jìn)制格式user.hex。

hex6x命令文件如下: 
 

  

(4) 打開(kāi)FlashBurn軟件,新建一個(gè)*.cdd文件并設置,其設置示意圖如圖4所示;



(5) 裝載FBTC.out,然后再擦除和燒寫(xiě)FLASH;

(6) 去掉仿真器并復位DSP目標板,以使程序自動(dòng)加載運行。


4 結束語(yǔ) 

按照上述步驟將用戶(hù)應用程序成功下載到FLASH后,再將DSP目標板脫離仿真器并重新上電復位,其用戶(hù)應用程序便可正常運行,而且FLASH擦除和燒寫(xiě)速度比較快。該方法成功解決DSP程序的脫機引導加載問(wèn)題。事實(shí)上,根據不同的應用,也可以參考本設計中實(shí)現方法,以求簡(jiǎn)單、有效地解決FLASH存儲器的自舉問(wèn)題。


評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>