基于MATLAB 的DSP 调试方法

上传人:飞*** 文档编号:40689991 上传时间:2018-05-27 格式:DOC 页数:5 大小:82.50KB
返回 下载 相关 举报
基于MATLAB 的DSP 调试方法_第1页
第1页 / 共5页
基于MATLAB 的DSP 调试方法_第2页
第2页 / 共5页
基于MATLAB 的DSP 调试方法_第3页
第3页 / 共5页
基于MATLAB 的DSP 调试方法_第4页
第4页 / 共5页
基于MATLAB 的DSP 调试方法_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于MATLAB 的DSP 调试方法》由会员分享,可在线阅读,更多相关《基于MATLAB 的DSP 调试方法(5页珍藏版)》请在金锄头文库上搜索。

1、基于基于MATLAB 的的DSP 调试方法调试方法MATLAB 具有强大的分析、计算和可视化功能,利用MATLAB 提供的数十个专业工具箱, 可以方便、灵活地实现对自动控制、信号处理、通信系统等的算法分析和仿真,是算法设计人 员和工程技术人员必不可少的软件工具。数字信号处理器(DSP)作为一种可编程专用芯片,是数字信号处理理论实用化过程的重要 技术工具,在语音处理、图像处理等技术领域得到了广泛的应用。但对于算法设计人员来讲, 利用汇编语言或C 语言进行DSP 功能开发,对于具有周期长、效率低的缺点,不利于算法验 证和产品的快速开发。由MathWorks 公司和TI 公司联合开发的MATLAB

2、Link for CCS Development Tools(简称 CCSLink)是MATLAB6.5 版本(Release13)中增加的一个全新的工具箱,它提供了 MATLAB、CCS 和DSP 目标板的接口,利用此工具可以像操作MATLAB变量一样来操作DSP 器件的存储器和寄存器,使开发人员在MATLAB 环境下完成对DSP 的操作,从而极大地提高 DSP 应用系统的开发进程。本文结合具体例证,介绍基于MATLAB 的DSP 应用程序调试方法。1 CCSLink 初步初步CCSLink 工具通过双向连接将MATLAB、CCS 和DSP 目标板联系起来,允许开发者利 用MATLAB 强大

3、的可视化、数据处理和分析函数对来自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

4、及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

5、不能返回信息,则表明CCSLink 未安装成功,需进行重新安装。2 CCSLink 对象的建立对象的建立在对DSP 进行操作之前,应该首先建立一个DSP 目标。对于配置了多DSP 系统的用户, CCSLink 提供了两种选择DSP目标的工具:ccsboardinfo 函数和boardprosel 图形用户界面,用 户可以根据返回值和自己需求选择相应的对象。以采用图形用户界面为例,若配置有XDS510 Emulator 和C5416 Simulator 二种DSP 系统,运行boardNum,procNum = boardprocsel,则 MATLAB 通过对CCS 配置的自动检测,出现图2

6、所示的目标选择界面。本文根据需要选择硬 件仿真器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 CCS

7、Link 调试调试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)%打开工程文件 vis

8、ible(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 文件后,可以直接

9、由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)%将c

10、cstut.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 代码初始化数据ddatidatV = read(cc,address(cc,idat),int16,4) %(2)读取C代码初始化数据idat write(cc,address(cc,ddat),single(pi, 12.3, exp(-1),

11、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

12、,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

13、(cc,TRN,binary) % 按无符号二进制数读取TRN regwrite(cc,AH,FFFF,binary) % 按无符号二进制数读写AH3.3 利用利用CCSLink 嵌入式对象调试访问嵌入式对象调试访问DSP 内存内存利用MATLAB 的面向对象编程技术和CSLink,可以为目标程序中的所有C 符号创建嵌入 式对象,并通过对象来操作该C 符号。仍以上述程序为例,首先复位DSP,并创建一个嵌入式对象:restart(cc) % 复位程序,使PC 指向程序入口处goto(cc,main) %将PC 定位到C 主程序入口 cvar = createobj(cc,idat) %(7)为操

14、作嵌入式对象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

15、,不仅可以为数组变量创建对象,而且也可以为结构体变量创建对象并进行 相应的操作,如:cvar = createobj(cc,myStruct)%创建指向C 结构体的MATLAB 对象write(cvar,iz, Simulink) %修改结构体的字符串iz 域为Simulink cstring = getmember(cvar,iz)%读取该域到MATLABwrite(cstring,1,s)%该写字符串的首字符 readnumeric(cstring)%按数值方式读取字符串上述5 条语句,均通过MATLAB 环境下的对象cvar,实现了对DSP 的C 语言程序中结构 体变量myStruct

16、的读写操作和修改,具有很大的方便性。通过CCSlink,无论对CCS IDE 建立了连接对象还是嵌入式对象,均可在MATLAB 环境 下进行操作,达到了DSP 内部各种变量的读写和修改,并进行相关的调试过程,具有很大的 方便性。对于上述示例所有的操作执行结果,均可以在MATLAB和CCS IDE 环境下进行观测 和验证。4 结束语结束语本文简要讨论了基于MATLAB 的DSP 程序调试方法,描述了CCSLink 与CCS IDE 的基 本概念,介绍了建立CCS 对象的过程,并以MATLAB 提供的实际工程文件为例,演示了利用 CCSLink 连接和嵌入式对象进行C 变量操作的实际过程,并对其执行过程和结果进行了简要 解释。应该说明的是,MATLAB提供了大量的进行DSP程序调试的函数,本文只涉及到了其中极 少的一部分。要充分利用MATLAB的强大功能进行更 深层次

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号