当前位置: 首页 > news >正文

ADI的DSP开发软件:CCES软件的使用说明(很早期写的一点心得)

CCES 是 ADI 最新的 DSP 开发环境,全称是 Cross Core Embedded Studio,我从 2012 年的1.0.1 版开始使用,也曾经写过一个非常详细的软件安装文档,现在来详细的说一说 CCES 软件的使用操作。下面是我列出来的标题,一个一个来。

硬件准备

ADSP-B609-CORE开发板

AD-HP530ICE仿真器:ADI DSP专用仿真器(非常好用)
在这里插入图片描述

1)创建一个新的工程
2)导入一个现有的 CCES 工程
3)调试工程
4)关闭及删除工程
5)添加 LDF 文件
6)添加外部存储 SDRAM、调整堆 Heap 大小、调整栈 stack 大小
7)如何导出内存中的图片数据
8)查看寄存器变量
9)查看变量

话说 CCES 这个软件是 ADI 新出的,有些朋友可能会奇怪,2012 年就开始用的也算新?这个当然 OP 是跟以前老的软件做对比,它比较新,老的软件叫 Visual DSP++,这俩有什么区别呢?

Visual DSP++是 ADI 的第一个 DSP 开发环境,OP 没有从 1.0 开始,而是从 10 几年前的3.5 开始使用的,由于本文是讲 CCES,我就不对 VDSP 做更多的讲解,只讲不同,那就是 BF60X,BF70X,SC58X,SC57X 这些个芯片,只能用 CCES 来做开发,而 BF 以前的 BF5XX 系列,SHARC以前的除了 5 系列,全部都可以用 VDSP 来做开发!另外 TS 系列,219x 和 2199x 系列,只能用 Visual DSP++来做开发,不能用 CCES!

CCES 作为比较新的软件,是基于 Eclipse 修改而来。所以基本的界面跟 Eclipse 相似,新时代的开发者们,是不是有一种很亲切的感觉啦。

创建一个新的工程

如何来创建一个新的工程,我们来看一看:(本文均以 OP 目前安装的 CCES2.1.0 为例做详细讲解)

打开 CCES 开发环境,依次点击 File->New->Cross Core Project,弹出新建工程对话框,如下图 所示。

在这里插入图片描述

在这里插入图片描述

下一步,选择你的处理器及芯片版本号,因为本文我用的是 BF609 的开发板,芯片是最新的 0.2 版,所以见下图。

在这里插入图片描述

完成新工程的创建。

在这里插入图片描述

导入一个现有的 CCES 工程

如何在 CCES 软件里导入一个现有的工程,请见本章。

点击 File->Import 弹出选择工程向导对话框如下所示。

在这里插入图片描述

选择 General 下面的 Existing Projects into Workspace,点击 Next 弹出选择工程向导对话框如下图所示。

在这里插入图片描述

在这里插入图片描述

点击 Browse 选择工程目录,工程文件放在XX\learn_cces\lesson1_Core0,注意:CCES的工程文件是.project,与它同级目录有一个.settings 文件夹,选择工程目录是就选择到.settings 的上一级目录就可以了,如图:(这里需要注意,最好是用纯英文路径,来选择你要导入的程序。)

在这里插入图片描述

选择到 lesson1_Core0 目录,下面有.settings 文件夹,点击 Finish,选择完成,如下图所示

在这里插入图片描述
点击工程名 lesson1_Core0 前面的加号展开工程 , 并打开src目录下面的lession1_Core0.c 文件,在 main.c 函数加入几行打印如下图所示。

在这里插入图片描述

调试工程

接上一篇,在工程名上右键选择 Build Project 编译工程,编译完成如图所示

在这里插入图片描述

在工程上右键选择 Debug As 选择 CrossCore Application 弹出选择处理器类型对话框如下图所示。

在这里插入图片描述

选择 Application with…

在这里插入图片描述

在这里插入图片描述

选择 Blackfin,ADSP-BF609,Next!(我当时是以ADI的BF609为例)

在这里插入图片描述

选择仿真器,这里我们选择 AD-HP530ICE 仿真器所对应的 ICE-1000

在这里插入图片描述

弹出 Debug Configuration 界面,点击 Debug 按钮进行调试。

在这里插入图片描述

注意:由于 BF609 是双核处理器,在调试之前我们要确定当前选择的核,这里我们选择 Core0,如下图所示。

在这里插入图片描述

直接选择运行即可,或者单步运行该程序,单步我说一下,点击

在这里插入图片描述

或者 F10 来进行单步运行,运行结果:

在这里插入图片描述

可以在 Console 窗口有输出结果。就是写了个类似hello world的…

关闭及删除工程

如果要关闭一个工程在工程名上右键选择 Close Project

在这里插入图片描述

如果要删除一个工程在工程名上右键选择 Delete,这个删除只是从工程列表去除,磁盘上工程依然存在。

在这里插入图片描述

添加 LDF 文件

由于创建工程的时候默认是添加 LDF 文件的,所以工程默认是有 LDF 文件的,但是假设我们把 LDF 文件删除了的话就要添加 LDF 文件,下面说明如何添加 LDF 文件。

在工程列表下面找到 system.svc 文件并双击,我这里的工程是默认有 LDF 的,如下图:

在这里插入图片描述

如果被删掉,加进去就好啦。

在这里插入图片描述

添加完之后,就跟我之前的状态一样了。

添加外部存储 SDRAM、配置系统堆Heap、配置系统栈 Stack

首先确定已经 添加了 LDF 文件,双击 system.svc 弹出系统配置界面如下图 所示

在这里插入图片描述

在系统配置界面点击 Startup Code/LDF,(在下侧),即可弹出 LDF 配置界面,如下图所示。

在这里插入图片描述

选择 Use external memory (SDRAM),然后选择 128M(板子上贴的是多大的,就选择多大的),

在这里插入图片描述

选择 Customize the system stack 来配置系统的栈,如下图

在这里插入图片描述

选择 Customize the system Heap 来配置系统堆,如下图

在这里插入图片描述

最后点击保存完成外部存储 SDRAM、系统堆 Heap、系统栈 Stack 的配置。

如何导出内存中的图片数据

首先连接仿真器进入调试状态,并且 CPU 处于非运行状态,点击 Window->Show View->Memory Browser,如下图所示。

在这里插入图片描述

在 Memory Browser 窗口输入要导入到的内存地址,这里输入 0x00000004,SDRAM 的起始地址,回车,即可访问该地址的数据,如下图所示。

在这里插入图片描述

我们假设该起始地址存放有一个 4802723 的 RGB888 图片数据,点击右侧导出按钮

在这里插入图片描述

弹出 Dump Memory 对话框,如下图

在这里插入图片描述

File type:选择 Binary file
File name:文件路径,不要放在中文路径下
Address:起始地址
Count:数据量,4802723 = 391680
点击 OK 即可导出!

查看寄存器变量

首先进入调试状态,并且处于非运行状态,点击 Window->Show View->Register Browser,弹出寄存器窗口如下所示:

点击中间的按钮,选择一个寄存器进行查看,我们选择 EPPI0 进行查看,如下图所示。

在这里插入图片描述

点击 OK,可以看到 EPPI0 的各个寄存器值,如下图所示。

在这里插入图片描述

查看变量

首先进入调试状态,并且处于非运行状态,点击 Window->S h o w V i e w->E x pressions,弹出变量窗口,如下图:

在这里插入图片描述

点击 添加要查看的变量,可以看到值为 6,如下图:

在这里插入图片描述

注意,只能看全局变量。

结束语

10年前写的一点心得,可能现在新版的CCES有些细节不太一样了,凑合看吧,意思到了就行啦。

相关文章:

  • Webpack完整打包流程分析
  • ubuntu 20.04 设置DNS
  • 小型扫雪机结构设计
  • Day17 | 每天五道题
  • 无人机边缘计算中的计算卸载——Stackelberg博弈方法论文复现附matlab代码
  • 【明天截稿】Wiley出版社,传感器网络与电路类SCI,仅2-3个月左右录用
  • Matplotlib学习笔记(第一章)
  • 做一个公司网站大概要多少钱?
  • MySQL 数据库主从复制
  • 分布式文件存储系统FastDFS[1]-介绍以及安装
  • 如何使用 Excel拆分文本单元格,基于LEFT、RIGHT、MID、SUBSTITUTE、FIND、SEARCH
  • Java 泛型方法总结
  • WebRTC Native M96 SDK接口封装--注册语音观测器对象获取原始音频数据registerAudioFrameObserver
  • 深入理解Linux网络技术内幕(十一)——帧的传输
  • PXE + Kickstart 服务器批量安装Linux系统
  • 基于鲁棒-距离平衡和基于学习的人工蜂群的强大优化算法(Matlab代码实现)
  • 使用opencv截取旋转框目标
  • 深入react源码看setState究竟做了什么?
  • 无监督学习
  • [附源码]JAVA毕业设计宿舍管理系统(系统+LW)
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉