基于Matlab7.0的DSP调试
通过Matlab7.0中的CCSLink与CCS3.3软件连接,实现对DSP程序的调试。
CCSLink的主要特点:在MATLAB环境下完成对DSP器件的调试、数据传递和验证;在MATLAB与DSP之间实现数据实时传递;支持XDS510和XDS560仿真器;提供嵌入式对象,可以访问C/C++变量。
具体步骤如下:
一、前提
1、以DSPTMS320F2812为例;
2、DSP工程文件名为LED.pjt,路径为:D:\MATLAB7\Myproject\LED,注:此工程文件的路径必须在MATLAB7这个文件路径之下,否则将会出错;
二、检查MATLAB中是否安装CCSLink
在MATLAB环境下输入命令:help ccslink。
若CCSLink安装成功,则会显示产品信息及进行CCS和RTDX操作的函数列表:
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg
若MATLAB不能返回信息,则表明CCSLink未安装成功,需要重新安装。
三、配置CCS3.3
打开CCS配置的快捷方式file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg,配置成如下图所示两种DSP系统,其中XDS510 Emulator是通过硬件仿真器进行连接仿真;而Device Simulator为软件仿真。
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg
四、CCSLink对象的建立
CCSLink提供了两种选择DSP目标的工具:ccssboardinfo函数和boardprosel图形用户界面,用户可以根据返回值和自己需求选择相应的对象。此处以图形用户界面为例,运行[boardNum,procNum] = boardprocsel,则MATLAB通过对CCS配置的自动检测,出现图二所示的目标选择界面。本次选择F2812 XDS510 Emulator并点击Done,则可以在命令窗口看到板卡编号和处理器编号:boardNum = 1,procNum =0。
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg
利用ccsdsp函数确立一个DSP对象,ccsdsp以板卡编号和处理器编号为参数,并在建立链接对象后返回其他属性,如处理器型号、处理器名称等。例如,运行cc=ccsdsp('boardnum',boardNum,'procnum',procNum),则建立起一个CCS对象的句柄cc。从而可以通过cc,在MATLAB下实现对CCS的操作并控制DSP芯片,如下图所示。
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
五、CCSLink调试DSP代码实例
1、加载DSP目标板
在MATLAB环境执行一下代码:
(1)projfile=fullfile(matlabroot,'Myproject','LED','LED.pjt')%选择工程文件,一步一步写清楚其路径,此文件必须在MATLAB7这个文件下
执行完后,显示:
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
(2)projpath=fileparts(projfile)%指定工程文件路径
执行完后,显示:
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
(3)open(cc,projfile)%打开工程文件
执行完后,CCS软件在后台运行,电脑右下角显示file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg。
(4)visible(cc,1)%使CCS IDE前台可见
执行完后,CCS主界面被打开;此时,软件还未与DSP硬件进行连接,所以此时应该手动连接DSP硬件系统。
(5)cd(cc,projpath)%改变MATLAB工作路径
(6)build(cc,'all',60)%编译工程
(7)load(cc,'LED.out',30)%加载可执行文件
注:在执行最后一句时,应将工程文件Debug中的LED.out文件,复制粘贴到LED文件下,否则系统无法找到LED.out文件。
2、利用CCSLink连接调试访问DSP内存
在编译并加载.out文件后,可以直接由CCSLink读取,目标符号并获取变量在DSP内存中的地址。
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image017.jpg
同样可以通过regread和regwrite来对CPU寄存器进行读写操作。如:
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image019.jpg
3、利用CCSLink嵌入式对象调试访问DSP内存
file:///C:/Users/GANGZI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image021.jpg