rowen

【原创】CCS5.5的详细使用方法

3
阅读(4823) 评论(4)

       最近有个FPGA+DSP架构的项目,安装了DSP的开发环境CCS,这里介绍下CCS的使用方法。说明:开发TMS320C6678,建议使用CCS5.0以上版本,以下介绍基于CCS5.5。

一、软件安装

1、建议默认安装方式,路径可以根据实际情况自行设定。

2、安装完CCS后,需要添加破解的license文件,将其拷贝到/ccsv5/ccs_base/DebugServer/license 下面,即可使用。CCS5.5破解的license文件可使用CCSv5-China-University-Site_License.lic。

3、安装MCSDK,里面包含DSP相关的开发库及例程,本例中使用版本bios_mcsdk_02_01_02_06_setupwin32.exe,安装时建议将其安装到CCS的根目录下,安装后如下所示:

clip_image001

4、由于以上安装MCSDK版本的EDMA3及NDK库存在bug,建议使用以下版本替换即可edma3_lld_02_11_02_04及ndk_2_24_01_18。替换方式:将安装目录中的整个库文件删除,然后将需要替换的压缩文件整个解压到安装目录中,重新打开CCS后,软件会自动添加更新的库文件,点击确定即可。

 

二、工具栏介绍

1、CCS界面右上角的标志为clip_image002,选中CCS Edit,此为编辑模式,此时左上角的工具栏为clip_image003,下面以此做简单介绍:

“File”:其下拉菜单为

clip_image005

     

      其中“New”还有一级下拉菜单,用来新建工程(后面介绍)、新建一个C/C++文件或头文件、新建cfg文件(使用SYS/DSP需要的配置文件)、ccxml文件(调试时连接仿真器的配置文件)等;“Import”用于导入已存在的工程;

“Edit”:对可编辑文件进行粘贴、复制、回退等操作;

“View”:显示窗口,如查看工程目录(Project Explorer)、查看DSP内存数据(Memory Browser)、查看变量值(Variables)、查看反汇编代码(Disassembly)等;

“Project”:新建工程及编译工程等;

“Run”:给core加载程序(不常用);

“Scripts”:加载脚本文件,在debug的时候,如果CCXML中添加了gel文件,在此下拉菜单中会出现各个初始化模块,如果需要对某个模块重新初始化,选中即可。

 

2、选中右上角clip_image006,此为调试模式,此时左上角的工具栏为clip_image007,此时多了Tools的工具菜单,“Run”的下拉菜单选项也发生变化。

“Tools”:可以对内存空间填充特定数据、加载数据文件及保存数据等,仿真分析。

“Run”:增加了调试方法,及对系统时钟(clock)的操作(用于计算程序运行时间)。

 

二、建立工程

1、打开CCS软件后,需要指定一个工作区间目录,新建工程都默认在此目录下。

2、File->New->CCS Project(Project->New CCS Project),弹出如下界面:

clip_image008

 

       设置project name如“Project_test”,Device选择开发芯片对应的型号,Advanced Setting用来设置开发条件(如设备大下端、编译器版本、包含的link文件及包含库等),一般情况下默认即可,如果需要使用SYS/BIOS则选择Empty RTSC Project否则选择Empty Project。如果选择Empty Project,点击finish即可,此工程建立完成;如果选择Empty RTSC Project,则点击next。

 

3、配置BIOS,配置界面如下:

clip_image009

 

        首先选择需要使用的模块库,然后根据开发板芯片型号选择合适的目标类别,最后选择合适的Platform(可以借鉴评估板,在此基础上修改)及编译版本。点击finish即可完成新建工程的建立。

 

三、工程介绍

如下面工程目录:

clip_image010

        “GE”为工程名,当工程正确编译后会生成GE.out的二进制可执行文件及Debug(Realease)

文件。为了工程目录清晰可以右键工程名,然后New->Folder新建一个文件夹,将文件进行归类,如上图所示文件夹src,然后将原文件放进src中,若有头文件可新建一个Header文件夹存放头文件。上图KeyStone.cmd用于分配DSP内存及其用途,此文件需要右击工程名,然后New->File建立,命名后缀为cmd,下面简单介绍其内容:

 

clip_image011

 

-heap 0x800:表示分配的堆大小为0x800;

-stack 0x1000:表示分配的栈大小为0x1000;

MEMORY{}中的内容是给DSP可用内存段命名,如

SL2: o = 0x0C000000 l = 0x00200000

表示起始地址0x0C000000,长度为0x00200000的连续内存空间名为SL2;

SECTIONS{}中的内容是给程序运行时需要的堆栈、全局变量等指定内存,如

.stack > LL2_RW_DATA

表示指定栈的空间在LL2_RW_DATA所对应的内存段内。如果需要自定义内存空间用于存储数据,可以进行如下操作:

Ddr3 > DDR_RW_DATA

表示定义一个空间段名为Ddr3,其映射地址空间为DDR_RW_DATA对应的一段连续内存(DDR_RW_DATA内可以定义多个空间段,程序中不能直接使用名称DDR_RW_DATA,但可以使用重定义的名称Ddr3)。接下来如果要在程序中定义一个Input[1024],并将其存储到Ddr3对应的空间中,可以在程序中添加以下代码段:

#pragma DATA_ALIGN(Input, 8); //8字节对齐

#pragma DATA_SECTION(Input, "Ddr3"); //Input内存属于Ddr3所对应的内存段

Uint32 Input[1024]; //定义一个数组

一般可以参考软件自带的cmd文件。

     如图,GE.ccxml为调试连接仿真器的配置文件,此文件需要New->Target configuration File建立,打开此文件左下方有三个可选项,其中Basic是选择正确连接的仿真器及芯片型号;Advanced是设置仿真器参数及加载初始化gel文件,当点击连接的仿真器时,会出现下图右侧的参数配置框,可根据实际情况进行设置。clip_image013

 

       如果需要给特定的核加载初始化文件时,选中对应核后,在右侧initialization script中添加指定的初始化文件,一般只需给core 0加载即可。

clip_image015

完成以上操作后,点击save,然后点击Test Connection,检测仿真器是否正确与开发板相连。

  1. 你太棒了!

  2. 你提供的资料真是太有用了

  3. 写的很棒呢

  4. 厉害了,我的哥