CCS5连接调试C64X系列DSP核

CCS从3.3改版为5.X之后,CCS 变化很大.DaVinci芯片中DSP的调试步骤也不同了.这里介绍下在CCS里如何调试DaVinci的DSP核心

1. 创建CCS V5版本的project

本人使用的CCS版本是Version:5.4.0.00091,调试器是SEED的SEED-XDS560PLUS.这里调试的是DM6467中的C64X核,用来检验算法的正确性.

1.1 创建一个project

在菜单栏中点击 File -> New -> CCSProject.

在Project name中输入项目名称 "emcv_test". Output type中选择 Executable, project会编译一个.out文件,在C64x中运行.Family中选择C6000系列,DaVinci DM646x.运行时库选择rts64plus.lib

在Project templates and examples中选择 Empty Project(with main.c). 最后点击 Finish.

这样,一个最简单的DSP工程就建立出来了.

接下来参考"移植EMCV到DM6467"文章,我来添加源文件.直接将emcv的cv和cxcore两个目录复制到我们上面创建的emcv_test工程目录里即可.如下:

这样刷新CCS工程就会看到

将emcv的cv和cxcore目录包含进工程

剩下的步骤不详细列出,因为"移植EMCV到DM6467"文中都会讲到.最后我们的emcv_test工程如下:

1.2 编译project

在project上右键单击选择Build Project选项,这里编译出错

本着一颗虔诚的心,我又锲而不舍的找到了这个函数的定义处

果然,有八个参数,可是我们main函数里调用这个函数的时候只给了7个参数,这符合C++语法,但是不符合C语言语法.那么这个问题可以有两种解决方式.

方法一:将main函数中的调用

cvRectangle(img, point1, point2, color, CV_AA, 0);

改为

cvRectangle(img, point1, point2, color, CV_AA, 8, 0);

方法二:将源文件main.c改为C++类型,即改为main.cpp即可

CCS支持C++类型,因此一般的工程修改这两种方法都可以,但是我后期要做的是DVSDK上的DSP算法移植,大概流程为:使用CCS插件 -> 生成代码框架 -->  修改算法接口 -->  填充完善算法框架 -->  (适当优化、测试,处理) --> 放在Linux下的DVSDK中 -->  配置XDC环境 -->  编译CODEC -->  编译CODEC SERVER --> 编译APP

可能在Linux的DVSDK编译中会对C++的支持不好,所以建议最好选择同意将C++类型的语句都用C语言语法形式来实现.

编译.最后会生成一个.out文件.这个文件运行在C64x核上.

2. 调试程序

这一章主要介绍如何创建target configuration以及在CCS5中如何进行调试C64x

2.1 添加gel,设置JTAG调试器

2.2 启动debugger

启动configuration配置.在菜单中点击view->Target Configurations.

右键单击目标target选择Launch Selected Configuration.

之后debugger就会被启动了.右键单击master核即ARM926核然后选择Connect Target

我们看到console上打印出来的其实就是之前我们加载的ARM端的gel文件的内容

ARM926核心连接好以后,选中A8核心,点击菜单栏中的Scripts -> DaVinci HD1080P DSP -> DSP_Boot_from_DDR2,加载slave核即C64x核的GEL文件

右键单击C64x核然后选择Connect Target

这样,C64x核心连接到调试器,可以下一步的调试了

2.3 加载程序

步骤如下:点击菜单run -> Load-> Load Program.选中生成的.out文件,点击OK, 程序加载完成

到这里,就可以像VS2008那样跟踪调试代码了

原文地址:https://www.cnblogs.com/jason-lu/p/3472834.html