TMS320C64x系列DSP的16bit Flash的啟動設計
出處:電子技術網(wǎng) 發(fā)布于:2013-09-23 09:49:46
摘要:對TMS320C64x系列DSP的幾種啟動加載方案中的EMIF加載方式進行了詳細介紹。然后以型號為TMS320C642的DSP為例,仔細分析了對Flash芯片28F640J3A的16-bit模式編程燒寫和上電自舉的實現(xiàn)辦法。實驗證明,本DSP啟動加載方案易于實現(xiàn),并且方便、可靠。
1.引言
近年來,隨著數(shù)字信號處理器(DSP)技術的迅猛發(fā)展,其越來越廣泛地應用于同民經(jīng)濟的各個領域中。其中,T I公司推出的TMS320C6000系列DSP器件更是在許多需要進行大量數(shù)字信號處理運算并兼顧高實時性要求的場合得以應用。在連接硬件仿真器的仿真環(huán)境下調(diào)試DSP程序通過之后,還有一項重要的工作要做:即怎樣實現(xiàn)程序代碼的上電自舉。TMS320C64x系列DSP有多種上電自舉方式:不加載、HPI加載和Flash自舉。實際應用中,通常采用的是通過EMIF加載Flash數(shù)據(jù)的方式,把代碼和數(shù)據(jù)表存放在外部的非易失性存儲器里(常采用Flash器件)。
工程中的許多數(shù)據(jù)(如濾波器系數(shù)、配置常數(shù))常常使用16-bit的存儲形式。如果把Flash設計為16-bit而不是8-bit形式,將成倍減少存取這些數(shù)據(jù)的時間,提高系統(tǒng)的實時性。可是,TMS320C64x只支持8-bitF l a s h 加載。如果既能滿足前者又不影響bootloader,將會更加方便工程應用。以下為16bit Flash的啟動設計的過程介紹。
2.16bit Flash的啟動設計的流程介紹
TMS320C64x系列DSP的16bit Flash的啟動設計流程圖如圖1所示。

由流程圖可知,在程序經(jīng)過仿真條件下運行正常后,需要在工程中添加boot.asm文件并修改工程的cmd文件,然后編譯生成out文件,通過TI的hex6x工具和自己編寫的cmd文件,將這個out文件生成hex文件,再編寫程序?qū)ex文件轉(zhuǎn)換生成二進制文件,,需要建立一個程序工程,將這個二進制文件讀入并燒寫至flash中即可。
3.硬件電路接口設計
實際應用中,多采用外接Flash來加載程序代碼,這需要將DSP的AEA[22:21]引腳通過接上拉電阻實現(xiàn),這樣就可以使得DSP上電后通過EMIFA接口實現(xiàn)8-bit的Flash自舉。
本系統(tǒng)選用的Flash芯片是Intel公司的28F640J3A,具體特征要實際修改:存儲容量為8Mx8 bit,易于編程,接口如圖2所示。DSP與Flash是主從關系,由DSP通過EMIFA接口控制Flash的擦除和讀寫。其中,A1-A19為地址線,D15-D0為數(shù)據(jù)線,/CE為片選信號,/WE是寫選通信號,/OE為輸出使能信號,BYTE為8位或16位數(shù)據(jù)模式選擇(圖中接VCC,為16位模式)。Flash用于存放引導程序段、用戶代碼及一些數(shù)據(jù)表,由DSP軟件編程來寫入。

EMIFA只有20根地址線,可尋址lM空間,所以可以用復雜可編程邏輯器件(CPLD)控制Flash高位地址作頁選擇信號。
4.二級搬移程序的編寫方法
TMS320C64x開機只自動加載lKB程序代碼到內(nèi)部RAM,所以通常要編寫二次搬移程序加載剩余程序代碼。二級搬移程序的大小不能超過1K字節(jié),且必須用匯編語言編寫。這需要在可以正常運行的程序中創(chuàng)建一個boot.
asm啟動文件,告知程序在啟動后自動加載剩余程序代碼。通常將boot.asm改動一下就可以實現(xiàn),主要包括如下步驟:
?。?) 系統(tǒng)中所用的中斷向量表文件不要更改,只把復位中斷跳到搬移程序處,而不直接跳到C程序的入口點c_int00處;
?。?) 在搬移程序中配置D S P的E M I F A全局控制寄存器( G B L C T L )和空間控制寄存器(CECTL1),按TMS320C64x文檔說明和所用Flash數(shù)據(jù)手冊配置讀寫時序,由于選用16-bit寬的Flash,所以在boot.asm文件中,MY-TYPE要定義為16-bit異步接口,從而建好系統(tǒng)軟件和硬件溝通的平臺, 在b o o t .a s m 中, 剩余程序代碼存放的起始地址為0×90000800;
?。?) 參照map文件編寫搬移程序;
(4) 跳到C程序入口點c_int00處,完成搬移程序的編寫。
5.程序代碼文件的提取及重組
由于Flash的設置與TMS320C64x默認的8-bitFlash加載不相同,所以必須根據(jù)COFF文件(通用對象文件格式C o m m o n O b j e c tFile Format)的格式重新從。out文件中提取數(shù)據(jù)信息。要提取的數(shù)據(jù)代碼是初始化段和可執(zhí)行代碼段,這些信息可從COFF文件的段頭(section head-er)獲得。非初始化段是在程序運行時才分配空間的,所以不提取其數(shù)據(jù)。當可執(zhí)行代碼段是搬移段(通常是個)時,要把代碼重新組合后再存儲,目的是便于Flash燒寫程序的編寫。由于。out文件的代碼是32-bit存儲形式,所以讀文件要讀取4字節(jié)代碼,代碼重組是要把4字節(jié)變成4個16-bit的形式依次存儲起來。例如,某次讀得的代碼是0×11223344,代碼重組后16-bit形式是(遞增順序):0×0044,0×0033,0×0022,Ox001l.再把這些代碼以16-bit形式依次寫入新的xx.bin文件0~400h(16-bit寬,針對16-bit寬的地址即為0~800h)處,不足的寫入0;對于其他代碼依據(jù)。out文件中的地址變化依次寫入xx.bin文件的400h之后。
6.仿真環(huán)境下16-bitFlash程序的燒寫
6.1 Flash中代碼的存放方式
(1)二級搬移程序的存放
由于TMS320C64x上加載時采用默認的時序以8-bit加載模式讀取1K字節(jié)的程序到內(nèi)部RAM,因此,為使加載成功,當把Flash設置成16-bit寬時,需要把代碼只存儲在對應地址的低字節(jié),而高8-bit丟棄不用(可以寫入任何數(shù)據(jù)或不寫數(shù)據(jù)),如圖3所示。實際上boot時,CPU按地址遞增變化把4個連續(xù)半字地址的低8-bit合成1個32-bit的數(shù)據(jù)送到內(nèi)部RAM,高8-bit丟棄。因此把二級搬移程序存放在1KB空間中,只不過這lKB數(shù)據(jù)對應的是l6-bit的地址,實現(xiàn)了用16-bit寬Flash加載TMS320C64x的DSP程序。

(2)程序代碼從0×400處開始以16-bit的方式正常存儲
DSP加載前1K程序為默認低8bit方式加載,而對1 K以后的數(shù)據(jù),在b o o t . a s m文件中,已經(jīng)將應用程序數(shù)據(jù)的存儲方式配置為1 6位,所以加載剩余的應用程序數(shù)據(jù)將為16bit加載方式。
6.2 Flash的燒寫
將編寫的程序代碼寫入Flash有二種方法:使用專門的編程器燒寫;通過TI的CCS在仿真環(huán)境下直接燒寫(加載的逆過程)。目前多用后者,一是由于制板的需要,F(xiàn)lash多用表貼式,不方便用編程器燒寫;二是在線編程方法靈活,易于開發(fā)。在線燒寫只要把xx.bin數(shù)據(jù)文件的內(nèi)容讀出,再寫到Flash的指定位置。要注意的是在寫Flash之前一定要先對其進行擦除,因為編程指令不能使“O”
寫為“1”,只能使“1”變?yōu)椤?”,而擦除命令是把“0”變?yōu)椤?”.Flash芯片的擦除程序代碼見圖4.Flash芯片的編程程序代碼見圖5.


7.結束語
本文通過對DSP加載機制的深入闡釋給出用16-bit Flash加載TMS320C64x程序代碼的實現(xiàn)方法。這種方法在實際的車輛抓拍記錄系統(tǒng)中已經(jīng)取得較好的應用效果,對于相關開發(fā)人員有很強的參考價值。(作者:王中華)
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- 掌握 DSP:原理剖析與應用實踐2025/5/8 14:03:24
- 模糊邏輯在 DSP 上實時執(zhí)行2023/7/25 17:13:30
- 多速率DSP及其在數(shù)模轉(zhuǎn)換中的應用2023/6/12 15:28:52
- 使用 DSP 加速 CORDIC 算法2023/3/29 15:46:30
- 高速DSP系統(tǒng)的信號完整性2022/9/26 16:45:38









