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, );

改为

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

方法二:将源文件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那样跟踪调试代码了

CCS5连接调试C64X系列DSP核的更多相关文章

  1. 【转】TI-Davinci开发系列之六CCS5.2调试Linux内核

    上转博文<TI-Davinci开发系列之五CCS5.2使用gdbserver远程调试应用程序> 使用CCS5.2远程调试内核时,只需导入Linux内核源码,而不需要编译内核,也就不会用到交 ...

  2. TMS320C54x系列DSP的CPU与外设——第1章 绪论

    第1章 绪论 TMS320C54x DSP是TMS320系列DSP产品中的定点数字信号处理器.C54x DSP满足了实时嵌入式应用的一些要求,例如通信方面的应用. C54x的中央处理单元(CPU)具有 ...

  3. OMAP4之DSP核(Tesla)软件开发学习(四)ARM核与DSP核通讯示例

    首先,安卓系统完全启动4AJ.2.1. 其次,查看OMAP4的Tesla相关信息,检查Tesla是否使能.(有如下显示,则OK) cat /d/emoteproc/omap-rproc.0/versi ...

  4. OMAP4之DSP核(Tesla)软件开发学习(三)使能DSP核

    目标: 1.编译或直接获取DSP映像tesla-dsp.bin. 2.boot并使能DSP核(这个可以看启动打印或者进入/d/remoteproc/omap-rproc.0/参看dsp调试信息).   ...

  5. OMAP4之DSP核(Tesla)软件开发学习(一)

    目的:       目前手上正在OMAP4上做东西,由于涉及到大量运算,交给arm A9双核发现运算速度很慢,不能满足需求.故考虑将大量运算任务(比如FIR.FFT.卷积.图像处理.向量运算等)交给O ...

  6. Baidu 人脸识别FireFly 与PC连接调试

    1.USB线插到离屏幕较远的双层USB口上方.2.安装驱动,OK.,然后就可以直接拷贝安装包或者连接调试了. 其它几个口都不行.

  7. 【转】WinDbg调试器:启动程序时自动连接调试器方法

    当我们调试服务进程或子进程时,无法直接用调试加载进程的方式启动,此时需要在启动程序时自动连接调试器方法: 第一步:注册表展开到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft ...

  8. 【DSP开发】C6000非多核非KeyStone系列DSP中断系统

    C6000系列DSP的中断系统 上一篇介绍了C6455的GPIO系统,最后把GPIO4配置成了中断/事件模式,本文将介绍C6455的中断系统,介绍完基本概念后,给出把GPIO4映射到INT4的代码. ...

  9. TMS320C54x系列DSP指令和编程指南——第1章 汇编语言工具概述

    第1章 汇编语言工具概述 TMS320C54x DSP的汇编语言开发工具包括: ■  Assembler      ■  Archiver      ■  Linker      ■  Absolut ...

随机推荐

  1. MySQL排序_20160926

    在工作中对数据进行排序也是最常用的,比如根据用户的下单金额降序 或者对销售业绩进行降序排序 在考核员工KPI时候也经常用到 一.order  by 函数 order by 函数默认根据后面字段升序,使 ...

  2. wpf Tree

    code using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  3. pycharm中import动态链接库pyd有错误

    有红色波浪线提示unsolved reference云云 去setting里面设置interpreters,  在path里面添加对应的路径, 是包含对应头文件的路径, 不要忘记右边的小按钮去Relo ...

  4. jQuery的deferred对象详解(转载)

    jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本.(由于无法转载,复制原文 .原文链接——原作者:阮一峰) 每个版本都会引入一些新功能.今天我想介绍的,就是从jQuery 1.5. ...

  5. linux网络编程、系统编程

    http://blog.csdn.net/lianghe_work/article/category/2871247

  6. Codeforces 982C(dfs+思维)

    C. Cut 'em all! time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  7. AngularJS.js: temple

    ylbtech-AngularJS.js: temple 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   7.返回顶部   8.返回顶部 ...

  8. scrapy_redis 实现多进程配置部分代码

    # 启用Redis调度存储请求队列SCHEDULER = "scrapy_redis.scheduler.Scheduler"# 确保所有的爬虫通过Redis去重DUPEFILTE ...

  9. [转载,感觉写的非常详细]DUBBO配置方式详解

    [转载,感觉写的非常详细]DUBBO配置方式详解 原文链接:http://www.cnblogs.com/chanshuyi/p/5144288.html DUBBO 是一个分布式服务框架,致力于提供 ...

  10. Java程序中不通过hadoop jar的方式访问hdfs

      一般情况下,我们使用Java访问hadoop distributed file system(hdfs)使用hadoop的相应api,添加以下的pom.xml依赖(这里以hadoop2.2.0版本 ...