基于MATLAB的DSP调试方法

发布者:VelvetSoul最新更新时间:2010-06-22 来源: 测控技术关键字:MATLAB  DSP  CCS  调试 手机看文章 扫描二维码
随时随地手机看文章

    MATLAB 具有强大的分析、计算和可视化功能,利用MATLAB 提供的数十个专业工具箱,可以方便、灵活地实现对自动控制、信号处理、通信系统等的算法分析和仿真,是算法设计人员和工程技术人员必不可少的软件工具。

    数字信号处理器(DSP)作为一种可编程专用芯片,是数字信号处理理论实用化过程的重要技术工具,在语音处理、图像处理等技术领域得到了广泛的应用。但对于算法设计人员来讲,利用汇编语言或C 语言进行DSP 功能开发,对于具有周期长、效率低的缺点,不利于算法验证和产品的快速开发。

    由MathWorks 公司和TI 公司联合开发的MATLAB Link for CCS Development Tools(简称CCSLink)是MATLAB6.5 版本(Release13)中增加的一个全新的工具箱,它提供了MATLAB、CCS 和DSP 目标板的接口,利用此工具可以像操作MATLAB变量一样来操作DSP 器件的存储器和寄存器,使开发人员在MATLAB 环境下完成对DSP 的操作,从而极大地提高DSP 应用系统的开发进程。

1 CCSLink 初步

    CCSLink 工具通过双向连接将MATLAB、CCS 和DSP 目标板联系起来,允许开发者利用MATLAB 强大的可视化、数据处理和分析函数对来自CCS 的数据进行分析和处理,极大地简化TI 公司DSP 软件的分析、调试和验证过程。三者关系如图1示。

 
图1 CCSLink连接关系

    CCSLink 的主要特点为:在MATLAB 环境下完成对DSP器件的调试、数据传递和验证;在MATLAB 和DSP 之间实现数据实时传递;支持XDS510 和XDS560 仿真器;提供嵌入式对象,可以访问C/C++变量;扩展了MATLAB 和eXpressDSP工具调试能力。

    MATLAB 6.5 版集成了CCSLink1.0 工具,支持CCS 能识别的所有板卡及硬件DSP,包括TIC2000、C5000、C6000 DSP及EVM 板、DSK 板、simulator 及任何符合标准的用户板和第三方板。CCSLink 正常工作除了需要MATLAB 及其信号处理工具箱外,还需要TI 的编译器(compiler)、汇编器(assembler)、链接器(linker)、CCS IDE2.1、CCS 配置工具信其他软件工具。

在MATLAB 环境下输入命令

help ccslink

若CCSLink 已正确安装,则会显示产品信息及进行CCS 和RTDX 操作的函数列表:

MATLAB Link for Code Composer Studio(tm)
Version 1.0 (R13) 28-Jun-2002。

若MATLAB 不能返回信息,则表明CCSLink 未安装成功,需进行重新安装。

2 CCSLink 对象的建立

    在对DSP 进行操作之前,应该首先建立一个DSP 目标。对于配置了多DSP 系统的用户,CCSLink 提供了两种选择DSP目标的工具:ccsboardinfo 函数和boardprosel 图形用户界面,用户可以根据返回值和自己需求选择相应的对象。以采用图形用户界面为例,若配置有XDS510 Emulator 和C5416 Simulator 二种DSP 系统,运行[boardNum,procNum] = boardprocsel,则MATLAB 通过对CCS 配置的自动检测,出现图2 所示的目标选择界面。本文根据需要选择硬件仿真器C54xxXDS510Emulator 并点击Done,则可返回板卡编号和处理器编号:

boardNum=1,procNum=0。

 
图2 CCSLink对象选择

    利用ccsdsp 函数可以确立一个DSP 对象。ccsdsp 以板卡编号和处理器编号为参数,并在建立链接对象后返回其它属性,如处理器型号、处理器名称等。例如,运行cc=ccsdsp('boardnum',boardNum, 'procnum', procNum),则建立起一个CCS IDE 对象的句柄cc。从而可以通过cc,在MATLAB 下实现对CCS 的操作并控制DSP 芯片。

3 CCSLink 调试DSP 代码实例

    建立起MATLAB 链接之后,就可以通过CCS 为DSP 目标产生可执行代码,并进行编译、调试和分析。在以下的介绍中,均以MATLAB 自带的工程文件为例。

3.1 加载DSP 目标板

    在MATLAB 环境执行以下代码:

projfile = fullfile( matlabroot, 'toolbox', 'ccslink', 'ccsdemos', 'ccstutorial','ccstut_54xx.pjt')%选择工程文件
projpath = fileparts(projfile) %指定工程文件路径
open(cc,projfile)%打开工程文件
visible(cc,1)%使CCS IDE 前台可见
cd(cc,projpath)%改变MATLAB 工作路径
build(cc,'all',60)%编译工程
load(cc,'ccstut_54xx.out',30)%加载可执行文件

    则如代码注释所示,在MATLAB 环境下完成了对工程文件的调入、编译,生成可执行文件并将其加载到DSP 目标板。利用鼠标操作切换到CCS 界面,可以看到在MATLAB 下已经完成了对CCS 的各种操作过程,如图3 所示。

  
图3 CCSLink调试DSP代码实例

3.2 利用CCSLink 连接调试访问DSP 内存

    在编译并加载.out 文件后,可以直接由CCSLink 读取目标符号表并获取变量在DSP 内存中的地址。如输入ddatA =dec2hex(address(cc,'ddat')),将返回变量ddat 的地址和所在页:
23AC,0000。

    在MATLAB 中,可以控制CCS IDE 中程序的显示及断点的增加和删除,并控制程序代码的执行和暂停,读写DSP 的内存变量。例如,执行以下程序:

open(cc,'ccstut.c','text')%在CCS 中打开ccstut.c 文件
open(cc,'ccstut_54xx.cmd','text')%在CCS 中打开ccstut_54xx.cmd 文件
activate(cc,'ccstut.c','text')%将ccstut.c 作为当前的活动文件
insert(cc,'ccstut.c',64)%在第64 行加入断点
halt(cc)%暂停CPU
restart(cc) %继续与CCS 保持联系
run(cc,'runtohalt',20)%DSP 程序执行到断点
ddatV = read(cc,address(cc,'ddat'),'single',4) %(1)读取C 代码初始化数据ddat
idatV = read(cc,address(cc,'idat'),'int16',4) %(2)读取C代码初始化数据idat
write(cc,address(cc,'ddat'),single([pi, 12.3, exp(-1), sin(pi/4)])) % (3)修改DSP 内存中的数据ddat
write(cc,address(cc,'idat'),int16([1:4]))% (4)修改DSP 内存中的数据idat
run(cc,'runtohalt',20) %从断点处继续执行
ddatV = read(cc,address(cc,'ddat'),'single',4)% (5)读取修改后的数据ddat
idatV = read(cc,address(cc,'idat'),'int16',4) %(6)读取修改后的数据idat

    阅读本例工程文件可知,在C 代码中,变量初始化值为ddat=[16.3,-2.13,5.1,11.8],idat=[1,508,647,7000]。执行上述(1)、(2)两语句,在MATLAB 中获得了这两个变量的值ddatV 和idatV。经过(3)、(4)两语句的修改,ddat 和idat 分别改为了新值ddat=[3.1416,12.3,0.3679,0.7071]和idat=[1,2,3,4]。这一修改,可从(5)、(6)两语句的执行在MATLAB 中得到验证,同时也可在CCS IDE 下通过变量观测器进行证实。

    在MATLAB 下,同样可以通过regread 和regwrite 来对CPU寄存器进行读写操作。如

tReg = regread(cc,'AL','2scomp') % 按二进制补码方式读取AL
regread(cc,'TRN','binary') % 按无符号二进制数读取TRN
regwrite(cc,'AH','FFFF','binary') % 按无符号二进制数读写AH

3.3 利用CCSLink 嵌入式对象调试访问DSP 内存

    利用MATLAB 的面向对象编程技术和CSLink,可以为目标程序中的所有C 符号创建嵌入式对象,并通过对象来操作该C 符号。

    仍以上述程序为例,首先复位DSP,并创建一个嵌入式对象:

restart(cc) % 复位程序,使PC 指向程序入口处
goto(cc,'main') %将PC 定位到C 主程序入口
cvar = createobj(cc,'idat') %(7)为操作嵌入式对象idat 创建MATLAB 对象
cvar

    语句(7)创建了指向DSP 中C 符号的MATLAB 对象,从而可以在MATLAB 环境下实现对其全部或部分读取和修改。

read(cvar)%(8)将嵌入式数组读入到MATLAB 工作空间
read(cvar,2)%只读取第2 个元素
write(cvar,4,7001)%(9)将第4 个元素修改为7001
set(cvar,'size',[2])%(10)将对象减小到2 个元素

    语句(8)将指向idat 的嵌入式数组cvar 读入MATLAB,在语句(9)中对其第4 个元素进行了修改,而在语句(10)中对数组的大小进行了改变。

    通过CCSLink,不仅可以为数组变量创建对象,而且也可以为结构体变量创建对象并进行相应的操作,如:
cvar = createobj(cc,'myStruct')%创建指向C 结构体的MATLAB 对象
write(cvar,'iz', 'Simulink') %修改结构体的字符串iz 域为Simulink
cstring = getmember(cvar,'iz')%读取该域到MATLAB
write(cstring,1,'s')%该写字符串的首字符
readnumeric(cstring)%按数值方式读取字符串

    上述5 条语句,均通过MATLAB 环境下的对象cvar,实现了对DSP 的C 语言程序中结构体变量myStruct 的读写操作和修改,具有很大的方便性。

    通过CCSlink,无论对CCS IDE 建立了连接对象还是嵌入式对象,均可在MATLAB 环境下进行操作,达到了DSP 内部各种变量的读写和修改,并进行相关的调试过程,具有很大的方便性。对于上述示例所有的操作执行结果,均可以在MATLAB和CCS IDE 环境下进行观测和验证。

4 结束语

    本文简要讨论了基于MATLAB 的DSP 程序调试方法,描述了CCSLink 与CCS IDE 的基本概念,介绍了建立CCS 对象的过程,并以MATLAB 提供的实际工程文件为例,演示了利用CCSLink 连接和嵌入式对象进行C 变量操作的实际过程,并对其执行过程和结果进行了简要解释。

    应该说明的是,MATLAB提供了大量的进行DSP程序调试的函数,本文只涉及到了其中极少的一部分。要充分利用MATLAB的强大功能进行更深层次的DSP程序调试,应进一步参考MathWorks公司提供的技术资料MATLAB Link for Code Composer Studio Development Tools。

关键字:MATLAB  DSP  CCS  调试 引用地址:基于MATLAB的DSP调试方法

上一篇:Xilinx公布28nm产品线
下一篇:基于DSP的光纤光栅解调系统的设计

推荐阅读最新更新时间:2024-05-02 21:04

基于DSP控制的PFC变换器的新颖采样算法
摘要:为DSP控制的功率因数校正(PFC)变换器提出了一种新颖的采样算法,它能够很好地消除PFC电路中高频开关动作产生的振荡对数字采样的影响。尤其是当开关频率高于30kHz时,所提出的新颖采样算法能够更好地提高开关抗噪声性能。最后将此算法运用到一台2kW的PFC变换器中,实验结果证明了该算法对于分析、设计和调试所有含开关的数字采样电路均有实用参考价值。 关键词:数字信号处理;功率因数校正;采样算法 引言 数字信号处理器(DSP)已经被广泛应用于通信,智能控制,运动控制等许多领域中。由于具有处理速度快、灵活、精确、可靠等特点,DSP已逐渐取代了传统的模拟控制,例如开关电源中的DC/DC变换器,PFC变换器,以及高频脉宽调制(P
[嵌入式]
集成工具提高嵌入式DSP系统设计与自动化程度
嵌入式 DSP 系统传统设计流程通常由概念到算法及算法到产品两个阶段构成,通常这两个阶段互相独立且由不同设计小组完成。 传统的设计流程里要用手工在两个阶段之间进行转换与衔接,这样容易出现错误而推迟产品的上市时间。本文介绍一种集成工具可以使设计与验证测试更加自动化,且具有更高效率,可减少产品缺陷。 过去几年以来,产品与系统在软件方面的功能不断增强,高强度实时要求越来越多。对设计工程师而言,为与竞争对手展开竞赛,争取更快将新产品投向市场,高效系统开发方法成为重中之重,对开发数字信号处理器算法的工程师而言尤为如此。此外,产品开发周期和生命周期不断缩短等因素,也促使工程师和设计经理对开发方法和软件工具进程进行全面重新评估。 产品漏洞会导致
[电源管理]
ARM+DSP、AVR与C51的比较
单片机已经广泛运用于工业自动化控制、自动检测、便携式智能仪器仪表、军事、航空航天、家用电器、智能玩具、电力电子、机电一体化设备等领域,使得各类产品无论从功能,还是从精度以及其产品的质量方面都大幅度的提升,同时,设计的电路很简单、可靠性非常高、发生的故障次数较低、成本低廉等。单片机种类很多,本论文只针对ARM+DSP、 AVR和C51单片机的特点,从不同的侧面进行了比较和阐述。 1 单片机的介绍 单片微型计算机(Single-Chip Micmprocessor)是微型计算机(Microcomputer,简称微机)的一个重要分支。单片微型计算机简称单片机,特别适用于工业控制领域,因此又称为微控制器(Microcontrolle
[单片机]
新款NI LabVIEW工具包可自动测试软件
      2009年2月,美国国家仪器有限公司近日推出了新的LabVIEW图形化开发环境的软件工程工具——LabVIEW单元测试工具包(LabVIEW Unit Test Framework)和LabVIEW桌面执行追踪工具包(LabVIEW Desktop Execution Trace toolkits)。它们与新推出的NI 需求管理软件(NI Requirements Gateway 1.1)在功能上是完全一致的。这使得工程师们在利用LabVIEW软件开发大型或复杂应用时,可以利用这些工具包有效验证系统,并根据需求改进软件性能和测试编码。       软件调试和测试对于开发人员来说是一个复杂、昂贵且耗时的工作。随着软件
[测试测量]
谭军:投资音频处理软件提升中国音响价值
ARM前中国区总裁 谭军 博士离开电子行业和专业媒体视线有一段时间了。上周收到老友Richard发来的消息,说谭军将会主持一个媒体发布会,特别邀请我和另外同位深圳的媒体同行朋友参加。在谭军离开ARM之后的时间里,我们一直在讨论,曾经特别辉煌的谭军,他的职业下一站将会是什么。当然,几乎很肯定和统一的声音是,他很可能成为一个老板。 今天上午9点,在深圳中心区一个酒店的商务房中,我们见到了谭军。熟悉的面孔,熟悉的笑容,在老友式的握手之后,谭军介绍了两位外国朋友。 “这位是Chris Vernon,Sontia公司的创始人和首席执行官。是位名符其实的70后,79年生人。”谭军介绍的Chris,分明就是一位艺术家,
[模拟电子]
谭军:投资音频处理软件提升中国音响价值
基于SOPC的M8051嵌入式调试器设计
引言 在嵌入式系统开发过程中,上位机通过调试器完成对目标机软件的开发、下载、调试。早期的调试器与上位机之间通过串口或并口通信,存在速度慢、通用性差等缺陷。相比之下,USB接口优势明显,具备速度快、易插拔、支持多个调试器同时工作等优势。但目前的USB接口调试器一般采用USB芯片和可编程器件结合的实现方式,成本和复杂度较高。 M8051是Mentor公司的嵌入式8051处理器,凭借良好的性能和功耗控制,占据了大量的SoC(System on a Chip)市场。该处理器集成了OCI(On-Chip Instrumentation,片上调试单元)来完成程序的调试。FS2公司设计的System Navigator是一款针对M805
[单片机]
基于SOPC的M8051嵌入式<font color='red'>调试</font>器设计
单片DSP处理器功能系统的SOPC技术设计
   摘要 结合Altera公司推出的Nios II嵌入式软核处理器,提出一种具有常规DSP处理器功能的NiosII系统SOPC解决方案;利用NiosII可自定叉指令的特点,通过Matlab和DSP Builder或直接用VHDL设计并生成复数乘法器、整数乘法器和浮点乘法器等硬件模块,将它们定制为相应的指令,从而将软件的灵活性和硬件的高速性结合起来,较好地解决了传统DSP处理器所面临的速度问题、硬件结构不可重构性问题、开发升级周期长和不可移植性等问题。   随着微电子技术和计算机工具软件的发展,可编程片上系统SOPC的设计理念和设计方法成为了一种趋势。为了解决传统DSP处理器所面临的速度问题、硬件结构不可重构性问题、开发升级周期
[嵌入式]
兆驰半导体新进Unimax设备经调试产出外延片成功点亮,Mini LED扩产提速
江西兆驰半导体有限公司消息显示,5月27日,该公司新进Unimax设备经调试产出外延片成功点亮,标志着兆驰半导体扩产计划顺利进行,Mini LED扩产提速。 据悉,自签约以来,兆驰半导体扩产计划进展顺利,首批设备于上月进厂调试,5月27日正式点亮。经此项验证,后续设备将开始分批交货进厂,同时与之配套的平片、PSS及芯片设备也将按计划扩产。 官方消息显示,此前公布的100万片产能,预计将在2023年第一季度达成。 本轮扩产所选购的Unimax外延设备是国内领先的外延MOCVD设备,在波长均一性方面表现优秀,为外延片参数更好地匹配Mini/Micro LED新型显示芯片工艺需求做好充分准备,同时具备更稳定的量产性能。
[手机便携]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved