基于TMS320C6455的外部FLASH自動(dòng)加載設計
摘要 為實(shí)現數字信號處理器的加栽,介紹了的各種加載模式,尤其是對外部ROM的引導方式,以及一種無(wú)需數據轉換即可通過(guò)數據加載將用戶(hù)程序寫(xiě)入Flash的方法。以TMS320C6455為例,同時(shí)結合LED燈閃爍實(shí)例驗證自動(dòng)加載的可行性。
本文引用地址:http://dyxdggzs.com/article/246643.htm數字信號處理器(DSP)在數字信號處理中有著(zhù)廣泛的應用,尤其是與FPGA結合的設計,增加了應用的靈活性和可升級性,能夠充分發(fā)揮其信號處理的優(yōu)越性。在設計以DSP為處理器的信號處理模塊時(shí),DSP的加載方式是必須考慮的問(wèn)題。本文將以TMS320C6455為例來(lái)研究DSP的自動(dòng)加載。
TMS320C6455是TI推出的一款較為高端的定點(diǎn)型數字信號處理器。TMS320C6455的時(shí)鐘頻率為1.2 GHz,16位定點(diǎn)處理能力為9 600MMAC /s,采用了Serial Rapid IO接口技術(shù),這些特點(diǎn)決定了TMS320C6455在通信、圖像處理、雷達等領(lǐng)域得到廣泛應用。
1 TMS320C6455加載模式
C6000系類(lèi)DSP的主要加載方式包括無(wú)引導模式、主機引導模式和EMIF總線(xiàn)引導模式3種。3種加載模式各有其優(yōu)越點(diǎn):無(wú)引導模式僅限于存儲器0地址不是必須映射到RAM空間的器件,否則在RAM空間的初始化之前CPU會(huì )讀取無(wú)效代碼而導致錯誤;主機引導模式則要求必須有一部外部主機控制DSP的初始化,這增加了系統的復雜度和成本,在設計中較少采用。EMIF引導方式DSP與外部ROM的接口較為自由,但需要二次加載。TMS320C6455在以上加載方式的基礎上還有主I2C、從I2C和SRIO引導方式。本文主要討論易于實(shí)現的EMIF加載方式。
DSP的內部ROM空間有限,不能將所有的用戶(hù)代碼存儲到內部ROM中。因此需要通過(guò)二次搬移完成用戶(hù)程序的加載。TMS320C6455的地址空間0x100000~0x107FFF間集成了32 kB的內部ROM,Bootloader是其中的一段引導代碼,作用是在DSP上電時(shí),DSP將一段存儲在外部ROM的用戶(hù)代碼(長(cháng)度為1 kB)搬移到內部的RAM單元中執行。這種自動(dòng)加載技術(shù)不僅利用了本身有限的ROM資源,而且充分發(fā)揮了DSP內部資源的利用率。
2 外部ROM引導
在外部ROM引導模式下,對TMS320C6455而言,CPU上電后將自動(dòng)從CE3空間拷貝1 kB到CPU的內部RAM并且運行。對于大多數的應用程序,1 kB大小的代碼量無(wú)法滿(mǎn)足系統的要求,如果將代碼放在外部Flash中運行,則又浪費了DSP的高速性能。因此,當用戶(hù)代碼長(cháng)度>1 kB時(shí),需要使用Bootloader進(jìn)行二次加載。Bootloader程序是一個(gè)“搬移數據”的程序,主要功能是將用戶(hù)程序從CE3的其他空間搬移到內部RAM供CPU運行。DSP的二次加載程序的加載過(guò)程如圖1所示。

DSP的CPU復位階段,程序指針自動(dòng)指向Bootloader,這個(gè)程序將CE3空間的1 kB(對應外部Flash中二次加載代碼)搬移到CPU的內部RAM中;CPU退出復位后正常啟動(dòng),運行二次加載程序,將用戶(hù)程序的部分拷貝到RAM中,完成數據的搬移后跳轉到_c_int00處,初始化C運行環(huán)境;待C運行環(huán)境初始化完成后,指針跳轉到main()函數處。
3 用戶(hù)程序的燒寫(xiě)和存儲區域分配
文中重點(diǎn)介紹直接利用CCS開(kāi)發(fā)工具將用戶(hù)程序編譯連接的.out文件,通過(guò)JTAG仿真器下載到DSP內部的RAM中,只要不運行程序,此時(shí)RAM中存儲的程序就是.out文件對應的二進(jìn)制格式存儲的機器碼,將其另存為.dat文件格式,則直接可以通過(guò)在線(xiàn)燒寫(xiě)的方法完成Flash的燒寫(xiě)。一定要修改工程文件中的原鏈接器,命令文件中存儲空間的劃分和COFF段屬性的設置,避免燒寫(xiě)程序的存儲空間與用戶(hù)程序相沖突,并在兩個(gè)程序中留有一定的間隔用于保護程序的相互獨立性。
4 二次加載程序的編寫(xiě)
TMS320C6455片內的Boofloader自動(dòng)載入CE3空間的前1 kB空間,在實(shí)際應用中,DSP的應用程序一般1 kB,因此需要加入二次引導代碼。其實(shí)現的功能是將用戶(hù)程序的剩余部分拷貝到RAM中。程序運行的步驟為:(1)根據復制表中各段的加載和運行地址等信息,對變量進(jìn)行初始化。(2)根據信息將代碼從Flash搬移到RAM的相應位置。(3)將程序的指針跳轉到C程序入口函數_c_int00處。
5 Flash的燒寫(xiě)
Flash的燒寫(xiě)以一個(gè)GPIO口的LED閃爍的程序為例。設計采用的Flash型號為S29GL512N,其接法如圖2所示。

調試步驟為:(1)通過(guò)JTAG口將編譯生成的.out文件下載到DSP內部的RAM中,不運行,將RAM中的數據保存成.dat文件(注意保存的長(cháng)度應該不小于用戶(hù)程序的長(cháng)度)。(2)進(jìn)行Flash的擦除,采用整體擦除,擦除結束后采用循環(huán)檢測DQ7引腳是否置1,置1代表完全擦除。(3)進(jìn)行Flash的燒寫(xiě),將上面保存的.dat文件Load到DSP的CE2地址段(注意修改起始地址和長(cháng)度),編寫(xiě)程序,從CE2的地址讀取數址位(注意寫(xiě)入長(cháng)度不能小于.dat數據的長(cháng)度),完成Flash的燒寫(xiě)。(4)重新通電,LED閃爍,表面DSP完成外部ROM加載,實(shí)現DSP的自啟動(dòng)。
6 結束語(yǔ)
DSP廣泛應用于各種數字信息產(chǎn)品中,對于其加載模式的要求也越來(lái)越高,通過(guò)Flash存儲器加載DSP的方法是實(shí)際應用中有效而簡(jiǎn)單的方法。本文介紹了TMS320C6455從外部ROM加載的模式,給出了硬件連接方式和軟件的核心代碼,通過(guò)實(shí)驗驗證其運行良好。
可控硅相關(guān)文章:可控硅工作原理
比較器相關(guān)文章:比較器工作原理
雙控開(kāi)關(guān)相關(guān)文章:雙控開(kāi)關(guān)原理
評論