新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > TMS320C6455 DSP基于外部FLASH自動(dòng)加載的設(shè)計(jì)

TMS320C6455 DSP基于外部FLASH自動(dòng)加載的設(shè)計(jì)

作者: 時(shí)間:2016-10-08 來(lái)源:網(wǎng)絡(luò) 收藏

摘要 為實(shí)現(xiàn)數(shù)字信號(hào)處理器的加栽,介紹了TMS320C6455的各種加載模式,尤其是對(duì)外部ROM的引導(dǎo)方式,以及一種無(wú)需數(shù)據(jù)轉(zhuǎn)換即可通過(guò)數(shù)據(jù)加載將用戶程序?qū)懭?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/Flash">Flash的方法。以TMS320C6455為例,同時(shí)結(jié)合LED燈閃爍實(shí)例驗(yàn)證自動(dòng)加載的可行性。

本文引用地址:http://butianyuan.cn/article/201610/305349.htm

數(shù)字信號(hào)處理器()在數(shù)字信號(hào)處理中有著廣泛的應(yīng)用,尤其是與FPGA結(jié)合的設(shè)計(jì),增加了應(yīng)用的靈活性和可升級(jí)性,能夠充分發(fā)揮其信號(hào)處理的優(yōu)越性。在設(shè)計(jì)以為處理器的信號(hào)處理模塊時(shí),的加載方式是必須考慮的問(wèn)題。本文將以TMS320C6455為例來(lái)研究DSP的自動(dòng)加載。

TMS320C6455是TI推出的一款較為高端的定點(diǎn)型數(shù)字信號(hào)處理器。TMS320C6455的時(shí)鐘頻率為1.2 GHz,16位定點(diǎn)處理能力為9 600MMAC /s,采用了Serial Rapid IO接口技術(shù),這些特點(diǎn)決定了TMS320C6455在通信、圖像處理、雷達(dá)等領(lǐng)域得到廣泛應(yīng)用。

1 TMS320C6455加載模式

C6000系類DSP的主要加載方式包括無(wú)引導(dǎo)模式、主機(jī)引導(dǎo)模式和EMIF總線引導(dǎo)模式3種。3種加載模式各有其優(yōu)越點(diǎn):無(wú)引導(dǎo)模式僅限于存儲(chǔ)器0地址不是必須映射到RAM空間的器件,否則在RAM空間的初始化之前CPU會(huì)讀取無(wú)效代碼而導(dǎo)致錯(cuò)誤;主機(jī)引導(dǎo)模式則要求必須有一部外部主機(jī)控制DSP的初始化,這增加了系統(tǒng)的復(fù)雜度和成本,在設(shè)計(jì)中較少采用。EMIF引導(dǎo)方式DSP與外部ROM的接口較為自由,但需要。TMS320C6455在以上加載方式的基礎(chǔ)上還有主I2C、從I2C和SRIO引導(dǎo)方式。本文主要討論易于實(shí)現(xiàn)的EMIF加載方式。

DSP的內(nèi)部ROM空間有限,不能將所有的用戶代碼存儲(chǔ)到內(nèi)部ROM中。因此需要通過(guò)二次搬移完成用戶程序的加載。TMS320C6455的地址空間0x100000~0x107FFF間集成了32 kB的內(nèi)部ROM,Bootloader是其中的一段引導(dǎo)代碼,作用是在DSP上電時(shí),DSP將一段存儲(chǔ)在外部ROM的用戶代碼(長(zhǎng)度為1 kB)搬移到內(nèi)部的RAM單元中執(zhí)行。這種自動(dòng)加載技術(shù)不僅利用了本身有限的ROM資源,而且充分發(fā)揮了DSP內(nèi)部資源的利用率。

2 外部ROM引導(dǎo)

在外部ROM引導(dǎo)模式下,對(duì)TMS320C6455而言,CPU上電后將自動(dòng)從CE3空間拷貝1 kB到CPU的內(nèi)部RAM并且運(yùn)行。對(duì)于大多數(shù)的應(yīng)用程序,1 kB大小的代碼量無(wú)法滿足系統(tǒng)的要求,如果將代碼放在外部中運(yùn)行,則又浪費(fèi)了DSP的高速性能。因此,當(dāng)用戶代碼長(zhǎng)度>1 kB時(shí),需要使用Bootloader進(jìn)行。Bootloader程序是一個(gè)“搬移數(shù)據(jù)”的程序,主要功能是將用戶程序從CE3的其他空間搬移到內(nèi)部RAM供CPU運(yùn)行。DSP的程序的加載過(guò)程如圖1所示。

TMS320C6455 DSP基于外部FLASH自動(dòng)加載的設(shè)計(jì)

DSP的CPU復(fù)位階段,程序指針自動(dòng)指向Bootloader,這個(gè)程序?qū)E3空間的1 kB(對(duì)應(yīng)外部中二次加載代碼)搬移到CPU的內(nèi)部RAM中;CPU退出復(fù)位后正常啟動(dòng),運(yùn)行二次加載程序,將用戶程序的部分拷貝到RAM中,完成數(shù)據(jù)的搬移后跳轉(zhuǎn)到_c_int00處,初始化C運(yùn)行環(huán)境;待C運(yùn)行環(huán)境初始化完成后,指針跳轉(zhuǎn)到main()函數(shù)處。

3 用戶程序的燒寫和存儲(chǔ)區(qū)域分配

文中重點(diǎn)介紹直接利用CCS開(kāi)發(fā)工具將用戶程序編譯連接的.out文件,通過(guò)JTAG仿真器下載到DSP內(nèi)部的RAM中,只要不運(yùn)行程序,此時(shí)RAM中存儲(chǔ)的程序就是.out文件對(duì)應(yīng)的二進(jìn)制格式存儲(chǔ)的機(jī)器碼,將其另存為.dat文件格式,則直接可以通過(guò)在線燒寫的方法完成Flash的燒寫。一定要修改工程文件中的原鏈接器,命令文件中存儲(chǔ)空間的劃分和COFF段屬性的設(shè)置,避免燒寫程序的存儲(chǔ)空間與用戶程序相沖突,并在兩個(gè)程序中留有一定的間隔用于保護(hù)程序的相互獨(dú)立性。

4 二次加載程序的編寫

TMS320C6455片內(nèi)的Boofloader自動(dòng)載入CE3空間的前1 kB空間,在實(shí)際應(yīng)用中,DSP的應(yīng)用程序一般1 kB,因此需要加入二次引導(dǎo)代碼。其實(shí)現(xiàn)的功能是將用戶程序的剩余部分拷貝到RAM中。程序運(yùn)行的步驟為:(1)根據(jù)復(fù)制表中各段的加載和運(yùn)行地址等信息,對(duì)變量進(jìn)行初始化。(2)根據(jù)信息將代碼從Flash搬移到RAM的相應(yīng)位置。(3)將程序的指針跳轉(zhuǎn)到C程序入口函數(shù)_c_int00處。

5 Flash的燒寫

Flash的燒寫以一個(gè)GPIO口的LED閃爍的程序?yàn)槔?。設(shè)計(jì)采用的Flash型號(hào)為S29GL512N,其接法如圖2所示。

TMS320C6455 DSP基于外部FLASH自動(dòng)加載的設(shè)計(jì)

調(diào)試步驟為:(1)通過(guò)JTAG口將編譯生成的.out文件下載到DSP內(nèi)部的RAM中,不運(yùn)行,將RAM中的數(shù)據(jù)保存成.dat文件(注意保存的長(zhǎng)度應(yīng)該不小于用戶程序的長(zhǎng)度)。(2)進(jìn)行Flash的擦除,采用整體擦除,擦除結(jié)束后采用循環(huán)檢測(cè)DQ7引腳是否置1,置1代表完全擦除。(3)進(jìn)行Flash的燒寫,將上面保存的.dat文件Load到DSP的CE2地址段(注意修改起始地址和長(zhǎng)度),編寫程序,從CE2的地址讀取數(shù)址位(注意寫入長(zhǎng)度不能小于.dat數(shù)據(jù)的長(zhǎng)度),完成Flash的燒寫。(4)重新通電,LED閃爍,表面DSP完成外部ROM加載,實(shí)現(xiàn)DSP的自啟動(dòng)。

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

DSP廣泛應(yīng)用于各種數(shù)字信息產(chǎn)品中,對(duì)于其加載模式的要求也越來(lái)越高,通過(guò)Flash存儲(chǔ)器加載DSP的方法是實(shí)際應(yīng)用中有效而簡(jiǎn)單的方法。本文介紹了TMS320C6455從外部ROM加載的模式,給出了硬件連接方式和軟件的核心代碼,通過(guò)實(shí)驗(yàn)驗(yàn)證其運(yùn)行良好。



關(guān)鍵詞: DSP 加栽模式 二次加載 Flash

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉