《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > TMS320C6713的FLASH引導(dǎo)裝載系統(tǒng)設(shè)計(jì)
TMS320C6713的FLASH引導(dǎo)裝載系統(tǒng)設(shè)計(jì)
摘要: 對(duì)IT公司生產(chǎn)TMS320C6713中FLASH的引導(dǎo)裝載概念和方法做了詳細(xì)的闡述,,同時(shí)以SST公司的FLASH芯片SST39VF400A為例,,給出了一個(gè)利用FLASH進(jìn)行引導(dǎo)裝載的系統(tǒng)方案.并給出了相應(yīng)的自動(dòng)加載程序的設(shè)計(jì)和實(shí)現(xiàn)過(guò)程。
關(guān)鍵詞: DSP Flash 閃存 TMS320C6713
Abstract:
Key words :

       前言

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

       1 硬件設(shè)計(jì)

       1.1主要芯片介紹
     

 

DSP自動(dòng)引導(dǎo)裝載系統(tǒng)主要使用DSP芯片(TMS320C6713)和外擴(kuò)存儲(chǔ)器(SST39VF400A)兩種芯片來(lái)實(shí)現(xiàn)。其中TMS320C6713是一款高性能的32位浮點(diǎn)DSP,,適用于專(zhuān)業(yè)音頻信號(hào)處理,。該芯片的內(nèi)部結(jié)構(gòu)是在TMS320C62XX的基礎(chǔ)上加以改進(jìn)制成的。其內(nèi)部集成了多個(gè)功能單元,,并采用了先進(jìn)的VLIW體系結(jié)構(gòu)及流水線(xiàn)技術(shù),;它采用3.3 V的I/O電壓和1.8 V的內(nèi)核電壓供電方式,。并具有兩級(jí)cache緩存結(jié)構(gòu)。除此之外,,它還有以下兩個(gè)主要特點(diǎn):

       第一是運(yùn)行速度快,。德州儀器公司(TI)推出的這一款300 MHz的TMS320C6713數(shù)字信號(hào)處理器(DSP)的處理速度高達(dá)1800 MFLOPS。TMS320C6713可以使用的工作時(shí)鐘和對(duì)應(yīng)指令周期表如表1所列,。
 

 

TMS320C6713可以使用的工作時(shí)鐘和對(duì)應(yīng)指令周期表如表1所列

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

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

       1.2系統(tǒng)硬件接口設(shè)計(jì)

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

TMS320C6713與SST39VF400A的接口設(shè)計(jì)

      

       2 軟件設(shè)計(jì)

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

 

關(guān)于CCS的FLASH存儲(chǔ)器燒寫(xiě)系統(tǒng)

       2.1用戶(hù)程序設(shè)計(jì)

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

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

      其程序設(shè)計(jì)代碼如下

      

 

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

       IRAM:origin=00000000h length="0000FAooh" (內(nèi)部RAM)
       FLASH-BOOT:origin=Ox90000000 length="00000400h" (存儲(chǔ)自舉代碼)
       FLASH-REST:origin=0x90000400 length="000lfcOOh" (存儲(chǔ)主程序代碼等)

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

       2.2 FBTC程序的設(shè)計(jì)

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

 

FBTC程序主函數(shù)的狀態(tài)圖

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

命令處理函數(shù)

     

       3 FLASH的燒寫(xiě)

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

       (1) 編寫(xiě)用戶(hù)程序,,通過(guò)CCS編譯、鏈接生成目標(biāo)文件user.out:
       (2) 編寫(xiě)FBTC程序,,通過(guò)CCS編譯,、鏈接以生成目標(biāo)文件FBTC.out:
       (3) 編寫(xiě)hex6x命令文件(*.cmd),并利用hex6x來(lái)執(zhí)行這個(gè)文件,,然后將用戶(hù)目標(biāo)文件user.out轉(zhuǎn)換為十六進(jìn)制格式usei.hex,。

       hex6x命令文件如下:

       use.out
       -a
       -memwidth 8
       -image
       -map user.map
       ROMS
       {
       FLASH:org=0x90000000,len=Ox0040000,,
       romwidth="8",,files={user.hex}
       }
       SECTTONS
       {
       .boot_load/*:PADDR=Ox90000000*/
       .text
       .cinit
       }

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

 

FlashBurn軟件設(shè)置

       (5) 裝載FBTC.out,,然后再擦除和燒寫(xiě)FASH;
       (6) 去掉仿真器并復(fù)位DSP目標(biāo)板,,以使程序自動(dòng)加載運(yùn)行,。

       4 結(jié)束語(yǔ)

      

 

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

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