




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于MATLAB 的DSP 调试方法时间:2009-06-02 来源: 作者:刘瑞华 潘建军 点击:755 字体大小:【大 中 小】 MATLAB 具有强大的分析、计算和可视化功能,利用MATLAB 提供的数十个专业工具箱,可以方便、灵活地实现对自动控制、信号处理、通信系统等的算法分析和仿真,是算法设计人员和工程技术人员必不可少的软件工具。 数字信号处理器(DSP)作为一种可编程专用芯片,是数字信号处理理论实用化过程的重要技术工具,在语音处理、图像处理等技术领域得到了广泛的应用。但对于算法设计人员来讲,利用汇编语言或C 语言进行DSP 功能开发,对于具有周期长、效率低的缺点,不利于算法验证和产
2、品的快速开发。 由MathWorks 公司和TI 公司联合开发的MATLAB Link for CCS Development Tools(简称CCSLink)是MATLAB6.5 版本(Release13)中增加的一个全新的工具箱,它提供了MATLAB、CCS 和DSP 目标板的接口,利用此工具可以像操作MATLAB变量一样来操作DSP 器件的存储器和寄存器,使开发人员在MATLAB 环境下完成对DSP 的操作,从而极大地提高DSP 应用系统的开发进程。 本文结合具体例证,介绍基于MATLAB 的DSP 应用程序调试方法。1 CCSLink 初步 CCSLink 工具通过双向连接将MATLA
3、B、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 能识别的所有
4、板卡及硬件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)Versio
5、n 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,则MA
6、TLAB 通过对CCS 配置的自动检测,出现图2 所示的目标选择界面。本文根据需要选择硬件仿真器C54xxXDS510Emulator 并点击Done,则可返回板卡编号和处理器编号:boardNum=1,procNum=0。 图2 CCSLink对象选择 利用ccsdsp 函数可以确立一个DSP 对象。ccsdsp 以板卡编号和处理器编号为参数,并在建立链接对象后返回其它属性,如处理器型号、处理器名称等。例如,运行cc=ccsdsp('boardnum',boardNum, 'procnum', procNum),则建立起一个CCS IDE 对象的句柄cc。从而
7、可以通过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&
8、#39;)%选择工程文件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 下已经完成了对
9、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','te
10、xt')%在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)%暂停CPUrestart(cc) %继续与CCS 保持联系run(cc,'runtohalt',20)%DSP 程序执行到断点ddatV =
11、 read(cc,address(cc,'ddat'),'single',4) %(1)读取C 代码初始化数据ddatidatV = read(cc,address(cc,'idat'),'int16',4) %(2)读取C代码初始化数据idatwrite(cc,address(cc,'ddat'),single(pi, 12.3, exp(-1), sin(pi/4) % (3)修改DSP 内存中的数据ddatwrite(cc,address(cc,'idat'),int16(1:4)% (4)修
12、改DSP 内存中的数据idatrun(cc,'runtohalt',20) %从断点处继续执行ddatV = read(cc,address(cc,'ddat'),'single',4)% (5)读取修改后的数据ddatidatV = 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)两语句,在M
13、ATLAB 中获得了这两个变量的值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') % 按二进制补码方式读取ALregread(cc,'TR
14、N','binary') % 按无符号二进制数读取TRNregwrite(cc,'AH','FFFF','binary') % 按无符号二进制数读写AH3.3 利用CCSLink 嵌入式对象调试访问DSP 内存 利用MATLAB 的面向对象编程技术和CSLink,可以为目标程序中的所有C 符号创建嵌入式对象,并通过对象来操作该C 符号。 仍以上述程序为例,首先复位DSP,并创建一个嵌入式对象:restart(cc) % 复位程序,使PC 指向程序入口处goto(cc,'main') %将PC 定位到C 主程
15、序入口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 个元素修改为7001set(cvar,'size',2)%(10)将对象减小到2 个元素 语句(8)将指向idat 的嵌入式数组cvar 读入MATLAB,
16、在语句(9)中对其第4 个元素进行了修改,而在语句(10)中对数组的大小进行了改变。 通过CCSLink,不仅可以为数组变量创建对象,而且也可以为结构体变量创建对象并进行相应的操作,如:cvar = createobj(cc,'myStruct')%创建指向C 结构体的MATLAB 对象write(cvar,'iz', 'Simulink') %修改结构体的字符串iz 域为Simulinkcstring = getmember(cvar,'iz')%读取该域到MATLABwrite(cstring,1,'s')%该
17、写字符串的首字符readnumeric(cstring)%按数值方式读取字符串 上述5 条语句,均通过MATLAB 环境下的对象cvar,实现了对DSP 的C 语言程序中结构体变量myStruct 的读写操作和修改,具有很大的方便性。 通过CCSlink,无论对CCS IDE 建立了连接对象还是嵌入式对象,均可在MATLAB 环境下进行操作,达到了DSP 内部各种变量的读写和修改,并进行相关的调试过程,具有很大的方便性。对于上述示例所有的操作执行结果,均可以在MATLAB和CCS IDE 环境下进行观测和验证。4 结束语 本文简要讨论了基于MATLAB 的DSP 程序调试方法,描述了CCSLi
18、nk 与CCS IDE 的基本概念,介绍了建立CCS 对象的过程,并以MATLAB 提供的实际工程文件为例,演示了利用CCSLink 连接和嵌入式对象进行C 变量操作的实际过程,并对其执行过程和结果进行了简要解释。 应该说明的是,MATLAB提供了大量的进行DSP程序调试的函数,本文只涉及到了其中极少的一部分。要充分利用MATLAB的强大功能进行更深层次的DSP程序调试,应进一步参考MathWorks公司提供的技术资料MATLAB Link for Code Composer Studio Development Tools。Tags:DSP Matlab 上一篇:在Nexar上实现基于RTO
19、S51的嵌入式系统下一篇:如何搭建Xilinx FPGA开发环境·定点DSP与浮点DSP的比较·LabVIEW 和Matlab混合编程综述·数学工具常见问题集·MATLAB语言与自动控制系统设计·利用TL16C750实现DSP与PC机的高速串行通信·基于DSP的蓝牙(Bluetooth)嵌入式系统应用·CCS中如何看程序运行的时钟周期·ADSP2189M在船舶自动识别系统开发中的应用推荐文章· Proteus 与单片机实时动态仿真· 基于FPGA/CPLD设计与实现UART(VHDL· 基于VHDL 的全数字锁相环的设计· 如何仿真IP核(建立modelsim仿真库· Modelsim 包会教程· IIR滤波器matlab源程序· 使用 FPGA 控制 VGA 显示· Nios I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年多式联运信息平台协同物流与智慧物流企业战略目标实现路径与策略报告
- 燃气检修考试题及答案
- 酒水保密协议合同模板
- 美发顾客入股合同范本
- 美发店长合同范本模板
- 资金占用借款合同范本
- 车辆回收改造合同范本
- 维修钢网订制合同范本
- 自建土地转让合同范本
- 饭店协议合同模板模板
- 旅游服务安全知识培训课件
- 公司章程制定合同协议书范本模板
- 2024人教PEP版三年级英语上册全册教案
- 中国慢性胃炎诊治指南(2022年)解读
- 立体车库应急预案范文
- 体彩专管员专业知识培训课件
- 严重腹部创伤院内救治专家共识(2024)解读
- 房内走廊改造方案(3篇)
- 瓶颈材料管理办法
- 股浅动脉栓塞个案护理
- 新业态新领域安全生产监管
评论
0/150
提交评论