ccs33中建立-編譯-調(diào)試工程及常見錯誤講解_第1頁
ccs33中建立-編譯-調(diào)試工程及常見錯誤講解_第2頁
ccs33中建立-編譯-調(diào)試工程及常見錯誤講解_第3頁
ccs33中建立-編譯-調(diào)試工程及常見錯誤講解_第4頁
ccs33中建立-編譯-調(diào)試工程及常見錯誤講解_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、想飛豆豆制作 PAGE 16Part1:ccs3.3中新建一個DM6437的示例工程1、連接好板子,將板子上仿真器的usb口插到電腦上,啟動ccs后,ccs會去獲取板子信息并在打開的文件目錄中自動生成一個文件,如圖所示:筆者使用的是6437的板子2、用file-new選擇建立一個dsp/bios文件在打開的的對話框框中選擇擇你使用用的板子子的型號號,如下下圖:這個時候候ccss為我們們建立了了一個bbioss文件,以圖表表顯示,里面按按照所選選板子的的類型添添加相應(yīng)應(yīng)的硬件件和其他他模塊。保存這這個文件件到工程程目錄下下先,文文件類型型為tccf。保存這個個文件的的同時,ccss按照bbios

2、s中的配配置在當(dāng)當(dāng)前目錄錄下自動動生成了了一個ccmd文文件。此此時將ttcf文文件和這這個cmmd文件件同時添添加到工工程中,使用然后需要要修改一一個編譯譯選項,點(diǎn)擊下下圖所示示選項進(jìn)進(jìn)去:6、 打打開后在在編譯選選項對話話框總會會看到一一個命令令行,其其中最后后一句是是-mvv64000,因因為用的的是64467的的板子,所以這這個選項項要修改改成 -mv664+;否則編編譯會報報錯:編編譯選項項不正確確;但并并非所有有類型的的板子都都要改,這個只只針對型型號為664+的的板子。filee-neew-ssourrce fille建立立一個cc源文件件,保存存并加入入到工程程中。以下是示示例

3、程序序:#inccludde #inccludde #inccludde Int maiin(IInt arggc, Strringg arrgv)/maain函函數(shù)的類類型必須須這樣寫寫 unssignned intt i; unssignned intt suum=00; ffor(i = 0; i wwarnningg: eentrry ppoinnt ssymbbol _c_intt00 unddefiineddundeefinned ffirsst rrefeerenncedd symmboll in fille _priintff EE:WorrkCoonteentprrojeec

4、tEExammpleeTTesttDDebuugtesst.oobj errrorr: ssymbbol reffereenciing errrorss - ./Debbug/Tesst.oout noot bbuillt2)如果果想要pprinntf正正確輸出出信息,cmdd文件中中必須指指定heeap的的大小,即cmmd文件件這樣寫寫:-c-staack 0 x00000010000 /* Sttackk Siize */-heaap 0 x00000010000 /* Heeap Sizze */前面面這三項項必不可可少M(fèi)EMOORY L2RRAM: o = 0 xx1088000000

5、 l = 00 x00002000000 DDRR2: o = 0 xx8000000000 l = 00 x10000000000SECTTIONNS .bsss L22RAMM .ciinitt L22RAMM .ciio L22RAMM .coonstt L22RAMM .daata L22RAMM .faar L22RAMM .sttackk L22RAMM .swwitcch L22RAMM .syysmeem L22RAMM .teext L22RAMM .dddr2 DDDR2另外,我我在使用用dspp/biios自自動生成成的cmmd文件件進(jìn)行編編譯的時時候,不不會報錯錯誤或警

6、警告,但但是prrinttf就是是不能輸輸出任何何東西,后來解解決了,具體解解決方法法見后面面的:“ccss編譯中中常見的的編譯錯錯誤及解解決方法法”的第4部部分comppilee-reebuiild alll;無錯錯誤提示示。此時時項目就就建立并并編譯好好了。下下面就要要把程序序加載到到板子上上運(yùn)行了了。首先要先先連接板板子,點(diǎn)點(diǎn)擊deebugg-cconnnectt如果連接接成功,會看到到下面的的效果:未連接時時:連接成功功后:連接成功功的同時時,cccs會打打開一二二Dissasssembbly窗窗口,如如下圖:加載程序序吧,程程序編譯譯后,會會在當(dāng)前前目錄的的Debbug目目錄下生生成

7、一個個*.oout的的文件,此例中中的文件件是“64667EXXAM.outt”;通過過fille-loaad PProggramm加載這這個文件件加載后,Dissasssembbly窗窗口中會會有所變變化,如如下圖:Debuug-Runn去吧提示:1 Cccs的項項目不支支持創(chuàng)建建在中文文目錄下下。2 項目目移動到到其他文文件夾下下面時,需要修修改*.pjtt中的Proojecct SSetttinggsProjjecttDirr=EE:WWorkkConntenntpprojjecttExaamplle664677EXAAM 到新新的目錄錄。很簡單的的一個例例子。希希望能幫幫助入門門的朋友

8、友。Partt2:cccs中中工程的的創(chuàng)建-改變工工程目錄錄時注意意的細(xì)節(jié)節(jié)以64337為例例:1、在安安裝目錄錄下,打打開如下下路徑下下的示例例工程:viddeo_looopbaackC:CCCSttudiio_vv3.33booarddseevmddm64437_v2tesstsviddeo_looopbaackOk,如如果板子子沒問題題,肯定定能編譯譯成功的的。2、有時時候我們們需要搬搬移自己己的工程程到別的的目錄或或別的機(jī)機(jī)器上去去,此處處,將這這個工程程拷貝到到F盤中中去,再再重新打打開,編編譯,你你會發(fā)現(xiàn)現(xiàn)此時提提示以下下錯誤:maiin.cc, linne 112: fattal

9、 errror: coouldd noot oopenn soourcce ffilee eevmddm64437.htvpp51446.hh, linne 112: fattal errror: coouldd noot oopenn soourcce ffilee eevmddm64437_i2cc.hviddeo_looopbaack_tesst.cc, linne 112: fattal errror: coouldd noot oopenn soourcce ffilee eevmddm64437_dipp.h找不到對對應(yīng)的頭頭文件了了?并并且你在在工程中中也打不不開這幾幾個文件件,

10、打開開時會提提示:3、看來來ccss在找這這些個頭頭文件時時,沒有有從工程程中獲取取正確的的路徑信信息,打打開項目目文件,此處是是:viideoo_looopbbackk.pjjt,會會發(fā)下以以下幾行行:Coompiilerr SSetttinggs: DeebuggOptiionss=-gg -qq -ffr.Deebugg -i.inccludde -dd_DDEBUUG -mvv64000+Coompiilerr SSetttinggs: ReeleaaseOptiionss=-qq -oo3 -fr.RReleeasee -i.inccludde -mmv64400+看意思是是說,包包

11、含的頭頭文件的的路徑是是在.inncluude目錄下下面;如如果這個個項目在在原來默默認(rèn)的目目錄下,那么是是正確的的。因為為的確能能看到所所謂的iinclludee文件夾夾,他們們就是在在ti默默認(rèn)安裝裝目錄下下面的。但是由于于我們改改變了項項目的路路徑,那那么這些些個目錄錄肯定是是不對的的,所以以ccss無法找找到這些些個文件件了。4、那是是不是修修改過來來就好了了。答案是肯肯定的也也是否定定的,如如果我們們找到這這個inncluude目目錄,并并寫到ppjt文文件中,如下所所示:Coompiilerr SSetttinggs: ReeleaaseOptiionss=-qq -oo3 -fr

12、.RReleeasee -iC:CCSStuddio_v3.3bboarrdsevmmdm664377_v22inncluude -mv664000+那么肯定定是可以以的。但但是如果果我們拷拷貝到別別的機(jī)器器上,而而別的機(jī)機(jī)器上的的開發(fā)板板驅(qū)動或或ccss的安裝裝路徑和和我們不不一樣的的話呢?難道重重新再找找一遍再再寫一遍遍?可能你已已經(jīng)想到到了,使使用相對對路徑,那么我我們先看看看cccs都在在我們環(huán)環(huán)境里面面注冊了了那些環(huán)環(huán)境變量量:5.1、打開ccmd,切換到到c盤。然后輸輸入以下下命令:seta.ttxtSet命命令是查查看系統(tǒng)統(tǒng)中注冊冊的環(huán)境境變量的的。操操作符是是用來重重定向用用的

13、,可可以將查查詢到的的結(jié)構(gòu)重重定向到到一個ttxt文文件中。所以上上面的命命令是那那么寫的的。5.2打打開a.txtt.會看看到一堆堆的環(huán)境境變量。其中有有這么幾幾個是cccs相相關(guān)的:BIOSSDVSSDK_INSSTALLL_DDIR=C:dvssdk_1_001_000_115BIOSSUTIILS_INSSTALLL_DDIR=C:dvssdk_1_001_000_115bbiossutiils_1_000_002BIOSS_INNSTAALL_DIRR=C:/CCCStuudioo_v33.3/bioos_55_311_077BSL_EVMMDM664377_INNSTAALLDDI

14、R=C:CCSStuddio_v3.3bboarrdsevmmdm664377_v225.3第第四個就就是我們們想要的的目錄了了。那么么現(xiàn)在修修改pjjt文件件中的那那兩行內(nèi)內(nèi)容為:Coompiilerr SSetttinggs: DeebuggOptiionss=-gg -qq -ffr.Deebugg -i%BSSL_EEVMDDM64437_INSSTALLLDIIR%/inccludde -d_DEEBUGG -mv664000+Coompiilerr SSetttinggs: ReeleaaseOptiionss=-qq -oo3 -fr.RReleeasee -i%BSSL_EEV

15、MDDM64437_INSSTALLLDIIR%/inccludde -mvv64000+5.4編編譯,連連接成功功。并且且再也不不怕移來來移去了了。5.5注注意:有有時候可可能還有有一個地地方需要要該:Proojecct SSetttinggsProjjecttDirr=EE:WWorkkConntenntpprojjecttExaampllevvideeo_llooppbacck指向項目目文件的的絕對路路徑。而而項目文文件中的的相對路路徑都是是基于該該路徑。Partt3:cccs編編譯中常常見的編編譯錯誤誤及解決決方法1 ffasttcoppy 提提示找不不到iaalg.h等頭頭文件,打開

16、ccmd文文件后看看到目錄錄包含命命令有: -i%XDAAIS_INSSTALLL_DDIR%/paackaagess但是系統(tǒng)統(tǒng)中沒有有XDAAIS_INSSTALLL_DDIR這這個環(huán)境境變量,于是找找到xddaiss的安裝裝目錄:C:ddvsddk_11_011_000_155xddaiss_5_21然后添加加系統(tǒng)環(huán)環(huán)境變量量:變量名:XDAAIS_INSSTALLL_DDIR變量值:C:dvssdk_1_001_000_115xxdaiis_55_211注銷或重重啟或者者killl掉eexplloreer后在在運(yùn)行即即可2 cccs提提示:ccoulld nnot opeen ssour

17、rce fille ti/sdoo/fcc/accpy33/accpy33.h。和問問題2相相似,在在cmdd文件中中找到另另一條包包含目錄錄命令:-i%FC_INSSTALLL_DDIR%/paackaagess同樣在系系統(tǒng)環(huán)境境變量里里面沒有有這個東東西。因因為accpy33是屬于于fraamewworkk coompoonennt 的的東西,所以找找到fcc的安裝裝目錄C:ddvsddk_11_011_000_155frrameeworrk_ccompponeentss_1_20_03添加系統(tǒng)統(tǒng)環(huán)境變變量:變量名:FC_INSSTALLL_DDIR變量值:C:dvssdk_1_001_0

18、00_115fframmewoork_commponnentts_11_200_0333、 在在程序中中查到其其用到了了FCPPY_IIFCPPY這個個變量:IFCPPY_FFxnss * fxxns = (IIFCPPY_FFxnss *)&FCCPY_IFCCPY;但是只在在整個工工程的.c 或或.h文文件中找找到如下下FCPPY_IIFCPPY的定定義:exteernffar IFCCPY_Fxnns FFCPYY_IFFCPYY; 在當(dāng)前前文件前前面這樣樣定義的的按上面的的定義,這個FFCPYY_IFFCPYY肯定在在其它文文件中有有定義的的,但是是并沒有有找到。最后在命命令連接接文件

19、.cmdd文件中中找到如如下一行行語句:_FCPPY_IIFCPPY = _FFCPYY_TII_IFFCPYY;而且且找到 FCPPY_TTI_IIFCPPY 定定義如下下:IFCPPY_FFxnss FCCPY_TI_IFCCPY =/* moddulee_veendoor_iinteerfaace */ IALLGFXXNS, /* IAALG funnctiionss */ FCCPY_TI_conntrool, /* CConttroll fuuncttionn */ FCCPY_TI_doCCopyy /* TThe fcppy ffxn */;因此推斷斷,cmmd文件件中的這這個

20、命令令將FCCPY_IFCCPYFFCPYY_TII_IFFCPYY兩個東東西等同同起來了了,前面面的下劃劃線應(yīng)該該是格式式需要。有熟悉悉這個的的朋友給給解釋下下。使用dssp/bbioss時,pprinntf函函數(shù)默認(rèn)認(rèn)不起作作用。這是因為為bioos中沒沒有動態(tài)態(tài)分配hheapp的原因因,默認(rèn)認(rèn)情況下下memm對heeap的的分配如如下圖所所示:1)很明明顯看到到這里選選擇的是是:no dynnamiic mmemoory heaaps但是取消消選中后后,會發(fā)發(fā)現(xiàn)下拉拉框中并并沒有任任何選項項讓選擇擇把heeap放放在哪里里。如下下圖所示示:并且會之之前彈出出一個對對話框:大概意思思是讓你

21、你去重新新配置一一塊獨(dú)立立的內(nèi)存存塊。另外還有有一個地地方需要要注意,就是dddr22的設(shè)置置。打開開ddrr屬性,會發(fā)現(xiàn)現(xiàn):創(chuàng)建heeap選選項居然然是灰色色的那我去去哪里創(chuàng)創(chuàng)建heeap呢呢?下面是正正確的步步驟:3.1)首先打打開MEEM的屬屬性對話話框,將將no dynnamiic mmemoory heaaps 復(fù)選框框取消,并按 應(yīng)用按按鈕后,點(diǎn)擊確確定按鈕鈕。如下下圖所示示:3.2)這時再再去打開開ddrr2的屬屬性對話話框:你會發(fā)現(xiàn)現(xiàn),這個個時候“creeatee a heaap iin tthiss meemorry”項可以以用了,點(diǎn)選此此復(fù)選框框。然后后輸入適適當(dāng)?shù)拇蟠笮。?/p>

22、并并點(diǎn)擊應(yīng)應(yīng)用 后后再點(diǎn)確確定 按按鈕退出出。如下下圖所示示:3.3)此時,我們已已經(jīng)為hheapp分配了了一段數(shù)數(shù)據(jù)空間間了,但但是還得得回到mmem屬屬性對話話框中:此時就發(fā)發(fā)現(xiàn),原原本只有有一項MMEM_NULLL的下下拉列表表中多了了一項DDDR22;選中中DDRR2,seggmennt ffor dspp/biios objjectts 和 seggmennt ffor malllocc()/freee()都選中中ddrr2.然后點(diǎn)應(yīng)應(yīng)用、確確定按鈕鈕后退出出。再去去試試程程序。PPrinntf函函數(shù)可以以用了。內(nèi)存分配配:MEEM_aallooc:如如何指定定分配對對象的位位置?比

23、比如分配配到dddr中或或sraam中當(dāng)時的DDm64467內(nèi)內(nèi)存分配配:然后定義義變量:fcpyyInpput = (intt *)MEMM_alllocc(1, ssizeeof(intt)*IINPUUTSIIZE, 8);fcpyyOuttputt = (innt *)MEEM_aallooc(00, ssizeeof(intt)*IINPUUTSIIZE, 8);調(diào)試的時時候結(jié)果果是這樣樣的:經(jīng)查資料料得知,memm_alllocc中第一一個參數(shù)數(shù),指定定的是內(nèi)內(nèi)存分配配的位置置;其值值與系統(tǒng)統(tǒng)內(nèi)存hheapp的定義義相關(guān),其具體體使用如如下: 1)如如下圖所所示,在在ddrr中建立

24、立一個hheapp,并指指定heeap_ideentiifieer_llabeel)為為“_EXXTERRNALLHEAAP”,這個個名字可可以自己己隨便起起。然后在程程序中,按照hheapp laabell定義一一個變量量,變量量名必須須和heeapllabeel下劃劃線后面面的名字字一樣,并且類類型是eexteernaal的,如:exteerniintEEXTEERNAALHEEAP;編譯的時時候,編編譯器會會自動將將這個整整形變量量和heeap labbel聯(lián)聯(lián)系起來來。如果果不寫“extternn”關(guān)鍵字字,不僅僅編譯器器不能將將其和hheapp laabell聯(lián)系起起來,而而且連接接

25、的時候候會提示示“EXTTERNNALHHEAPP”被雙重重定義了了。因此此程序中中不能定定義和hheapp laabell 名字字相同的的變量。如果有有,就必必須是eexteern類類型的,編譯器器會自動動將其指指向你創(chuàng)創(chuàng)建出來來的那段段heaap。最后meem_aallooc就可可以這樣樣寫了:fcpyyInpput = (intt *)MEMM_alllocc(EXXTERRNALLHEAAP, sizzeoff(innt)*INPPUTSSIZEE, 88);程序編譯譯連接通通過,但但是在執(zhí)執(zhí)行的時時候提示示CIIO BBUFFFER類似的的錯誤:我在這里里是因為為在biios為為iraam分配配空間地地址時由由于來回回修改,結(jié)果導(dǎo)導(dǎo)致出現(xiàn)現(xiàn)的錯誤誤。后來來重新按按照標(biāo)準(zhǔn)準(zhǔn)修改bbioss的tccf文件件后,不不會再有有這個錯錯誤了。Heapp的作用用,內(nèi)存存分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論