《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > DSP 代碼HPI加載方法的研究

DSP 代碼HPI加載方法的研究

2009-08-10
作者:羅書克1,張?jiān)簦?,張亞科?/h5>

??? 摘 要:應(yīng)用TMS320VC5410A的主機(jī)接口,結(jié)合單片機(jī)豐富的I/O資源以及單片機(jī)操作主機(jī)接口的簡(jiǎn)易性,介紹了在DSP系統(tǒng)復(fù)位時(shí),單片機(jī)通過主機(jī)接口加載DSP代碼的詳細(xì)過程。
??? 關(guān)鍵詞:VC5410A;單片機(jī);HPI;代碼加載

?

??? 隨著科技的發(fā)展,許多嵌入式產(chǎn)品都在朝著小型化、節(jié)能化的方向發(fā)展。如何應(yīng)用現(xiàn)有的資源,減少元器件的數(shù)量也成為許多廠家技術(shù)革新的方向。DSP作為一種高速的處理器在許多電子產(chǎn)品中都有所應(yīng)用。所以根據(jù)產(chǎn)品的資源,選擇一種合適的代碼加載方式也是減少成本的一種方法。本文依據(jù)5410A來(lái)介紹通過HPI接口加載代碼的方法,適合于含有單片機(jī)的DSP系統(tǒng)中。
??? 5410A有5種加載代碼的方法,分別是:HPI引導(dǎo)加載、8/16位并行引導(dǎo)加載、8/16位標(biāo)準(zhǔn)串行口引導(dǎo)加載、8位串行EEPROM引導(dǎo)加載和I/O引導(dǎo)加載[1-2]
??? HPI加載就是通過DSP的HPI接口,由外部主機(jī)把DSP的運(yùn)行代碼寫入DSP的程序空間,寫完之后,DSP從程序的起始地址開始執(zhí)行代碼[3]。下面主要介紹HPI加載的過程。
1 DSP固化的BootLoader程序
??? 當(dāng)DSP上電復(fù)位時(shí),如果DSP的MP/#MC引腳為低電平,便跳轉(zhuǎn)到其內(nèi)部固化的BootLoader程序運(yùn)行,選擇相應(yīng)的加載模式,直到代碼加載完畢才跳出引導(dǎo)程序[4-5]。其中HPI加載模式的流程如圖1所示。

?


??? 由圖1可以看出,DSP進(jìn)入HPI加載模式有兩種方式:一是通過判斷INT2中斷標(biāo)志位是否激活;二是通過向0x007E和0x007F(0x007E和0x007F地址中存放HPI加載時(shí)程序運(yùn)行的入口地址)寫入有效的地址,因?yàn)閎ootloader在運(yùn)行時(shí),首先清零0x007E和0x007F兩個(gè)地址中的數(shù)據(jù),然后才對(duì)加載模式進(jìn)行選擇,當(dāng)沒有查詢到有效的加載模式時(shí),bootloader程序繼續(xù)向下執(zhí)行,檢查0x007E和0x007F是否為有效地址,是則跳轉(zhuǎn)到該地址執(zhí)行程序,不是則繼續(xù)對(duì)部分加載模式進(jìn)行查詢。筆者根據(jù)使用的5410A平臺(tái),采用第二種方法[6]。
2 主機(jī)操作過程
??? 5410A的HPI接口是增強(qiáng)型的,它允許主機(jī)訪問整個(gè)片內(nèi)RAM空間,并且主機(jī)和DSP對(duì)這些空間的訪問是共享的。單片機(jī)對(duì)HPI接口的操作實(shí)際上就是對(duì)HPI的3個(gè)寄存器HPIC、HPIA、HPID進(jìn)行操作的過程[7]。單片機(jī)通過HPI口向DSP內(nèi)部RAM寫入數(shù)據(jù)的程序流程如圖2所示。

?


??? 單片機(jī)程序首先寫HPIC寄存器,高低字節(jié)都是09H,清HINT中斷,配置第一個(gè)字節(jié)傳輸?shù)氖堑妥止?jié),然后向HPIA中寫入地址值(起始地址-1),通過自增方式向HPID寄存器連續(xù)送入數(shù)據(jù)[8]。因?yàn)镠PI在自增方式下寫數(shù)據(jù)時(shí),地址先加1,然后再寫,所以開始配置的地址值要減1后再送HPIA寄存器。在自增方式讀時(shí),是先讀出數(shù)據(jù),然后地址再加1。
??? 在這里,DSP的代碼作為單片機(jī)代碼的一部分,即把DSP的bin格式代碼添加到單片機(jī)bin格式代碼的某個(gè)空閑空間。單片機(jī)開始工作時(shí),連續(xù)地從這個(gè)空間讀取數(shù)據(jù),然后通過HPI口寫入DSP的內(nèi)部RAM中。數(shù)據(jù)寫完后,向DSP的數(shù)據(jù)空間7EH、7FH寫入DSP程序運(yùn)行的起始地址,此后單片機(jī)就可以進(jìn)行其他工作,DSP的引導(dǎo)程序通過判斷7EH、7FH中的有效數(shù)據(jù)、跳轉(zhuǎn)的相應(yīng)的起始地址,開始執(zhí)行代碼。
??? 需要注意的是,DSP在編譯時(shí),CMD文件中設(shè)置的程序的起始地址要和DSP的 HPI加載的起始地址相同。
3文件格式轉(zhuǎn)換
??? DSP的應(yīng)用程序編譯鏈接后,生成一個(gè)out文件,這個(gè)文件包含有其他一些附件信息,所以不能通過主機(jī)直接加載到DSP中,要通過一個(gè)CMD文件把其轉(zhuǎn)化為hex格式,然后再轉(zhuǎn)化為bin格式,最后把bin格式文件中的有效數(shù)據(jù)添加到單片機(jī)編譯生成的bin 文件后面,單片機(jī)加載到DSP內(nèi)部的數(shù)據(jù)便從該地址開始。CMD文件內(nèi)容如下:
??? dsp.out
??? -o dsp.hex
??? -i
??? -memwidth 8
??? -romwidth 8
??? 把通過CCS編鏈接生成的out文件(假設(shè)為dsp.out)和上述CMD文件(假設(shè)為debug.cmd)以及hex500、hex2bin.exe(CCS自帶)4個(gè)文件放在同一個(gè)文件夾中(假設(shè)在 d:dsp 文件夾下)。在DSP環(huán)境下,運(yùn)行如下命令:
??? d:回車
??? cd dsp 回車
??? hex500 debug.cmd 回車
??? 便可以生成相應(yīng)的dsp.hex文件。隨后通過執(zhí)行hex2bin dsp.hex 指令,可以把hex格式的文件轉(zhuǎn)化為需要的bin文件。
??? 通過單片機(jī)對(duì)DSP的主機(jī)接口進(jìn)行讀寫,來(lái)實(shí)現(xiàn)DSP代碼的加載?,F(xiàn)在好多單片機(jī)的內(nèi)部FLASH空間都達(dá)到或超過64KB范圍,如華邦、SST系列等有足夠的空間來(lái)存放DSP的數(shù)據(jù)代碼,并且單片機(jī)在上電加載完DSP代碼之后,可繼續(xù)進(jìn)行其他工作,互不影響,這樣既節(jié)省了芯片資源,又可以充分利用單片機(jī)的現(xiàn)有資源進(jìn)行其他工作。
參考文獻(xiàn)
[1]??Coding of speech at 8kb/s using conjugate-structure algebraic-cod excited linear-prediction. ITU-T Recommendation G.729, March 1996.
[2] SALAM R,LAFLAMME I C. Reduced complexity 8kb/s CSACELP codec for digital simultaneous voice and data[J]. IEEE Communication Magazine, 1997, 9: 56-63.
[3]? 張軍,趙靜.DSP芯片的特點(diǎn)及應(yīng)用[J].現(xiàn)代電子技術(shù), 2001, 11: 7-81.
[4]? TMS320C54X DSP Reference Set.TI公司
[5]? TMS320VC5409數(shù)據(jù)手冊(cè).TI公司
[6]? X5043數(shù)據(jù)手冊(cè).Xicor公司
[7]? 暢洪亮,程維,蔡學(xué)敬. TMS320VC5402 HPI接口與PCI總線接口設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2006, 10.
[8]? TMS320VC5402A/VC5409/VC5410A/VC5416 Bootloader.TI公司.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。