TMS320VC5410在線(xiàn)并行自舉的實(shí)現
TMS320VC5410是德州儀器公司(TI)2000年推出的一款性?xún)r(jià)比極高的16位定點(diǎn)數字信號處理器,其操作速率最高可達100MIPS。他采用先進(jìn)的修正哈佛結構,片內有8條總線(xiàn)、CPU、在片存儲器和在片外圍電路等硬件,加上高度專(zhuān)業(yè)的指令系統,使其具有功耗小、高度并行等優(yōu)點(diǎn),可以滿(mǎn)足電信等眾多領(lǐng)域的實(shí)時(shí)處理要求,但是TMS320VC5410片上的只讀存儲器(ROM)只能采用掩模編程的方式并且必須把代碼交給DSP廠(chǎng)家,成本較高,因此一般用戶(hù)在使用時(shí)需要外部擴展程序存儲器,E2PROM可以在線(xiàn)擦寫(xiě),且掉電后數據不會(huì )丟失,具有體積小、功耗低等特點(diǎn),是作為TMS320VC5410外擴程序存儲器的一種較好選擇。通常情況下,要把CCS編譯生成的COFF格式的文件通過(guò)Hex500轉換成Hex格式的文件,并最終通過(guò)編程器把轉換過(guò)的代碼燒寫(xiě)進(jìn)E2PROM(或FLASH等),本文提出了一種直接在CCS環(huán)境下通過(guò)在線(xiàn)編程來(lái)完成片外存儲器燒寫(xiě),實(shí)現并行引導的新方法。
1 TMS320VC5410 DSP的自舉原理
DSP上電復位后從片外存儲器讀入程序的過(guò)程叫做自舉(Bootloader)。TMS320VC54XX DSP芯片內部設置有Bootloader程序,其主要作用是在系統上電復位后,將用戶(hù)程序從外部存儲器裝載到DSP的內部隨機存儲器并運行程序,有多種Bootloader方式可將外部程序裝入DSP中,這些方式包括串口方式,HPI方式,并行方式和WARM方式,此外DSP還支持8位或16位數據總線(xiàn)的外部存儲器件及多塊外部存儲器件的Dootloader方式,上電復位后,如其MP/MC引腳為低電平,則TMS320VC5410進(jìn)入Bootloader模式,從0xff80單元開(kāi)始執行片內引導裝載程序,進(jìn)入引導程序后,如有INT2請求中斷,則進(jìn)入HPI引導方式;如有INT3請求中斷,則進(jìn)入串口引導模式;若沒(méi)有中斷請求,系統進(jìn)入并行引導模式,當進(jìn)入并行引導模式后,TMS320VC5410首先在I/O空間Oxffff單元(若I/O為空則跳到數據存儲器空間)讀取一個(gè)地址,然而跳轉到這一地址,根據地址單元的數據判斷是16位并行引導還是8位并行引導,接著(zhù)依次讀入以下內容,SWWSR、BSCR寄存器所需要配置的值,程序入口地址所在的頁(yè)面、程序入口地址、程序塊長(cháng)度、程序存放目標地址所在的頁(yè)面和程序存放目標地址;最后TMS320VC54lO開(kāi)始讀取程序代碼并將其裝載到片內存貯器中。
2 TMS320VC5410自舉的實(shí)現
為實(shí)現在線(xiàn)并行引導,即把用戶(hù)程序燒進(jìn)E2PROM,需要把程序代碼分為兩段:一段為用戶(hù)代碼(即被燒寫(xiě)部分),另一段為燒寫(xiě)代碼。用CCS把這兩部分代碼編譯鏈接成同一個(gè)0UT文件(即COFF格式的文件),然后在CCS環(huán)境下將該0UT格式的文件下載到TMS320VC5410的內存中,此時(shí)TMS320VC5410內存里的文件已經(jīng)轉換成相應的Hex格式,此時(shí)只要從燒寫(xiě)代碼處在線(xiàn)調試執行程序,即可把用戶(hù)代碼燒進(jìn)E2PROM,從而完成自舉表的燒寫(xiě)。由于TMS320VC5410的數據總線(xiàn)是16位,而SST29LE010的數據總線(xiàn)為8位,因此在數據傳輸過(guò)程中要進(jìn)行移位操作。若采用16位并行引導時(shí),則不用進(jìn)行移位操作。
具體操作步驟如下:
(1)將DSP的MP/MC引腳置高,讓DSP工作在微處理器方式。
(2)將第一段代碼通過(guò)仿真器下載到DSP中,但不運行該代碼。
(3)將第二段代碼通過(guò)仿真器下載到DSP中,運行此代碼。
(4)代碼2運行結束后,去掉仿真器,并將MP/MC引腳置低,讓DSP工作在微型計算機方式。
(5)復位DSP,DSP獨立運行。
2.1 硬件連接
SST29LE010是SST推出的一種E2PROM,他有1 MB的空間,分為8頁(yè),每頁(yè)有128 kB的空間;工作電壓僅為3 V。因此用SST29LE0lO來(lái)作為T(mén)MS320VC5410的外部存貯器。SST29LE010與TMS320VC5410的連接見(jiàn)圖1。
![]() |
GAL16V8用于控制SST29LE010的選通,其表達式如下:
/CE#=/DS*A15
WE#=MSTRB+R/W
OE#=MSTRB+/R/W
2.2 軟件的編寫(xiě)
程序代碼如上所述,分為兩段,在編程過(guò)程中要注意在鏈接命令文件中.DISPLAY和.text在地址上不能覆蓋。第一段代碼為用戶(hù)程序(包括自舉初始化的狀態(tài)字),即脫機運行的程序代碼。本文的目的就是要把這部分代碼燒寫(xiě)進(jìn)E2PROM。第二段代碼負責把第一段代碼燒寫(xiě)進(jìn)E2PROM。代碼如下:
用CCS將兩部分代碼編譯成同一個(gè)COFF文件,下載到DSP的內存,此時(shí)在DSP內存中的文件已經(jīng)轉成Hex格式的文件。然后將PC指針定位到.text處開(kāi)始運行、即可把用戶(hù)程序燒寫(xiě)進(jìn)從地址8000H開(kāi)始的E2PROM外部數據存儲器中去,當脫機運行時(shí),TMS320VC5410進(jìn)入并行引導,把SST29LE010中的代碼復制到從地址0100H開(kāi)始的片內程序存儲器中,然后PC指針定位至0100H處并開(kāi)始執行。
3 結語(yǔ)
通過(guò)本文介紹的方法,在不需要任何其他工具的情況下實(shí)現了TMS320VC5410的自舉引導,本方法簡(jiǎn)單易行,易于實(shí)現,沒(méi)有編程器的情況下,本方法是一種比較好的方案,并且這在燒寫(xiě)貼片FLASH芯片時(shí)也相當實(shí)用,因很多貼片封裝的存儲器很難用編程器編程,更不可能頻繁插拔,利用CCS在線(xiàn)編程則解決了這個(gè)問(wèn)題。
評論