版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、想飛豆豆制作 PAGE 16Part1:ccs3.3中新建一個(gè)DM6437的示例工程1、連接好板子,將板子上仿真器的usb口插到電腦上,啟動(dòng)ccs后,ccs會(huì)去獲取板子信息并在打開(kāi)的文件目錄中自動(dòng)生成一個(gè)文件,如圖所示:筆者使用的是6437的板子2、用file-new選擇建立一個(gè)dsp/bios文件在打開(kāi)的的對(duì)話(huà)框框中選擇擇你使用用的板子子的型號(hào)號(hào),如下下圖:這個(gè)時(shí)候候ccss為我們們建立了了一個(gè)bbioss文件,以圖表表顯示,里面按按照所選選板子的的類(lèi)型添添加相應(yīng)應(yīng)的硬件件和其他他模塊。保存這這個(gè)文件件到工程程目錄下下先,文文件類(lèi)型型為tccf。保存這個(gè)個(gè)文件的的同時(shí),ccss按照bbios
2、s中的配配置在當(dāng)當(dāng)前目錄錄下自動(dòng)動(dòng)生成了了一個(gè)ccmd文文件。此此時(shí)將ttcf文文件和這這個(gè)cmmd文件件同時(shí)添添加到工工程中,使用然后需要要修改一一個(gè)編譯譯選項(xiàng),點(diǎn)擊下下圖所示示選項(xiàng)進(jìn)進(jìn)去:6、 打打開(kāi)后在在編譯選選項(xiàng)對(duì)話(huà)話(huà)框總會(huì)會(huì)看到一一個(gè)命令令行,其其中最后后一句是是-mvv64000,因因?yàn)橛玫牡氖?4467的的板子,所以這這個(gè)選項(xiàng)項(xiàng)要修改改成 -mv664+;否則編編譯會(huì)報(bào)報(bào)錯(cuò):編編譯選項(xiàng)項(xiàng)不正確確;但并并非所有有類(lèi)型的的板子都都要改,這個(gè)只只針對(duì)型型號(hào)為664+的的板子。filee-neew-ssourrce fille建立立一個(gè)cc源文件件,保存存并加入入到工程程中。以下是示示例
3、程序序:#inccludde #inccludde #inccludde Int maiin(IInt arggc, Strringg arrgv)/maain函函數(shù)的類(lèi)類(lèi)型必須須這樣寫(xiě)寫(xiě) 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文件件這樣寫(xiě)寫(xiě):-c-staack 0 x00000010000 /* Sttackk Siize */-heaap 0 x00000010000 /* Heeap Sizze */前面面這三項(xiàng)項(xiàng)必不可可少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自自動(dòng)生成成的cmmd文件件進(jìn)行編編譯的時(shí)時(shí)候,不不會(huì)報(bào)錯(cuò)錯(cuò)誤或警
6、警告,但但是prrinttf就是是不能輸輸出任何何東西,后來(lái)解解決了,具體解解決方法法見(jiàn)后面面的:“ccss編譯中中常見(jiàn)的的編譯錯(cuò)錯(cuò)誤及解解決方法法”的第4部部分comppilee-reebuiild alll;無(wú)錯(cuò)錯(cuò)誤提示示。此時(shí)時(shí)項(xiàng)目就就建立并并編譯好好了。下下面就要要把程序序加載到到板子上上運(yùn)行了了。首先要先先連接板板子,點(diǎn)點(diǎn)擊deebugg-cconnnectt如果連接接成功,會(huì)看到到下面的的效果:未連接時(shí)時(shí):連接成功功后:連接成功功的同時(shí)時(shí),cccs會(huì)打打開(kāi)一二二Dissasssembbly窗窗口,如如下圖:加載程序序吧,程程序編譯譯后,會(huì)會(huì)在當(dāng)前前目錄的的Debbug目目錄下生生成
7、一個(gè)個(gè)*.oout的的文件,此例中中的文件件是“64667EXXAM.outt”;通過(guò)過(guò)fille-loaad PProggramm加載這這個(gè)文件件加載后,Dissasssembbly窗窗口中會(huì)會(huì)有所變變化,如如下圖:Debuug-Runn去吧提示:1 Cccs的項(xiàng)項(xiàng)目不支支持創(chuàng)建建在中文文目錄下下。2 項(xiàng)目目移動(dòng)到到其他文文件夾下下面時(shí),需要修修改*.pjtt中的Proojecct SSetttinggsProjjecttDirr=EE:WWorkkConntenntpprojjecttExaamplle664677EXAAM 到新新的目錄錄。很簡(jiǎn)單的的一個(gè)例例子。希希望能幫幫助入門(mén)門(mén)的朋友
8、友。Partt2:cccs中中工程的的創(chuàng)建-改變工工程目錄錄時(shí)注意意的細(xì)節(jié)節(jié)以64337為例例:1、在安安裝目錄錄下,打打開(kāi)如下下路徑下下的示例例工程:viddeo_looopbaackC:CCCSttudiio_vv3.33booarddseevmddm64437_v2tesstsviddeo_looopbaackOk,如如果板子子沒(méi)問(wèn)題題,肯定定能編譯譯成功的的。2、有時(shí)時(shí)候我們們需要搬搬移自己己的工程程到別的的目錄或或別的機(jī)機(jī)器上去去,此處處,將這這個(gè)工程程拷貝到到F盤(pán)中中去,再再重新打打開(kāi),編編譯,你你會(huì)發(fā)現(xiàn)現(xiàn)此時(shí)提提示以下下錯(cuò)誤: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找不到對(duì)對(duì)應(yīng)的頭頭文件了了?并并且你在在工程中中也打不不開(kāi)這幾幾個(gè)文件件,
10、打開(kāi)開(kāi)時(shí)會(huì)提提示:3、看來(lái)來(lái)ccss在找這這些個(gè)頭頭文件時(shí)時(shí),沒(méi)有有從工程程中獲取取正確的的路徑信信息,打打開(kāi)項(xiàng)目目文件,此處是是:viideoo_looopbbackk.pjjt,會(huì)會(huì)發(fā)下以以下幾行行:Coompiilerr SSetttinggs: DeebuggOptiionss=-gg -qq -ffr.Deebugg -i.inccludde -dd_DDEBUUG -mvv64000+Coompiilerr SSetttinggs: ReeleaaseOptiionss=-qq -oo3 -fr.RReleeasee -i.inccludde -mmv64400+看意思是是說(shuō),包包
11、含的頭頭文件的的路徑是是在.inncluude目錄下下面;如如果這個(gè)個(gè)項(xiàng)目在在原來(lái)默默認(rèn)的目目錄下,那么是是正確的的。因?yàn)闉榈拇_能能看到所所謂的iinclludee文件夾夾,他們們就是在在ti默默認(rèn)安裝裝目錄下下面的。但是由于于我們改改變了項(xiàng)項(xiàng)目的路路徑,那那么這些些個(gè)目錄錄肯定是是不對(duì)的的,所以以ccss無(wú)法找找到這些些個(gè)文件件了。4、那是是不是修修改過(guò)來(lái)來(lái)就好了了。答案是肯肯定的也也是否定定的,如如果我們們找到這這個(gè)inncluude目目錄,并并寫(xiě)到ppjt文文件中,如下所所示:Coompiilerr SSetttinggs: ReeleaaseOptiionss=-qq -oo3 -fr
12、.RReleeasee -iC:CCSStuddio_v3.3bboarrdsevmmdm664377_v22inncluude -mv664000+那么肯定定是可以以的。但但是如果果我們拷拷貝到別別的機(jī)器器上,而而別的機(jī)機(jī)器上的的開(kāi)發(fā)板板驅(qū)動(dòng)或或ccss的安裝裝路徑和和我們不不一樣的的話(huà)呢?難道重重新再找找一遍再再寫(xiě)一遍遍?可能你已已經(jīng)想到到了,使使用相對(duì)對(duì)路徑,那么我我們先看看看cccs都在在我們環(huán)環(huán)境里面面注冊(cè)了了那些環(huán)環(huán)境變量量:5.1、打開(kāi)ccmd,切換到到c盤(pán)。然后輸輸入以下下命令:seta.ttxtSet命命令是查查看系統(tǒng)統(tǒng)中注冊(cè)冊(cè)的環(huán)境境變量的的。操操作符是是用來(lái)重重定向用用的
13、,可可以將查查詢(xún)到的的結(jié)構(gòu)重重定向到到一個(gè)ttxt文文件中。所以上上面的命命令是那那么寫(xiě)的的。5.2打打開(kāi)a.txtt.會(huì)看看到一堆堆的環(huán)境境變量。其中有有這么幾幾個(gè)是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第第四個(gè)就就是我們們想要的的目錄了了。那么么現(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編編譯,連連接成功功。并且且再也不不怕移來(lái)來(lái)移去了了。5.5注注意:有有時(shí)候可可能還有有一個(gè)地地方需要要該:Proojecct SSetttinggsProjjecttDirr=EE:WWorkkConntenntpprojjecttExaampllevvideeo_llooppbacck指向項(xiàng)目目文件的的絕對(duì)路路徑。而而項(xiàng)目文文件中的的相對(duì)路路徑都是是基于該該路徑。Partt3:cccs編編譯中常常見(jiàn)的編編譯錯(cuò)誤誤及解決決方法1 ffasttcoppy 提提示找不不到iaalg.h等頭頭文件,打開(kāi)
16、ccmd文文件后看看到目錄錄包含命命令有: -i%XDAAIS_INSSTALLL_DDIR%/paackaagess但是系統(tǒng)統(tǒng)中沒(méi)有有XDAAIS_INSSTALLL_DDIR這這個(gè)環(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注銷(xiāo)或重重啟或者者killl掉eexplloreer后在在運(yùn)行即即可2 cccs提提示:ccoulld nnot opeen ssour
17、rce fille ti/sdoo/fcc/accpy33/accpy33.h。和問(wèn)問(wèn)題2相相似,在在cmdd文件中中找到另另一條包包含目錄錄命令:-i%FC_INSSTALLL_DDIR%/paackaagess同樣在系系統(tǒng)環(huán)境境變量里里面沒(méi)有有這個(gè)東東西。因因?yàn)閍ccpy33是屬于于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這個(gè)個(gè)變量:IFCPPY_FFxnss * fxxns = (IIFCPPY_FFxnss *)&FCCPY_IFCCPY;但是只在在整個(gè)工工程的.c 或或.h文文件中找找到如下下FCPPY_IIFCPPY的定定義:exteernffar IFCCPY_Fxnns FFCPYY_IFFCPYY; 在當(dāng)前前文件前前面這樣樣定義的的按上面的的定義,這個(gè)FFCPYY_IFFCPYY肯定在在其它文文件中有有定義的的,但是是并沒(méi)有有找到。最后在命命令連接接文件
19、.cmdd文件中中找到如如下一行行語(yǔ)句:_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文件件中的這這個(gè)
20、命令令將FCCPY_IFCCPYFFCPYY_TII_IFFCPYY兩個(gè)東東西等同同起來(lái)了了,前面面的下劃劃線(xiàn)應(yīng)該該是格式式需要。有熟悉悉這個(gè)的的朋友給給解釋下下。使用dssp/bbioss時(shí),pprinntf函函數(shù)默認(rèn)認(rèn)不起作作用。這是因?yàn)闉閎ioos中沒(méi)沒(méi)有動(dòng)態(tài)態(tài)分配hheapp的原因因,默認(rèn)認(rèn)情況下下memm對(duì)heeap的的分配如如下圖所所示:1)很明明顯看到到這里選選擇的是是:no dynnamiic mmemoory heaaps但是取消消選中后后,會(huì)發(fā)發(fā)現(xiàn)下拉拉框中并并沒(méi)有任任何選項(xiàng)項(xiàng)讓選擇擇把heeap放放在哪里里。如下下圖所示示:并且會(huì)之之前彈出出一個(gè)對(duì)對(duì)話(huà)框:大概意思思是讓你
21、你去重新新配置一一塊獨(dú)立立的內(nèi)存存塊。另外還有有一個(gè)地地方需要要注意,就是dddr22的設(shè)置置。打開(kāi)開(kāi)ddrr屬性,會(huì)發(fā)現(xiàn)現(xiàn):創(chuàng)建heeap選選項(xiàng)居然然是灰色色的那我去去哪里創(chuàng)創(chuàng)建heeap呢呢?下面是正正確的步步驟:3.1)首先打打開(kāi)MEEM的屬屬性對(duì)話(huà)話(huà)框,將將no dynnamiic mmemoory heaaps 復(fù)選框框取消,并按 應(yīng)用按按鈕后,點(diǎn)擊確確定按鈕鈕。如下下圖所示示:3.2)這時(shí)再再去打開(kāi)開(kāi)ddrr2的屬屬性對(duì)話(huà)話(huà)框:你會(huì)發(fā)現(xiàn)現(xiàn),這個(gè)個(gè)時(shí)候“creeatee a heaap iin tthiss meemorry”項(xiàng)可以以用了,點(diǎn)選此此復(fù)選框框。然后后輸入適適當(dāng)?shù)拇蟠笮。?/p>
22、并并點(diǎn)擊應(yīng)應(yīng)用 后后再點(diǎn)確確定 按按鈕退出出。如下下圖所示示:3.3)此時(shí),我們已已經(jīng)為hheapp分配了了一段數(shù)數(shù)據(jù)空間間了,但但是還得得回到mmem屬屬性對(duì)話(huà)話(huà)框中:此時(shí)就發(fā)發(fā)現(xiàn),原原本只有有一項(xiàng)MMEM_NULLL的下下拉列表表中多了了一項(xiàng)DDDR22;選中中DDRR2,seggmennt ffor dspp/biios objjectts 和 seggmennt ffor malllocc()/freee()都選中中ddrr2.然后點(diǎn)應(yīng)應(yīng)用、確確定按鈕鈕后退出出。再去去試試程程序。PPrinntf函函數(shù)可以以用了。內(nèi)存分配配:MEEM_aallooc:如如何指定定分配對(duì)對(duì)象的位位置?比
23、比如分配配到dddr中或或sraam中當(dāng)時(shí)的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)試的時(shí)時(shí)候結(jié)果果是這樣樣的:經(jīng)查資料料得知,memm_alllocc中第一一個(gè)參數(shù)數(shù),指定定的是內(nèi)內(nèi)存分配配的位置置;其值值與系統(tǒng)統(tǒng)內(nèi)存hheapp的定義義相關(guān),其具體體使用如如下: 1)如如下圖所所示,在在ddrr中建立
24、立一個(gè)hheapp,并指指定heeap_ideentiifieer_llabeel)為為“_EXXTERRNALLHEAAP”,這個(gè)個(gè)名字可可以自己己隨便起起。然后在程程序中,按照hheapp laabell定義一一個(gè)變量量,變量量名必須須和heeapllabeel下劃劃線(xiàn)后面面的名字字一樣,并且類(lèi)類(lèi)型是eexteernaal的,如:exteerniintEEXTEERNAALHEEAP;編譯的時(shí)時(shí)候,編編譯器會(huì)會(huì)自動(dòng)將將這個(gè)整整形變量量和heeap labbel聯(lián)聯(lián)系起來(lái)來(lái)。如果果不寫(xiě)“extternn”關(guān)鍵字字,不僅僅編譯器器不能將將其和hheapp laabell聯(lián)系起起來(lái),而而且連接接
25、的時(shí)候候會(huì)提示示“EXTTERNNALHHEAPP”被雙重重定義了了。因此此程序中中不能定定義和hheapp laabell 名字字相同的的變量。如果有有,就必必須是eexteern類(lèi)類(lèi)型的,編譯器器會(huì)自動(dòng)動(dòng)將其指指向你創(chuàng)創(chuàng)建出來(lái)來(lái)的那段段heaap。最后meem_aallooc就可可以這樣樣寫(xiě)了:fcpyyInpput = (intt *)MEMM_alllocc(EXXTERRNALLHEAAP, sizzeoff(innt)*INPPUTSSIZEE, 88);程序編譯譯連接通通過(guò),但但是在執(zhí)執(zhí)行的時(shí)時(shí)候提示示CIIO BBUFFFER類(lèi)似的的錯(cuò)誤:我在這里里是因?yàn)闉樵赽iios為為iraam分配配空間地地址時(shí)由由于來(lái)回回修改,結(jié)果導(dǎo)導(dǎo)致出現(xiàn)現(xiàn)的錯(cuò)誤誤。后來(lái)來(lái)重新按按照標(biāo)準(zhǔn)準(zhǔn)修改bbioss的tccf文件件后,不不會(huì)再有有這個(gè)錯(cuò)錯(cuò)誤了。Heapp的作用用,內(nèi)存存分
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州大學(xué)《ERP軟件原理與應(yīng)用》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽(yáng)學(xué)院《有機(jī)化學(xué)I1》2023-2024學(xué)年第一學(xué)期期末試卷
- 貴陽(yáng)信息科技學(xué)院《高級(jí)英語(yǔ)視聽(tīng)說(shuō)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州珠江職業(yè)技術(shù)學(xué)院《英語(yǔ)聽(tīng)說(shuō)二》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣州幼兒師范高等專(zhuān)科學(xué)校《地理課件制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025重慶市安全員C證考試(專(zhuān)職安全員)題庫(kù)附答案
- 廣州鐵路職業(yè)技術(shù)學(xué)院《數(shù)量經(jīng)濟(jì)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025湖南建筑安全員《A證》考試題庫(kù)
- 2025安徽省建筑安全員-B證考試題庫(kù)附答案
- 2025湖南省安全員A證考試題庫(kù)及答案
- 部編人教版語(yǔ)文九年級(jí)上冊(cè)文言文課下注釋
- 2023-2024學(xué)年滬科版九年級(jí)上學(xué)期物理期末模擬試卷(含答案)
- 測(cè)繪生產(chǎn)成本費(fèi)用定額2022
- 卷?yè)P(yáng)機(jī)專(zhuān)項(xiàng)施工方案
- 對(duì)外投資合作國(guó)別(地區(qū))指南 -泰國(guó)
- 2023年-2024年崗位安全教育培訓(xùn)試題及答案通用
- 口腔修復(fù)學(xué)(全套課件290p)課件
- 小學(xué)生心理問(wèn)題的表現(xiàn)及應(yīng)對(duì)措施【全國(guó)一等獎(jiǎng)】
- 小學(xué)生科普人工智能
- 初中學(xué)段勞動(dòng)任務(wù)清單(七到九年級(jí))
- 退耕還林監(jiān)理規(guī)劃
評(píng)論
0/150
提交評(píng)論