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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Part1:ccs3.3中新建一个DM6437的示例工程

1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子

2、用file-new选择建立一个dsp/bios文件

在打开的对话框中选择你使用的板子的型号,如下图:

3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。保存这个文件到工程目录下先,文件类型为tcf。

4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。此时将tcf文件和这个cmd文件同时添加到工程中,使用

5、然后需要修改一个编译选项,点击下图所示选项进去:

6、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成 -mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。

7、file-new-source file建立一个c源文件,保存并加入到工程中。

以下是示例程序:

#include

#include

#include

Int main(Int argc, String argv[])//main函数的类型必须这样写

{

unsigned int i;

unsigned int sum=0;

for(i = 0; i<=100; i++ )

{

sum += i;

}

printf("the sum = %d .\n",sum);

printf("the program run over!\n");

printf("the program run over!\n");}

注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。这里是64+平台所以是在C:\CCStudio_v3.3\C6000\cgtools\lib目录下的rts64plus.lib文件,否则ccs会提示如下警告和错误:

>> warning: entry point symbol _c_int00 undefined

undefined first referenced

symbol in file

--------- ----------------

_printf

E:\\WorkContent\\projectExample\\Test\\Debug\\test.obj

>> error: symbol referencing errors - './Debug/Test.out' not built

2)如果想要printf正确输出信息,cmd文件中必须指定heap的大小,即cmd文件这样

写:

-c

-stack 0x00001000 /* Stack Size */

-heap 0x00001000 /* Heap Size */

//前面这三项必不可少

MEMORY

{

L2RAM: o = 0x10800000 l = 0x00020000

DDR2: o = 0x80000000 l = 0x10000000

}

SECTIONS

{

.bss > L2RAM

.cinit > L2RAM

.cio > L2RAM

.const > L2RAM

.data > L2RAM

.far > L2RAM

.stack > L2RAM

.switch > L2RAM

.sysmem > L2RAM

.text > L2RAM

.ddr2 > DDR2

}

另外,我在使用dsp/bios自动生成的cmd文件进行编译的时候,不会报错误或警告,但是printf就是不能输出任何东西,后来解决了,具体解决方法见后面的:“ccs编译中常见的编译错误及解决方法”的第4部分

8、compile-rebuild all;无错误提示。此时项目就建立并编译好了。下面就要把程序加载到板子上运行了。

9、首先要先连接板子,点击debug->connect

10、如果连接成功,会看到下面的效果:

未连接时:

连接成功后:

连接成功的同时,ccs会打开一二Disassembly窗口,如下图:

11、加载程序吧,程序编译后,会在当前目录的Debug目录下生成一个*.out的文件,此例中的文件是“6467EXAM.out”;通过file->load Program加载这个文件

加载后,Disassembly窗口中会有所变化,如下图:

12、Debug->Run去吧

提示:

1 Ccs的项目不支持创建在中文目录下。

2 项目移动到其他文件夹下面时,需要修改*.pjt中的

[Project Settings]

ProjectDir="E:\WorkContent\projectExample\6467EXAM"到新的目录。

很简单的一个例子。希望能帮助入门的朋友。

Part2:ccs中工程的创建-改变工程目录时注意的细节

以6437为例:

1、在安装目录下,打开如下路径下的示例工程:video_loopback

C:\CCStudio_v3.3\boards\evmdm6437_v2\tests\video_loopback

Ok,如果板子没问题,肯定能编译成功的。

2、有时候我们需要搬移自己的工程到别的目录或别的机器上去,此处,将这个工程拷贝到F盘中去,再重新打开,编译,你会发现此时提示以下错误:"main.c", line 12: fatal error: could not open source file "evmdm6437.h"

"tvp5146.h", line 12: fatal error: could not open source file "evmdm6437_i2c.h"

"video_loopback_test.c", line 12: fatal error: could not open source file "evmdm6437_dip.h"

找不到对应的头文件了??并且你在工程中也打不开这几个文件,打开时会提示:

3、看来ccs在找这些个头文件时,没有从工程中获取正确的路径信息,打开项目文件,此处是:video_loopback.pjt,会发下以下几行:

["Compiler" Settings: "Debug"]

Options=-g -q -fr".\Debug\" -i"..\..\include\" -d"_DEBUG" -mv6400+

["Compiler" Settings: "Release"]

Options=-q -o3 -fr".\Release\" -i"..\..\include\" -mv6400+

看意思是说,包含的头文件的路径是在..\..\include\目录下面;如果这个项目在原来默认的目录下,那么是正确的。因为的确能看到所谓的include文件夹,他们就是在ti默认安装目录下面的。

但是由于我们改变了项目的路径,那么这些个目录肯定是不对的,所以ccs无法找到这些个文件了。。

4、那是不是修改过来就好了。

答案是肯定的也是否定的,如果我们找到这个include目录,并写到pjt文件中,如下所示:

相关文档
最新文档