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. ASP.NET Core 中的SEO优化(4):自定义视图路径及主题切换

    系列回顾 <ASP.NET Core 中的SEO优化(1):中间件实现服务端静态化缓存> <ASP.NET Core 中的SEO优化(2):中间件中渲染Razor视图> < ...

  2. oracle-分区(笔记)

    partition by 用于指定分区方式 range 表示分区的方式是范围划分 partition pn 用于指定分区的名字 values less than 指定分区的上界(上限) ------- ...

  3. Python基础之路

    一.Python基础之简介 二.Python基础之数据类型 三.Python之运算符 三.Python变量 四.Python之流程控制 三.Python基础之函数 四.Python基础之面向对象

  4. 微信开发 api 需要 https 服务器

    微信开发 api 需要 https 服务器 先建一个环境,本地的 https 服务器. 以下这篇不错,很完整. https://zhuanlan.zhihu.com/p/23640321

  5. codechef January Challenge 2017 简要题解

    https://www.codechef.com/JAN17 Cats and Dogs 签到题 #include<cstdio> int min(int a,int b){return ...

  6. bootstrap的折叠组件1

    官网的例子: http://v3.bootcss.com/javascript/#collapse <div class="panel-group" id="acc ...

  7. jmeter数据关联_后置处理器_正则表达式提取器

  8. java代码。。。圆的面积好搞人。。。不是一般的搞人。。。欢迎指点指点

    package com.ll; public class Class3 {     private String name;     private int age;     private int ...

  9. 慢日志之二:ERROR 1146 (42S02): Table 'mysql.slow_log' doesn't exist,分析诊断工具之四

    去查看最新的slow log,发现没有最新的记录,上去检查slow log是否开启了. MySQL> show variables like '%slow%'; +--------------- ...

  10. SQL 函数:树结构指定父节点遍历所有的子节点

    CREATE function [dbo].[Get_DepChildren] ( @ID int ) , ),PID ), Name )) as begin --declare @ID Int -- ...