DSP入門(mén)導(dǎo)讀(2)
——
DSP的仿真器同單片機(jī)的不同,仿真器中沒(méi)有DSP,提供IEEE標(biāo)準(zhǔn)的JTAG口對(duì)DSP進(jìn)行仿真調(diào)試,所以仿真器必須有仿真對(duì)象,及目標(biāo)系統(tǒng)。目標(biāo)系統(tǒng)就是你的產(chǎn)品,上面必須有DSP。仿真器提供JTAG同目標(biāo)系統(tǒng)的DSP相接,通過(guò)DSP實(shí)現(xiàn)對(duì)整個(gè)目標(biāo)系統(tǒng)的調(diào)試。
仿真工作正常對(duì)于DSP的基本要求
1)DSP電源和地連接正確。
2)DSP時(shí)鐘正確。
3)DSP的主要控制信號(hào),如RS和HOLD信號(hào)接高電平。
4)C2000的watchdog關(guān)掉。
5)不可屏蔽中斷NMI上拉高電平。
CCS或Emurst運(yùn)行時(shí)提示“Can't Initialize Target DSP”
1)仿真器連接是否正常?
2)仿真器的I/O設(shè)置是否正確?
3)XDSPP仿真器的電源是否正確?
4)目標(biāo)系統(tǒng)是否正確?
5)仿真器是否正常?
6)DSP工作的基本條件是否具備。
建議使用目標(biāo)板測(cè)試。
為什么CCS需要安裝Driver?
CCS是開(kāi)放的軟件平臺(tái),它可以支持不同的硬件接口,因此不同的硬件接口必須通過(guò)標(biāo)準(zhǔn)的Driver同CCS連接。 Link的cmd文件的作用是什么? Link的cmd文件用于DSP代碼的定位。由于DSP的編譯器的編譯結(jié)果是未定位的,DSP沒(méi)有操作系統(tǒng)來(lái)定位執(zhí)行代碼,每個(gè)客戶設(shè)計(jì)的DSP系統(tǒng)的配置也不盡相同,因此需要用戶自己定義代碼的安裝位置。以C5000為例,基本格式為:
-o sample.out
-m sample.map
-stack 100
sample.obj meminit.obj
-l rts.lib
MEMORY {
PAGE 0: VECT: origin = 0xff80, length 0x80
PAGE 0: PROG: origin = 0x2000, length 0x400
PAGE 1: DATA: origin = 0x800, length 0x400
}
SECTIONS {
.vectors : {} >PROG PAGE 0
.text : {} >PROG PAGE 0
.data : {} >PROG PAGE 0
.cinit : {} >PROG PAGE 0
.bss : {} >DATA PAGE 1
}
如何將OUT文件轉(zhuǎn)換為16進(jìn)制的文件格式?
DSP的開(kāi)發(fā)軟件集成了一個(gè)程序,可以從執(zhí)行文件OUT轉(zhuǎn)換到編程器可以接受的格式,使得編程器可以用次文件燒寫(xiě)EPROM或Flash。對(duì)于 C2000的程序?yàn)镈SPHEX;對(duì)于C3x程序?yàn)镠EX30;對(duì)于C54x程序?yàn)镠EX500;對(duì)于C55x程序?yàn)镠EX55;對(duì)于C6x程序?yàn)?nbsp;Hex6x。以C32為例,基本格式為:
sample.out
-x
-memwidth 8
-bootorg 900000h
-iostrb 0h
-strb0 03f0000h
-strb1 01f0000h
-o sample.hex
ROMS {
EPROM: org = 0x900000,len=0x02000,romwidth=8
}
SECTIONS {
.text: paddr=boot
.data: paddr=boot
}
DSP的C語(yǔ)言同主機(jī)C語(yǔ)言的主要區(qū)別?
1)DSP的C語(yǔ)言是標(biāo)準(zhǔn)的ANSI C,它不包括同外設(shè)聯(lián)系的擴(kuò)展部分,如屏幕繪圖等。但在CCS中,為了方便調(diào)試,可以將數(shù)據(jù)通過(guò)prinf命令虛擬輸出到主機(jī)的屏幕上。
2)DSP的C語(yǔ)言的編譯過(guò)程為,C編譯為ASM,再由ASM編譯為OBJ。因此C和ASM的對(duì)應(yīng)關(guān)系非常明確,非常便于人工優(yōu)化。
3)DSP的代碼需要絕對(duì)定位;主機(jī)的C的代碼有操作系統(tǒng)定位。
4)DSP的C的效率較高,非常適合于嵌入系統(tǒng)。
為什么在CCS下編譯工具工作不正常?
在CCS下有部分客戶會(huì)碰到編譯工具工作不正常,常見(jiàn)錯(cuò)誤為:
1)autoexec.bat的路徑“out of memory”。修改autoexec.bat,清除無(wú)用的PATH路徑。
2)編譯的輸出文件(OUT文件)寫(xiě)保護(hù),無(wú)法覆蓋。刪除或修改輸出文件的屬性。
3)Windows有問(wèn)題。重新安裝windows。
4)Windows下有程序?qū)CS有影響。建議用一“干凈”的計(jì)算機(jī)。
在CCS下,如何選擇有效的存儲(chǔ)器空間?
CCS下的存儲(chǔ)器空間最好設(shè)置同你的硬件,沒(méi)有的存儲(chǔ)器不要有效。這樣便于調(diào)試,CCS會(huì)發(fā)現(xiàn)你調(diào)入程序時(shí)或程序運(yùn)行時(shí),是否訪問(wèn)了無(wú)效地址。
1)在GEL文件中設(shè)置。參見(jiàn)CCS中的示例。
2)在Option菜單下,選擇Memory Map選項(xiàng),根據(jù)你的硬件設(shè)置。注意一定要將Enable Memory Mapping置為使能。
在CCS下,OUT文件加載時(shí)提示“Data verification failed...”的原因?
Link的CMD文件分配的地址同GEL或設(shè)置的有效地址空間不符。中斷向量定位處或其它代碼、數(shù)據(jù)段定位處,沒(méi)有RAM,無(wú)法加載OUT文件。解決方法:
1)調(diào)整Link的CMD文件,使得定位段處有RAM。
2)調(diào)整存儲(chǔ)器設(shè)置,使得RAM區(qū)有效。
為什么要使用BIOS?
1)BIOS是Basic I/O System的簡(jiǎn)稱(chēng),是基本的輸入、輸出管理。
2)用于管理任務(wù)的調(diào)度,程序?qū)崟r(shí)分析,中斷管理,跟蹤管理和實(shí)時(shí)數(shù)據(jù)交換。
3)BIOS是基本的實(shí)時(shí)系統(tǒng),使用BIOS可以方便地實(shí)現(xiàn)多任務(wù)、多進(jìn)程的時(shí)間管理。
4)BIOS是eXpress DSP的標(biāo)準(zhǔn)平臺(tái),要使用eXpress DSP技術(shù),必須使用BIOS。 linux操作系統(tǒng)文章專(zhuān)題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論