版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
精品文檔-下載后可編輯DSP芯片TMS320C6712的外部?jī)?nèi)存自引導(dǎo)功能的實(shí)現(xiàn)-設(shè)計(jì)應(yīng)用TMS320C6000系列與TMS320C54系列的引導(dǎo)方式有很大差別。在開(kāi)發(fā)應(yīng)用TMS320C6000系列DSP時(shí),許多開(kāi)發(fā)者,尤其是初涉及者對(duì)DSPROM引導(dǎo)的實(shí)現(xiàn)有些困難,花費(fèi)許多時(shí)間和精力摸索。筆者結(jié)合開(kāi)發(fā)實(shí)例,介紹了實(shí)現(xiàn)外部存儲(chǔ)器引導(dǎo)的具體方法。
DSP的引導(dǎo)過(guò)程
DSP系統(tǒng)的引導(dǎo)(BOOT)是指系統(tǒng)加電或復(fù)位時(shí),DSP將一段存儲(chǔ)在外部的非易失性存儲(chǔ)器的程序代碼通過(guò)DMA方式拷貝到內(nèi)部的高速內(nèi)存中運(yùn)行。這樣既能擴(kuò)展DSP有限的存儲(chǔ)空間,又能充分發(fā)揮DSP內(nèi)部資源的效能。用戶的代碼也可以通過(guò)掩膜方式寫入到DSP內(nèi)部ROM中,但這樣受容量和價(jià)格的限制,且不便于擴(kuò)展和升級(jí)。
DSP的引導(dǎo)過(guò)程如下:
1)DSP復(fù)位后,通過(guò)DMA方式將外部CE1空間的數(shù)據(jù)讀入到內(nèi)部程序空間地址0處,讀入數(shù)據(jù)的多少因芯片而異(TMS320C6712只拷貝1KB)。
2)DSP推出復(fù)位狀態(tài),開(kāi)始執(zhí)行內(nèi)部程序空間地址0處的程序,這段程序先將外部主程序數(shù)據(jù)讀入到DSP內(nèi)部程序空間相應(yīng)地址,然后跳轉(zhuǎn)到主程序運(yùn)行。
步是由芯片自動(dòng)完成,關(guān)鍵是第二步:用戶需要編寫相應(yīng)的匯編程序,實(shí)現(xiàn)二次引導(dǎo),即用戶主程序的裝載。
引導(dǎo)失敗的原因分析
(1)鏈接命令文件(.cmd)文件
鏈接命令文件定義了鏈接的參數(shù),描述系統(tǒng)生成的可執(zhí)行代碼各段的段名及映射到目標(biāo)板的物理空間。當(dāng)這些段的起始地址或段的長(zhǎng)度編寫錯(cuò)誤時(shí),引導(dǎo)程序就可能發(fā)生錯(cuò)誤。
(2)可執(zhí)行代碼的二進(jìn)制文件格式
用戶的程序在CCS開(kāi)發(fā)環(huán)境下編譯生成COFF文件格式,仿真過(guò)程中可以直接加載COFF文件運(yùn)行。但當(dāng)調(diào)試仿真通過(guò)后,目標(biāo)板要脫離CCS環(huán)境獨(dú)立運(yùn)行時(shí),可執(zhí)行代碼就需要轉(zhuǎn)換為二進(jìn)制文件格式,保存在目標(biāo)板的外部存儲(chǔ)器上。轉(zhuǎn)換時(shí)需要使用正確的配置文件。
(3)目標(biāo)板的硬件電路(引導(dǎo)模式,系統(tǒng)時(shí)鐘)
目標(biāo)板的硬件電路也會(huì)影響引導(dǎo)程序的正常運(yùn)行,如設(shè)置的引導(dǎo)模式與實(shí)際的外部存儲(chǔ)器不符,系統(tǒng)時(shí)鐘電路不工作,復(fù)位信號(hào)恒有效等。
下面結(jié)合TMS320C6212的開(kāi)發(fā)實(shí)例,具體介紹外部存儲(chǔ)器引導(dǎo)的實(shí)現(xiàn)。
ROM引導(dǎo)實(shí)例
TMS320C6212是TMS320C6201的簡(jiǎn)化版芯片,內(nèi)部資源相對(duì)較少,工作頻率相對(duì)較低,但其價(jià)格低廉,具有很高的性能價(jià)格比。TMS320C6212的工作頻率可達(dá)150MHz,處理能力為900MIPS,很適合中小型系統(tǒng)開(kāi)發(fā)。
由于FLASH是一種高密度、非易失的電擦寫存儲(chǔ)器,系統(tǒng)采用FLASH作為外部存儲(chǔ)器。除了專用的硬件編程器可以把二進(jìn)制代碼寫入FLASH中,還可以利用DSP的調(diào)試系統(tǒng),通過(guò)軟件編程寫入。DSP與FLASH的接口連接如圖1所示。
系統(tǒng)工程在CCS開(kāi)發(fā)環(huán)境下使用C語(yǔ)言編程,這樣可以縮短開(kāi)發(fā)周期,提高工作效率,并具有移植性好的優(yōu)點(diǎn)。引導(dǎo)工程的文件流程如圖2所示。
(1)中斷向量表vectors.asm
中斷向量表缺省保存在DSP芯片內(nèi)部RAM的0地址開(kāi)始的0x200字節(jié)空間,上電或復(fù)位后,芯片自動(dòng)運(yùn)行復(fù)位中斷。因此,復(fù)位中斷向量設(shè)置為引導(dǎo)程序(_boot)的入口地址,引導(dǎo)程序的主體在boot.asm中定義。部分程序如下:
.ref_boot;調(diào)用引導(dǎo)程序
.sect“.vectors”;段聲明
RESET_RST:;復(fù)位中斷向量
mvkl.S2_boot,B0;裝載引導(dǎo)程序地址
mvkh.S2_boot,B0
B.S2B0;跳轉(zhuǎn)到引導(dǎo)程序執(zhí)行
NOP5
(2)自引導(dǎo)的匯編程序boot.asm
自引導(dǎo)匯編程序主要是配置基本的寄存器,并將保存在外部FLASH中的二進(jìn)制程序拷貝到DSP內(nèi)部的RAM中再執(zhí)行。由于TMS320C6712自動(dòng)拷貝1KB,因此起始地址是從0x400開(kāi)始,匯編程序如下:
.sect“.boot_load”;定義數(shù)據(jù)段
.ref_c_int00;聲明外部函數(shù)
.global_boot;定義全局函數(shù)
_boot:
;先設(shè)置控制寄存器,如EMIF_GCR等,(略)
;拷貝FLASH中的程序到DSP內(nèi)部RAM
mvkl0x00000400,A4;A4為RAM地址指針
||mvkl0x90000400,B4;B4為FLASH地址指針
mvkh0x00000400,A4
||mvkh0x90000400,B4
zeroA1;A1用作計(jì)數(shù)器
_boot_loop:;DSP開(kāi)始讀取FLASH中程序
ldb*B4++,B5
mvkl0x0000F200,B6;B6為需要拷貝的字節(jié)數(shù)
add1,A1,A1
||mvkh0x0000F200,B6
cmpltA1,B6,A0
nop
stbB5,*A4++
[B0]b_boot_loop
nop5
mvkl.S2_c_int00,B0;循環(huán)結(jié)束后,跳轉(zhuǎn)到主函數(shù)main執(zhí)行
mvkh.S2_c_int00,B0
B.S2B0
Nop5
(3)主程序main.c
主程序是DSP要實(shí)現(xiàn)具體功能的主體,其定義的主函數(shù)main()經(jīng)編譯后在函數(shù)_c_int00中調(diào)用,因此在上面的引導(dǎo)程序結(jié)束時(shí),將跳轉(zhuǎn)到函數(shù)_c_int00,即主函數(shù)main執(zhí)行。
(4)鏈接命令程序link.cmd
鏈接命令程序用于定義系統(tǒng)各存儲(chǔ)器的地址及大小,并分配編譯后各段到相應(yīng)的存儲(chǔ)空間,link.cmd內(nèi)容如下:
-c
-lrts6201.lib
MEMORY
{
vecs:o=00000000h=00000200h
BOOT_RAM:o=00000200hl=00000200h
IRAM:o=00000400hl=0000c400h
CE0:o=80000000hl=01000000h
CE1:o=90000000hl=00100000h
}
SECTI*
{
.vectors>vecsfill=0
.boot_load>BOOT_RAMfill=0
.text>IRAMfill=0
.stack>IRAMfill=0
.bss>IRAMfill=0
.cinit>IRAMfill=0
.far>IRAMfill=0
.sysmem>IRAMfill=0
.cio>IRAMfill=0
}
(5)轉(zhuǎn)換命令程序convert.cmd
上面的工程文件經(jīng)CCS系統(tǒng)編譯、匯編后生成可執(zhí)行COFF文件(.out),它需要轉(zhuǎn)換為二進(jìn)制文件,再寫入到FLASH中。CCS開(kāi)發(fā)系統(tǒng)帶有轉(zhuǎn)換程序:
hex6x.exe將可執(zhí)行COFF文件(.out)轉(zhuǎn)換為十六進(jìn)制文件(.hex)
hex2bin.exe將十六進(jìn)制文件(.hex)轉(zhuǎn)換為二進(jìn)制文件(.bin)
命令行的格式為:
hex6x.execonvert.cmd
hex2bin.exemboot
其中convert.cmd內(nèi)容如下:
mboot.out;輸入文件名.out格式
-x
-mapmboot.map;生成映射文件
-image
-memwidth8;內(nèi)存的位寬
-omboot.hex;輸出文件名.hex格式
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 刀剪制作工安全行為測(cè)試考核試卷含答案
- 地層測(cè)試工安全綜合能力考核試卷含答案
- 煉焦工安全實(shí)踐競(jìng)賽考核試卷含答案
- 家禽繁殖員崗前理論綜合考核試卷含答案
- 綠化造園工崗前安全宣教考核試卷含答案
- 經(jīng)編工10S執(zhí)行考核試卷含答案
- 傳輸機(jī)務(wù)員崗前內(nèi)部考核試卷含答案
- 海創(chuàng)環(huán)保安全培訓(xùn)
- 海關(guān)aeo培訓(xùn)法律法規(guī)
- 橋梁工程知識(shí)培訓(xùn)講座
- DB45T 2313-2021 奶水牛同期發(fā)情-人工授精操作技術(shù)規(guī)程
- 購(gòu)買助動(dòng)車合同模板
- 三年級(jí)上冊(cè)語(yǔ)文 1-8單元 基礎(chǔ)知識(shí)默寫單(有答案)
- 兩個(gè)合伙人股權(quán)協(xié)議書范文模板
- GB/T 44082-2024道路車輛汽車列車多車輛間連接裝置強(qiáng)度要求
- 控?zé)熤嗅t(yī)科普知識(shí)講座
- GB/T 23986.2-2023色漆和清漆揮發(fā)性有機(jī)化合物(VOC)和/或半揮發(fā)性有機(jī)化合物(SVOC)含量的測(cè)定第2部分:氣相色譜法
- 脫碳塔CO2脫氣塔設(shè)計(jì)計(jì)算
- 產(chǎn)品報(bào)價(jià)單貨物報(bào)價(jià)表(通用版)
- 皰疹性咽峽炎臨床路徑
- 新人教版六年級(jí)數(shù)學(xué)上冊(cè)全冊(cè)堂堂清一課一練習(xí)題集
評(píng)論
0/150
提交評(píng)論