TMS320C6701 DSP的自動引導方式與實現(xiàn)
發(fā)布時間:2007/8/28 0:00:00 訪問次數(shù):781
自動引導方式綜述
處理器復位后可以自動從外部設備加載程序,稱為引導。TI公司的新一代數(shù)字處理器TMS320C6701提供了一系列外部引腳BOOTMODE[4:0]來完成芯片的狀態(tài)設置。系統(tǒng)加電后,RESET信號有效,芯片復位。在RESET信號上升沿處鎖存BOOTMODE[4:0]信號,借以決定芯片的存儲器映射方式、地址0處的存儲器類型以及復位后芯片的自舉模式。復位結束后,芯片從存儲器的0地址開始執(zhí)行指令?偟膩碚f,TMS320C6701有三種引導方式,其詳細描述如下:
不加載:CPU直接從存儲器的0地址處開始執(zhí)行指令。如果系統(tǒng)中使用的是SDRAM,則CPU會先掛起,等候SDRAM的初始化完成。
ROM加載:位于外部CE1空間的ROM中的程序首先通過DMA搬入地址0處。盡管加載過程是在芯片外部全部復位后才開始的,但是當芯片仍處于內(nèi)部復位保持時,就開始了上述的傳輸過程了。用戶可以指定外部ROM的存儲寬度,外部存儲器接口EMIF會自動將相鄰的8bit/16bit數(shù)據(jù)合并成32bit。用DMA進行的這一加載過程是一個單幀的數(shù)據(jù)塊傳輸。對于TMS320C6701,DMA從CE1空間中拷貝64KB數(shù)據(jù)到地址0處。傳輸過程完成之后,CPU退出復位狀態(tài),開始執(zhí)行地址0處的指令。
主機(HPI)引導:CPU停留在保持狀態(tài),其余硬件部分均保持正常狀態(tài)。在這期間,外部主機通過主機口初始化CPU的存儲空間。主機完成所有的初始化工作后,將主機口控制寄存器中的DSPINT位設置為1,結束引導過程。此時CPU退出復位狀態(tài),開始執(zhí)行地址0處的指令。在主機引導過程中,主機可以對DSP所有的存儲空間進行讀和寫。
自動引導的軟件設計實現(xiàn)
從軟件角度看,所謂復位引導就是在系統(tǒng)上電后,將生成的可執(zhí)行文件的代碼和數(shù)據(jù)按照對系統(tǒng)存儲空間的分配裝載到指定的地方,并接著依據(jù)規(guī)定的順序來執(zhí)行程序。為了設計這一過程的軟件,首先必須了解TMS320C6701的軟件設計流程。
TI公司為DSP軟件的設計提供了一個功能強大的開發(fā)平臺Code Composer Studio(CCS),主要包括:C編譯器、匯編器、匯編優(yōu)化器、連接器和十六進制轉(zhuǎn)換工具等。TMS320C6701的程序設計流程如圖1所示。
圖1 TMS320C6701的程序設計流程圖
ROM引導方式實現(xiàn)
在TI-DSP的應用程序開發(fā)中,程序的代碼和數(shù)據(jù)總是保存在ROM、FLASH等非易失存儲器中,以保證掉電時代碼仍存在。這就需要在運行前將代碼從FLASH中加載到DSP內(nèi)部,ROM引導就是用來實現(xiàn)這一過程。一般來說,ROM引導應用程序的開發(fā)分以下幾個步驟:
生成目標文件(.out文件)
在CCS環(huán)境中,編寫應用程序ues.c,通過編譯、連接查找、修正程序的錯誤,利用仿真器加載軟件程序到硬件系統(tǒng)中調(diào)試,直至程序無錯誤。然后編寫相應的命令文件Link(.cmd),Link命令文件是以文件的方式定義鏈接參數(shù),描述系統(tǒng)生成的程序代碼段、初始化數(shù)據(jù)段、未初始化數(shù)據(jù)段的段名及映射的目標板物理空間。
ROM引導過程表明,復位后系統(tǒng)自動將CE1 FLASH空間的64KB數(shù)據(jù)到地址0處。DSP 0地址開始的64KB存儲空間是內(nèi)部程序存儲器,程序代碼占據(jù)這一區(qū)域。因此,需將外部CE1 FLASH空間分段,程序代碼段占據(jù)FLASH的前64KB空間,數(shù)據(jù)段分配在FLASH開始64KB后的地址空間。這樣,ROM引導實現(xiàn)程序代碼段的自動加載,但數(shù)據(jù)段不能自動加載,需要使用load/run來定義數(shù)據(jù)段的裝載地址和運行地址于不同空間,保證變量的正確初始化和數(shù)據(jù)定位。
Link命令文件的正確編寫是極其重要的,它決定著能否生成正確的COFF格式目標文件。實際ROM引導過程中,往往都是由于Link文件編寫的不正確而造成引導失敗。如圖2所示為一正確的Link命令文件,將應用程序和此命令文件編譯鏈接生成目標文件use.out。
圖2 ROM引導的Link命令文件
文件格式的轉(zhuǎn)換
目標文件use.out的格式是COFF文件格式,F(xiàn)LASH不支持這種格式,所以不能直接寫入FLASH中,必須對該文件進行轉(zhuǎn)換,提取其中的數(shù)據(jù)部分,形成數(shù)據(jù)文件。
利用TI公司CCS自帶的轉(zhuǎn)換工具hex6x.exe可以實現(xiàn)將目標文件轉(zhuǎn)換成十六進制的.hex輸出文件,如圖3所示。
圖3 ROM引導的轉(zhuǎn)換格式命令文件
燒寫FLASH
在CCS中編寫FLASH燒寫程序,通過JTAG口加載運行,把數(shù)據(jù)文件code.bot和data.bot分別寫入FLASH相應的存儲區(qū)內(nèi)。注意程序?qū)懭隖LASH存儲器時,要把CE1空間寄存器設計為32位寬度存儲器接口方式。
通過以上步驟,當系統(tǒng)再次加電時,即可實現(xiàn)ROM引導方式加載DSP。
HPI引導方式實現(xiàn)
HPI引導程序設計與ROM引導程序設計類似,同樣需要先生成.out目標文件,再進行文件格式轉(zhuǎn)換,提取出程序代碼段數(shù)據(jù)和
自動引導方式綜述
處理器復位后可以自動從外部設備加載程序,稱為引導。TI公司的新一代數(shù)字處理器TMS320C6701提供了一系列外部引腳BOOTMODE[4:0]來完成芯片的狀態(tài)設置。系統(tǒng)加電后,RESET信號有效,芯片復位。在RESET信號上升沿處鎖存BOOTMODE[4:0]信號,借以決定芯片的存儲器映射方式、地址0處的存儲器類型以及復位后芯片的自舉模式。復位結束后,芯片從存儲器的0地址開始執(zhí)行指令。總的來說,TMS320C6701有三種引導方式,其詳細描述如下:
不加載:CPU直接從存儲器的0地址處開始執(zhí)行指令。如果系統(tǒng)中使用的是SDRAM,則CPU會先掛起,等候SDRAM的初始化完成。
ROM加載:位于外部CE1空間的ROM中的程序首先通過DMA搬入地址0處。盡管加載過程是在芯片外部全部復位后才開始的,但是當芯片仍處于內(nèi)部復位保持時,就開始了上述的傳輸過程了。用戶可以指定外部ROM的存儲寬度,外部存儲器接口EMIF會自動將相鄰的8bit/16bit數(shù)據(jù)合并成32bit。用DMA進行的這一加載過程是一個單幀的數(shù)據(jù)塊傳輸。對于TMS320C6701,DMA從CE1空間中拷貝64KB數(shù)據(jù)到地址0處。傳輸過程完成之后,CPU退出復位狀態(tài),開始執(zhí)行地址0處的指令。
主機(HPI)引導:CPU停留在保持狀態(tài),其余硬件部分均保持正常狀態(tài)。在這期間,外部主機通過主機口初始化CPU的存儲空間。主機完成所有的初始化工作后,將主機口控制寄存器中的DSPINT位設置為1,結束引導過程。此時CPU退出復位狀態(tài),開始執(zhí)行地址0處的指令。在主機引導過程中,主機可以對DSP所有的存儲空間進行讀和寫。
自動引導的軟件設計實現(xiàn)
從軟件角度看,所謂復位引導就是在系統(tǒng)上電后,將生成的可執(zhí)行文件的代碼和數(shù)據(jù)按照對系統(tǒng)存儲空間的分配裝載到指定的地方,并接著依據(jù)規(guī)定的順序來執(zhí)行程序。為了設計這一過程的軟件,首先必須了解TMS320C6701的軟件設計流程。
TI公司為DSP軟件的設計提供了一個功能強大的開發(fā)平臺Code Composer Studio(CCS),主要包括:C編譯器、匯編器、匯編優(yōu)化器、連接器和十六進制轉(zhuǎn)換工具等。TMS320C6701的程序設計流程如圖1所示。
圖1 TMS320C6701的程序設計流程圖
ROM引導方式實現(xiàn)
在TI-DSP的應用程序開發(fā)中,程序的代碼和數(shù)據(jù)總是保存在ROM、FLASH等非易失存儲器中,以保證掉電時代碼仍存在。這就需要在運行前將代碼從FLASH中加載到DSP內(nèi)部,ROM引導就是用來實現(xiàn)這一過程。一般來說,ROM引導應用程序的開發(fā)分以下幾個步驟:
生成目標文件(.out文件)
在CCS環(huán)境中,編寫應用程序ues.c,通過編譯、連接查找、修正程序的錯誤,利用仿真器加載軟件程序到硬件系統(tǒng)中調(diào)試,直至程序無錯誤。然后編寫相應的命令文件Link(.cmd),Link命令文件是以文件的方式定義鏈接參數(shù),描述系統(tǒng)生成的程序代碼段、初始化數(shù)據(jù)段、未初始化數(shù)據(jù)段的段名及映射的目標板物理空間。
ROM引導過程表明,復位后系統(tǒng)自動將CE1 FLASH空間的64KB數(shù)據(jù)到地址0處。DSP 0地址開始的64KB存儲空間是內(nèi)部程序存儲器,程序代碼占據(jù)這一區(qū)域。因此,需將外部CE1 FLASH空間分段,程序代碼段占據(jù)FLASH的前64KB空間,數(shù)據(jù)段分配在FLASH開始64KB后的地址空間。這樣,ROM引導實現(xiàn)程序代碼段的自動加載,但數(shù)據(jù)段不能自動加載,需要使用load/run來定義數(shù)據(jù)段的裝載地址和運行地址于不同空間,保證變量的正確初始化和數(shù)據(jù)定位。
Link命令文件的正確編寫是極其重要的,它決定著能否生成正確的COFF格式目標文件。實際ROM引導過程中,往往都是由于Link文件編寫的不正確而造成引導失敗。如圖2所示為一正確的Link命令文件,將應用程序和此命令文件編譯鏈接生成目標文件use.out。
圖2 ROM引導的Link命令文件
文件格式的轉(zhuǎn)換
目標文件use.out的格式是COFF文件格式,F(xiàn)LASH不支持這種格式,所以不能直接寫入FLASH中,必須對該文件進行轉(zhuǎn)換,提取其中的數(shù)據(jù)部分,形成數(shù)據(jù)文件。
利用TI公司CCS自帶的轉(zhuǎn)換工具hex6x.exe可以實現(xiàn)將目標文件轉(zhuǎn)換成十六進制的.hex輸出文件,如圖3所示。
圖3 ROM引導的轉(zhuǎn)換格式命令文件
燒寫FLASH
在CCS中編寫FLASH燒寫程序,通過JTAG口加載運行,把數(shù)據(jù)文件code.bot和data.bot分別寫入FLASH相應的存儲區(qū)內(nèi)。注意程序?qū)懭隖LASH存儲器時,要把CE1空間寄存器設計為32位寬度存儲器接口方式。
通過以上步驟,當系統(tǒng)再次加電時,即可實現(xiàn)ROM引導方式加載DSP。
HPI引導方式實現(xiàn)
HPI引導程序設計與ROM引導程序設計類似,同樣需要先生成.out目標文件,再進行文件格式轉(zhuǎn)換,提取出程序代碼段數(shù)據(jù)和
熱門點擊
- 16分鐘單片語音錄放電路ISD4004
- TMS320C6701 DSP的自動引導方式
- 基于超聲原理的輪胎漏氣檢測系統(tǒng)設計
- H.264視頻解碼器在C6416 DSP上的
- 基于FPGA的微處理器內(nèi)核設計與實現(xiàn)
- 家用醫(yī)療保健智能機器人設計
- 對線性預測語音解壓縮方法的探討
- 基于AD7864和DSP的4路數(shù)據(jù)采集系統(tǒng)
- TMS320C542在脫機視頻編/解碼系統(tǒng)中
- 消費性多媒體產(chǎn)品硬軟件系統(tǒng)的互操作性測試
推薦技術資料
- 業(yè)余條件下PCM2702
- PGM2702采用SSOP28封裝,引腳小而密,EP3... [詳細]