|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
使用CCS for c2000 的問(wèn)題 |
| 作者:zjz0319 欄目:DSP技術(shù) |
最進(jìn)開始學(xué)習(xí)DSP, 用的是28XX,在看C編譯手冊(cè)的時(shí)候有幾個(gè)地方不懂: 1.開發(fā)DSP是不是一盯要用匯編寫啟動(dòng)代碼? 2._c_int00 _c_int0 _main 的關(guān)系搞不明白,分別跳轉(zhuǎn)到這三個(gè)地方的時(shí)候CPU做了哪些不同的工作? 3.heap的作用,書上講是為了動(dòng)態(tài)申請(qǐng)內(nèi)存,假如我在c中不動(dòng)態(tài)申請(qǐng)內(nèi)存是不是可把他設(shè)置為0? 4.用C編寫中斷程序的時(shí)候,需不需要在中斷向量上加跳轉(zhuǎn)指令? 我是學(xué)單片機(jī)出身的,問(wèn)題太幼稚請(qǐng)各位大俠不要笑,總感覺CCS很難用,不象用KEIL C和ICCAVR 那樣簡(jiǎn)單,看了幾天的技術(shù)文檔,對(duì)怎樣把匯編代碼和C代碼連起來(lái)用還是很模糊,各位大俠能不能給些學(xué)習(xí)DSP的建議,或推薦一些資料!! 小弟感激不盡!! |
| 2樓: | >>參與討論 |
| 作者: donggui 于 2005/1/8 9:47:00 發(fā)布:
re. 2000系列DSP像單片機(jī)一樣,基本上沒(méi)有啟動(dòng)代碼的概念。建議你找個(gè)程序例子看看。最簡(jiǎn)單的例子就行了,例如控制GPIO的程序。另外買幾本書看看,你的問(wèn)題書上都有解釋。 |
|
| 3樓: | >>參與討論 |
| 作者: shixiudong 于 2005/1/8 14:37:00 發(fā)布:
關(guān)于CCS的切身體會(huì) 我已經(jīng)從CCS2000轉(zhuǎn)到了現(xiàn)在的專業(yè)做DSP64XX,感覺上DSP2000真的像16位單片機(jī)那么簡(jiǎn)單。如下盡力回答你的問(wèn)題,希望起到拋磚引玉的效果: (如下是摟主提問(wèn)) 使用CCS for C2000 的問(wèn)題: 1.開發(fā)DSP是不是一盯要用匯編寫啟動(dòng)代碼? 我所開發(fā)過(guò)的DSP2000項(xiàng)目,全都用了匯編啟動(dòng)代碼,建議你也采用。你是從單片機(jī)轉(zhuǎn)過(guò)來(lái)的,熟悉匯編編程,只要選擇\ti\tutorial中的一個(gè)hellow例子,看看其中的asm文件,比葫蘆畫瓢就完成。我的體會(huì):做DSP程序開發(fā),學(xué)會(huì)如何以及從哪里copy程序,很重要:) 2._c_int00 _c_int0 _main 的關(guān)系搞不明白,分別跳轉(zhuǎn)到這三個(gè)地方的時(shí)候CPU做了哪些不同的工作? 我沒(méi)有見過(guò)_c_int0這個(gè)地址標(biāo)號(hào)。_c_int00是程序啟動(dòng)入口地址,一般就是復(fù)位中斷的跳轉(zhuǎn)地址。_main是給用戶留出來(lái)的c程序開始地址,也就是告訴用戶可以從這里開始編寫自己的c程序。從_c_int00到_main之間,還有一些C自動(dòng)生成的代碼,用來(lái)實(shí)現(xiàn)程序從外部FLASH加載(DSP6000必定有這一步,不知道DSP2000中是否相同)、c全局變量初始化任務(wù)等等事務(wù)。 3.heap的作用,書上講是為了動(dòng)態(tài)申請(qǐng)內(nèi)存,假如我在c中不動(dòng)態(tài)申請(qǐng)內(nèi)存是不是可把他設(shè)置為0? 我沒(méi)有試驗(yàn)過(guò)把heap設(shè)置為0是否正常工作,而是設(shè)置的比較小,例如1K byte。因?yàn)槟銖膯纹瑱C(jī)上轉(zhuǎn)過(guò)來(lái)的,對(duì)使用標(biāo)準(zhǔn)C可能不習(xí)慣(我就是這樣),否則我建議你把heap設(shè)置為MEMORY的一半左右,不要習(xí)慣性地采用全局靜態(tài)地址存放大量數(shù)據(jù),而是用動(dòng)態(tài)內(nèi)存申請(qǐng),在程序中動(dòng)態(tài)地使用MEMORY,這樣的話對(duì)編寫大程序有利。 4.用C編寫中斷程序的時(shí)候,需不需要在中斷向量上加跳轉(zhuǎn)指令? 我在做DSP2000的時(shí)候,都是采用對(duì)中斷向量跳轉(zhuǎn)指令修改地址來(lái)實(shí)現(xiàn)中斷編程的。你只要在匯編寫啟動(dòng)代碼的相應(yīng)地方,把相應(yīng)的地址修改成你的中斷入口地址就好了(不要忘了把中斷入口地址用_GLOBAL聲明哦)。默認(rèn)情況下,C程序把不用的中斷都跳轉(zhuǎn)到一個(gè)軟件陷阱中。 總結(jié): 我在此要責(zé)罵TI公司,他們對(duì)DSP入門設(shè)置的門檻太高。我也是從MCS51單片機(jī)轉(zhuǎn)過(guò)來(lái)的,也經(jīng)歷了類似樓主的痛苦經(jīng)歷。TI提供的各種實(shí)用手冊(cè)等等資料,往往把讀者假定為已經(jīng)非常熟悉他們的DSP匯編編程,在C語(yǔ)言編程的help等資料中,也總是提及匯編的很多內(nèi)容,使得學(xué)習(xí)者無(wú)所適從。我在編寫DSP6000 boot程序的時(shí)候,總是因此遇到困難,痛恨TIing。 附一塊正在調(diào)試的TMS320DM642-600的電路板,我只用了4層板完成的,并且只在top/bottom兩層布線,中間的兩個(gè)電源層沒(méi)有信號(hào)線。 ../uploadfile/200705142313047989.jpg 我也因?yàn)闆](méi)有朋友相互討論DSP的技術(shù)問(wèn)題感到痛苦,往往遇到一個(gè)難題自己憋很久不能解決。 歡迎對(duì)DSP感興趣的朋友互相聯(lián)系。我在上海,聯(lián)系方式如下: 021-62803271 David@SmartSystem.com.cn 史修棟 dm642 |
|
| 4樓: | >>參與討論 |
| 作者: zjz0319 于 2005/1/8 20:43:00 發(fā)布:
RE: 謝謝donggui,shixiudong兩位高人,特別要謝謝史修棟大俠幫我回答了每個(gè)問(wèn)題,實(shí)在是太感謝了。。晌豢梢哉J(rèn)識(shí)一下嗎,小弟想拜師,不知能否收下? 我叫朱杰作 今年干畢業(yè),現(xiàn)在從事無(wú)人直升機(jī)的飛行控制。QQ:5772725 TEL:13667988692 |
|
| 5樓: | >>參與討論 |
| 作者: shixiudong 于 2005/1/9 0:17:00 發(fā)布:
歡迎加我MSN討論DSP技術(shù)問(wèn)題:shixiudong@hotmail.com 我沒(méi)有QQ,只有MSN。只要我開機(jī),必定MSN在線。 歡迎任何朋友加我討論技術(shù)問(wèn)題: MSN: shixiudong@hotmail.com 史修棟 |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |