ccs33中建立-编译-调试工程及常见错误讲解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

想飞豆豆制作1Part1:ccs3.3中新建一个DM6437的示例工程1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子2、用file-new选择建立一个dsp/bios文件在打开的对话框中选择你使用的板子的型号,如下图:3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。保存这个文件到工程目录下先,文件类型为tcf。4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。此时将tcf文件和这个cmd文件同时添加到工程中,使用5、然后需要修改一个编译选项,点击下图所示选项进去:想飞豆豆制作26、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成-mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。7、file-new-sourcefile建立一个c源文件,保存并加入到工程中。以下是示例程序:#includestd.h#includestring.h#includestdio.hIntmain(Intargc,Stringargv[])//main函数的类型必须这样写{unsignedinti;unsignedintsum=0;for(i=0;i=100;i++){想飞豆豆制作3sum+=i;}printf(thesum=%d.\n,sum);printf(theprogramrunover!\n);printf(theprogramrunover!\n);}注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。这里是64+平台所以是在C:\CCStudio_v3.3\C6000\cgtools\lib目录下的rts64plus.lib文件,否则ccs会提示如下警告和错误:warning:entrypointsymbol_c_int00undefinedundefinedfirstreferencedsymbolinfile-------------------------_printfE:\\WorkContent\\projectExample\\Test\\Debug\\test.objerror:symbolreferencingerrors-'./Debug/Test.out'notbuilt2)如果想要printf正确输出信息,cmd文件中必须指定heap的大小,即cmd文件这样写:-c-stack0x00001000/*StackSize*/-heap0x00001000/*HeapSize*///前面这三项必不可少MEMORY{L2RAM:o=0x10800000l=0x00020000DDR2:o=0x80000000l=0x10000000}SECTIONS{.bssL2RAM.cinitL2RAM.cioL2RAM.constL2RAM.dataL2RAM.farL2RAM.stackL2RAM.switchL2RAM.sysmemL2RAM.textL2RAM.ddr2DDR2}想飞豆豆制作4另外,我在使用dsp/bios自动生成的cmd文件进行编译的时候,不会报错误或警告,但是printf就是不能输出任何东西,后来解决了,具体解决方法见后面的:“ccs编译中常见的编译错误及解决方法”的第4部分8、compile-rebuildall;无错误提示。此时项目就建立并编译好了。下面就要把程序加载到板子上运行了。9、首先要先连接板子,点击debug-connect10、如果连接成功,会看到下面的效果:未连接时:连接成功后:想飞豆豆制作5连接成功的同时,ccs会打开一二Disassembly窗口,如下图:11、加载程序吧,程序编译后,会在当前目录的Debug目录下生成一个*.out的文件,此例中的文件是“6467EXAM.out”;通过file-loadProgram加载这个文件加载后,Disassembly窗口中会有所变化,如下图:想飞豆豆制作612、Debug-Run去吧提示:1Ccs的项目不支持创建在中文目录下。2项目移动到其他文件夹下面时,需要修改*.pjt中的[ProjectSettings]ProjectDir=E:\WorkContent\projectExample\6467EXAM到新的目录。很简单的一个例子。希望能帮助入门的朋友。想飞豆豆制作7Part2:ccs中工程的创建-改变工程目录时注意的细节以6437为例:1、在安装目录下,打开如下路径下的示例工程:video_loopbackC:\CCStudio_v3.3\boards\evmdm6437_v2\tests\video_loopbackOk,如果板子没问题,肯定能编译成功的。2、有时候我们需要搬移自己的工程到别的目录或别的机器上去,此处,将这个工程拷贝到F盘中去,再重新打开,编译,你会发现此时提示以下错误:main.c,line12:fatalerror:couldnotopensourcefileevmdm6437.htvp5146.h,line12:fatalerror:couldnotopensourcefileevmdm6437_i2c.hvideo_loopback_test.c,line12:fatalerror:couldnotopensourcefileevmdm6437_dip.h找不到对应的头文件了??并且你在工程中也打不开这几个文件,打开时会提示:3、看来ccs在找这些个头文件时,没有从工程中获取正确的路径信息,打开项目文件,此处是:video_loopback.pjt,会发下以下几行:[CompilerSettings:Debug]Options=-g-q-fr.\Debug\-i..\..\include\-d_DEBUG-mv6400+[CompilerSettings:Release]Options=-q-o3-fr.\Release\-i..\..\include\-mv6400+看意思是说,包含的头文件的路径是在..\..\include\目录下面;如果这个项目在原来默认的目录下,那么是正确的。因为的确能看到所谓的include文件夹,他们就是在ti默认安装目录下面的。但是由于我们改变了项目的路径,那么这些个目录肯定是不对的,所以ccs无法找到这些个文件了。。4、那是不是修改过来就好了。答案是肯定的也是否定的,如果我们找到这个include目录,并写到pjt文件中,如下所示:[CompilerSettings:Release]Options=-q-o3-fr.\Release\想飞豆豆制作8-iC:\CCStudio_v3.3\boards\evmdm6437_v2\include\-mv6400+那么肯定是可以的。但是如果我们拷贝到别的机器上,而别的机器上的开发板驱动或ccs的安装路径和我们不一样的话呢?难道重新再找一遍再写一遍??5、可能你已经想到了,使用相对路径,那么我们先看看ccs都在我们环境里面注册了那些环境变量:5.1、打开cmd,切换到c盘。然后输入以下命令:seta.txtSet命令是查看系统中注册的环境变量的。操作符是用来重定向用的,可以将查询到的结构重定向到一个txt文件中。所以上面的命令是那么写的。5.2打开a.txt.会看到一堆的环境变量。其中有这么几个是ccs相关的:BIOSDVSDK_INSTALL_DIR=C:\dvsdk_1_01_00_15BIOSUTILS_INSTALL_DIR=C:\dvsdk_1_01_00_15\biosutils_1_00_02BIOS_INSTALL_DIR=C:/CCStudio_v3.3/bios_5_31_07BSL_EVMDM6437_INSTALLDIR=C:\CCStudio_v3.3\boards\evmdm6437_v25.3第四个就是我们想要的目录了。那么现在修改pjt文件中的那两行内容为:[CompilerSettings:Debug]Options=-g-q-fr.\Debug\-i%BSL_EVMDM6437_INSTALLDIR%/include-d_DEBUG-mv6400+[CompilerSettings:Release]Options=-q-o3-fr.\Release\-i%BSL_EVMDM6437_INSTALLDIR%/include-mv6400+5.4编译,连接成功。并且再也不怕移来移去了。5.5注意:有时候可能还有一个地方需要该:[ProjectSettings]ProjectDir=E:\WorkContent\projectExample\video_loopback指向项目文件的绝对路径。而项目文件中的相对路径都是基于该路径。Part3:ccs编译中常见的编译错误及解决方法1fastcopy提示找不到ialg.h等头文件,打开cmd文件后看到目录包含命令有:-i%XDAIS_INSTALL_DIR%/packages但是系统中没有XDAIS_INSTALL_DIR这个环境变量,于是找到xdais的安装目录:C:\dvsdk_1_01_00_15\xdais_5_21\然后添加系统环境变量:变量名:XDAIS_INSTALL_DIR变量值:C:\dvsdk_1_01_00_15\xdais_5_21\想飞豆豆制作9注销或重启或者kill掉explorer后在运行即可2ccs提示:couldnotopensourcefileti/sdo/fc/acpy3/acpy3.h。和问题2相似,在cmd文件中找到另一条包含目录命令:-i%FC_INSTALL_DIR%/packages同样在系统环境变量里面没有这个东西。因为acpy3是属于frameworkcomponent的东西,所以找到fc的安装目录C:\dvsdk_1_01_00_15\framework_components_1_20_03添加系统环境变量:变量名:FC_INSTALL_DIR变量值:C:\dvsdk_1_01_00_15\framework_components_1_20_033、在程序中查到其用到了FCPY_IFCPY这个变量:IFCPY_Fxns*fxns=(IFCPY_Fxns*)&FCPY_IFCPY;但是只在整个工程的.c或.h文件中找到如下FCPY_IFCPY的定义:externfarIFCPY_FxnsFCPY_IFCPY;[在当前文件前面这样定义的]按上面的定义,这个FCPY_IFCPY肯定在其它文件中有定义的,但是并没有找到。最后在命令连接文件.cmd文件中找到如下一行语句:_FCPY_IFCPY=_FCPY_TI_IFCPY;而且找到FCPY_TI_IFCPY定义如下:IFCPY_FxnsFCPY_TI_IFCPY={/*module_vendor_interface*/IALGFXNS,/*IALGfunctions*/FCPY_TI_control,/*Controlfunction*/FCPY_TI_doCopy/*Thefcpyfxn*/};因此推断,cmd文件中的这个命令将FCPY_IFCPYFCPY_TI_IFCPY两个东西等同起来了,前面的下划线应该是格式需要。有熟悉这个的朋友给解释下。4、使用dsp/bios时,printf函数默认不起作用。这是因为bios中没有动态分配heap的原因,默认情况下mem对heap的分配如下图所示:想飞豆豆制作101)很明显看到这里选择的是:nodynamicmemoryheaps但是取消选中后,会发现下拉框中并没有任何选项让选择把

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功