• 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那样跟踪调试代码了

  • 相关阅读:
    MySQL 索引优化
    [转]多列索引
    abstract class和interface有什么区别? [转]
    PM knowledge
    委托应用场景[摘]
    Web 服务描述语言工具 (Wsdl.exe)[FROM msdn]
    C# 四个基本技巧[转]
    What are database states? [forward]
    学做程序经理[摘]
    SET IDENTITY_INSERT 学习心得[转]
  • 原文地址:https://www.cnblogs.com/jason-lu/p/3472834.html
Copyright © 2020-2023  润新知