ccs33中建立-编译-调试工程及常见错误讲解_第1页
ccs33中建立-编译-调试工程及常见错误讲解_第2页
ccs33中建立-编译-调试工程及常见错误讲解_第3页
ccs33中建立-编译-调试工程及常见错误讲解_第4页
ccs33中建立-编译-调试工程及常见错误讲解_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、想飞豆豆制作 PAGE 16Part1:ccs3.3中新建一个DM6437的示例工程1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子2、用file-new选择建立一个dsp/bios文件在打开的的对话框框中选择择你使用用的板子子的型号号,如下下图:这个时候候ccss为我们们建立了了一个bbioss文件,以图表表显示,里面按按照所选选板子的的类型添添加相应应的硬件件和其他他模块。保存这这个文件件到工程程目录下下先,文文件类型型为tccf。保存这个个文件的的同时,ccss按照bbios

2、s中的配配置在当当前目录录下自动动生成了了一个ccmd文文件。此此时将ttcf文文件和这这个cmmd文件件同时添添加到工工程中,使用然后需要要修改一一个编译译选项,点击下下图所示示选项进进去:6、 打打开后在在编译选选项对话话框总会会看到一一个命令令行,其其中最后后一句是是-mvv64000,因因为用的的是64467的的板子,所以这这个选项项要修改改成 -mv664+;否则编编译会报报错:编编译选项项不正确确;但并并非所有有类型的的板子都都要改,这个只只针对型型号为664+的的板子。filee-neew-ssourrce fille建立立一个cc源文件件,保存存并加入入到工程程中。以下是示示例

3、程序序:#inccludde #inccludde #inccludde Int maiin(IInt arggc, Strringg arrgv)/maain函函数的类类型必须须这样写写 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 */前面面这三项项必不可可少MEMOORY 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文件件进行编编译的时时候,不不会报错错误或警

6、警告,但但是prrinttf就是是不能输输出任何何东西,后来解解决了,具体解解决方法法见后面面的:“ccss编译中中常见的的编译错错误及解解决方法法”的第4部部分comppilee-reebuiild alll;无错错误提示示。此时时项目就就建立并并编译好好了。下下面就要要把程序序加载到到板子上上运行了了。首先要先先连接板板子,点点击deebugg-cconnnectt如果连接接成功,会看到到下面的的效果:未连接时时:连接成功功后:连接成功功的同时时,cccs会打打开一二二Dissasssembbly窗窗口,如如下图:加载程序序吧,程程序编译译后,会会在当前前目录的的Debbug目目录下生生成

7、一个个*.oout的的文件,此例中中的文件件是“64667EXXAM.outt”;通过过fille-loaad PProggramm加载这这个文件件加载后,Dissasssembbly窗窗口中会会有所变变化,如如下图:Debuug-Runn去吧提示:1 Cccs的项项目不支支持创建建在中文文目录下下。2 项目目移动到到其他文文件夹下下面时,需要修修改*.pjtt中的Proojecct SSetttinggsProjjecttDirr=EE:WWorkkConntenntpprojjecttExaamplle664677EXAAM 到新新的目录录。很简单的的一个例例子。希希望能帮帮助入门门的朋友

8、友。Partt2:cccs中中工程的的创建-改变工工程目录录时注意意的细节节以64337为例例:1、在安安装目录录下,打打开如下下路径下下的示例例工程:viddeo_looopbaackC:CCCSttudiio_vv3.33booarddseevmddm64437_v2tesstsviddeo_looopbaackOk,如如果板子子没问题题,肯定定能编译译成功的的。2、有时时候我们们需要搬搬移自己己的工程程到别的的目录或或别的机机器上去去,此处处,将这这个工程程拷贝到到F盘中中去,再再重新打打开,编编译,你你会发现现此时提提示以下下错误: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找不到对对应的头头文件了了?并并且你在在工程中中也打不不开这几几个文件件,

10、打开开时会提提示:3、看来来ccss在找这这些个头头文件时时,没有有从工程程中获取取正确的的路径信信息,打打开项目目文件,此处是是:viideoo_looopbbackk.pjjt,会会发下以以下几行行:Coompiilerr SSetttinggs: DeebuggOptiionss=-gg -qq -ffr.Deebugg -i.inccludde -dd_DDEBUUG -mvv64000+Coompiilerr SSetttinggs: ReeleaaseOptiionss=-qq -oo3 -fr.RReleeasee -i.inccludde -mmv64400+看意思是是说,包包

11、含的头头文件的的路径是是在.inncluude目录下下面;如如果这个个项目在在原来默默认的目目录下,那么是是正确的的。因为为的确能能看到所所谓的iinclludee文件夹夹,他们们就是在在ti默默认安装装目录下下面的。但是由于于我们改改变了项项目的路路径,那那么这些些个目录录肯定是是不对的的,所以以ccss无法找找到这些些个文件件了。4、那是是不是修修改过来来就好了了。答案是肯肯定的也也是否定定的,如如果我们们找到这这个inncluude目目录,并并写到ppjt文文件中,如下所所示:Coompiilerr SSetttinggs: ReeleaaseOptiionss=-qq -oo3 -fr

12、.RReleeasee -iC:CCSStuddio_v3.3bboarrdsevmmdm664377_v22inncluude -mv664000+那么肯定定是可以以的。但但是如果果我们拷拷贝到别别的机器器上,而而别的机机器上的的开发板板驱动或或ccss的安装装路径和和我们不不一样的的话呢?难道重重新再找找一遍再再写一遍遍?可能你已已经想到到了,使使用相对对路径,那么我我们先看看看cccs都在在我们环环境里面面注册了了那些环环境变量量:5.1、打开ccmd,切换到到c盘。然后输输入以下下命令:seta.ttxtSet命命令是查查看系统统中注册册的环境境变量的的。操操作符是是用来重重定向用用的

13、,可可以将查查询到的的结构重重定向到到一个ttxt文文件中。所以上上面的命命令是那那么写的的。5.2打打开a.txtt.会看看到一堆堆的环境境变量。其中有有这么几几个是cccs相相关的: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第第四个就就是我们们想要的的目录了了。那么么现在修修改pjjt文件件中的那那两行内内容为: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但是系统统中没有有XDAAIS_INSSTALLL_DDIR这这个环境境变量,于是找找到xddaiss的安装装目录:C:ddvsddk_11_011_000_155xddaiss_5_21然后添加加系统环环境变量量:变量名:XDAAIS_INSSTALLL_DDIR变量值:C:dvssdk_1_001_000_115xxdaiis_55_211注销或重重启或者者killl掉eexplloreer后在在运行即即可2 cccs提提示:ccoulld nnot opeen ssour

17、rce fille ti/sdoo/fcc/accpy33/accpy33.h。和问问题2相相似,在在cmdd文件中中找到另另一条包包含目录录命令:-i%FC_INSSTALLL_DDIR%/paackaagess同样在系系统环境境变量里里面没有有这个东东西。因因为accpy33是属于于fraamewworkk coompoonennt 的的东西,所以找找到fcc的安装装目录C:ddvsddk_11_011_000_155frrameeworrk_ccompponeentss_1_20_03添加系统统环境变变量:变量名: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; 在当前前文件前前面这样样定义的的按上面的的定义,这个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两个东东西等同同起来了了,前面面的下划划线应该该是格式式需要。有熟悉悉这个的的朋友给给解释下下。使用dssp/bbioss时,pprinntf函函数默认认不起作作用。这是因为为bioos中没没有动态态分配hheapp的原因因,默认认情况下下memm对heeap的的分配如如下图所所示:1)很明明显看到到这里选选择的是是:no dynnamiic mmemoory heaaps但是取消消选中后后,会发发现下拉拉框中并并没有任任何选项项让选择择把heeap放放在哪里里。如下下图所示示:并且会之之前弹出出一个对对话框:大概意思思是让你

21、你去重新新配置一一块独立立的内存存块。另外还有有一个地地方需要要注意,就是dddr22的设置置。打开开ddrr属性,会发现现:创建heeap选选项居然然是灰色色的那我去去哪里创创建heeap呢呢?下面是正正确的步步骤:3.1)首先打打开MEEM的属属性对话话框,将将no dynnamiic mmemoory heaaps 复选框框取消,并按 应用按按钮后,点击确确定按钮钮。如下下图所示示:3.2)这时再再去打开开ddrr2的属属性对话话框:你会发现现,这个个时候“creeatee a heaap iin tthiss meemorry”项可以以用了,点选此此复选框框。然后后输入适适当的大大小,

22、并并点击应应用 后后再点确确定 按按钮退出出。如下下图所示示:3.3)此时,我们已已经为hheapp分配了了一段数数据空间间了,但但是还得得回到mmem属属性对话话框中:此时就发发现,原原本只有有一项MMEM_NULLL的下下拉列表表中多了了一项DDDR22;选中中DDRR2,seggmennt ffor dspp/biios objjectts 和 seggmennt ffor malllocc()/freee()都选中中ddrr2.然后点应应用、确确定按钮钮后退出出。再去去试试程程序。PPrinntf函函数可以以用了。内存分配配:MEEM_aallooc:如如何指定定分配对对象的位位置?比

23、比如分配配到dddr中或或sraam中当时的DDm64467内内存分配配:然后定义义变量:fcpyyInpput = (intt *)MEMM_alllocc(1, ssizeeof(intt)*IINPUUTSIIZE, 8);fcpyyOuttputt = (innt *)MEEM_aallooc(00, ssizeeof(intt)*IINPUUTSIIZE, 8);调试的时时候结果果是这样样的:经查资料料得知,memm_alllocc中第一一个参数数,指定定的是内内存分配配的位置置;其值值与系统统内存hheapp的定义义相关,其具体体使用如如下: 1)如如下图所所示,在在ddrr中建立

24、立一个hheapp,并指指定heeap_ideentiifieer_llabeel)为为“_EXXTERRNALLHEAAP”,这个个名字可可以自己己随便起起。然后在程程序中,按照hheapp laabell定义一一个变量量,变量量名必须须和heeapllabeel下划划线后面面的名字字一样,并且类类型是eexteernaal的,如:exteerniintEEXTEERNAALHEEAP;编译的时时候,编编译器会会自动将将这个整整形变量量和heeap labbel联联系起来来。如果果不写“extternn”关键字字,不仅仅编译器器不能将将其和hheapp laabell联系起起来,而而且连接接

25、的时候候会提示示“EXTTERNNALHHEAPP”被双重重定义了了。因此此程序中中不能定定义和hheapp laabell 名字字相同的的变量。如果有有,就必必须是eexteern类类型的,编译器器会自动动将其指指向你创创建出来来的那段段heaap。最后meem_aallooc就可可以这样样写了:fcpyyInpput = (intt *)MEMM_alllocc(EXXTERRNALLHEAAP, sizzeoff(innt)*INPPUTSSIZEE, 88);程序编译译连接通通过,但但是在执执行的时时候提示示CIIO BBUFFFER类似的的错误:我在这里里是因为为在biios为为iraam分配配空间地地址时由由于来回回修改,结果导导致出现现的错误误。后来来重新按按照标准准修改bbioss的tccf文件件后,不不会再有有这个错错误了。Heapp的作用用,内存存分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论