基于TMS320C6455的外部FLASH自動加載設(shè)計
摘要 為實現(xiàn)數(shù)字信號處理器的加栽,介紹了的各種加載模式,尤其是對外部ROM的引導方式,以及一種無需數(shù)據(jù)轉(zhuǎn)換即可通過數(shù)據(jù)加載將用戶程序?qū)懭隖lash的方法。以TMS320C6455為例,同時結(jié)合LED燈閃爍實例驗證自動加載的可行性。
本文引用地址:http://www.ex-cimer.com/article/246643.htm數(shù)字信號處理器(DSP)在數(shù)字信號處理中有著廣泛的應(yīng)用,尤其是與FPGA結(jié)合的設(shè)計,增加了應(yīng)用的靈活性和可升級性,能夠充分發(fā)揮其信號處理的優(yōu)越性。在設(shè)計以DSP為處理器的信號處理模塊時,DSP的加載方式是必須考慮的問題。本文將以TMS320C6455為例來研究DSP的自動加載。
TMS320C6455是TI推出的一款較為高端的定點型數(shù)字信號處理器。TMS320C6455的時鐘頻率為1.2 GHz,16位定點處理能力為9 600MMAC /s,采用了Serial Rapid IO接口技術(shù),這些特點決定了TMS320C6455在通信、圖像處理、雷達等領(lǐng)域得到廣泛應(yīng)用。
1 TMS320C6455加載模式
C6000系類DSP的主要加載方式包括無引導模式、主機引導模式和EMIF總線引導模式3種。3種加載模式各有其優(yōu)越點:無引導模式僅限于存儲器0地址不是必須映射到RAM空間的器件,否則在RAM空間的初始化之前CPU會讀取無效代碼而導致錯誤;主機引導模式則要求必須有一部外部主機控制DSP的初始化,這增加了系統(tǒng)的復雜度和成本,在設(shè)計中較少采用。EMIF引導方式DSP與外部ROM的接口較為自由,但需要二次加載。TMS320C6455在以上加載方式的基礎(chǔ)上還有主I2C、從I2C和SRIO引導方式。本文主要討論易于實現(xiàn)的EMIF加載方式。
DSP的內(nèi)部ROM空間有限,不能將所有的用戶代碼存儲到內(nèi)部ROM中。因此需要通過二次搬移完成用戶程序的加載。TMS320C6455的地址空間0x100000~0x107FFF間集成了32 kB的內(nèi)部ROM,Bootloader是其中的一段引導代碼,作用是在DSP上電時,DSP將一段存儲在外部ROM的用戶代碼(長度為1 kB)搬移到內(nèi)部的RAM單元中執(zhí)行。這種自動加載技術(shù)不僅利用了本身有限的ROM資源,而且充分發(fā)揮了DSP內(nèi)部資源的利用率。
2 外部ROM引導
在外部ROM引導模式下,對TMS320C6455而言,CPU上電后將自動從CE3空間拷貝1 kB到CPU的內(nèi)部RAM并且運行。對于大多數(shù)的應(yīng)用程序,1 kB大小的代碼量無法滿足系統(tǒng)的要求,如果將代碼放在外部Flash中運行,則又浪費了DSP的高速性能。因此,當用戶代碼長度>1 kB時,需要使用Bootloader進行二次加載。Bootloader程序是一個“搬移數(shù)據(jù)”的程序,主要功能是將用戶程序從CE3的其他空間搬移到內(nèi)部RAM供CPU運行。DSP的二次加載程序的加載過程如圖1所示。
DSP的CPU復位階段,程序指針自動指向Bootloader,這個程序?qū)E3空間的1 kB(對應(yīng)外部Flash中二次加載代碼)搬移到CPU的內(nèi)部RAM中;CPU退出復位后正常啟動,運行二次加載程序,將用戶程序的部分拷貝到RAM中,完成數(shù)據(jù)的搬移后跳轉(zhuǎn)到_c_int00處,初始化C運行環(huán)境;待C運行環(huán)境初始化完成后,指針跳轉(zhuǎn)到main()函數(shù)處。
3 用戶程序的燒寫和存儲區(qū)域分配
文中重點介紹直接利用CCS開發(fā)工具將用戶程序編譯連接的.out文件,通過JTAG仿真器下載到DSP內(nèi)部的RAM中,只要不運行程序,此時RAM中存儲的程序就是.out文件對應(yīng)的二進制格式存儲的機器碼,將其另存為.dat文件格式,則直接可以通過在線燒寫的方法完成Flash的燒寫。一定要修改工程文件中的原鏈接器,命令文件中存儲空間的劃分和COFF段屬性的設(shè)置,避免燒寫程序的存儲空間與用戶程序相沖突,并在兩個程序中留有一定的間隔用于保護程序的相互獨立性。
4 二次加載程序的編寫
TMS320C6455片內(nèi)的Boofloader自動載入CE3空間的前1 kB空間,在實際應(yīng)用中,DSP的應(yīng)用程序一般1 kB,因此需要加入二次引導代碼。其實現(xiàn)的功能是將用戶程序的剩余部分拷貝到RAM中。程序運行的步驟為:(1)根據(jù)復制表中各段的加載和運行地址等信息,對變量進行初始化。(2)根據(jù)信息將代碼從Flash搬移到RAM的相應(yīng)位置。(3)將程序的指針跳轉(zhuǎn)到C程序入口函數(shù)_c_int00處。
5 Flash的燒寫
Flash的燒寫以一個GPIO口的LED閃爍的程序為例。設(shè)計采用的Flash型號為S29GL512N,其接法如圖2所示。
調(diào)試步驟為:(1)通過JTAG口將編譯生成的.out文件下載到DSP內(nèi)部的RAM中,不運行,將RAM中的數(shù)據(jù)保存成.dat文件(注意保存的長度應(yīng)該不小于用戶程序的長度)。(2)進行Flash的擦除,采用整體擦除,擦除結(jié)束后采用循環(huán)檢測DQ7引腳是否置1,置1代表完全擦除。(3)進行Flash的燒寫,將上面保存的.dat文件Load到DSP的CE2地址段(注意修改起始地址和長度),編寫程序,從CE2的地址讀取數(shù)址位(注意寫入長度不能小于.dat數(shù)據(jù)的長度),完成Flash的燒寫。(4)重新通電,LED閃爍,表面DSP完成外部ROM加載,實現(xiàn)DSP的自啟動。
6 結(jié)束語
DSP廣泛應(yīng)用于各種數(shù)字信息產(chǎn)品中,對于其加載模式的要求也越來越高,通過Flash存儲器加載DSP的方法是實際應(yīng)用中有效而簡單的方法。本文介紹了TMS320C6455從外部ROM加載的模式,給出了硬件連接方式和軟件的核心代碼,通過實驗驗證其運行良好。
可控硅相關(guān)文章:可控硅工作原理
比較器相關(guān)文章:比較器工作原理
雙控開關(guān)相關(guān)文章:雙控開關(guān)原理
評論