第4章 DSP程序的调试与分析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

hotmenu gain_reset() { gain=1; }
call_data_delta(Num) { int i,k=0; for(i=0; i<Num;i++){
if(i%4==0)k=!k; in[i]=k*5; k++;
}
}
call_data_rect(Num) { int i,k=0; for(i=0; i<Num;i++)
剖析方法
• 时钟剖析 • 剖析会话
时钟剖析
① 时钟设置
– 选择菜单Profiler → Clock Setup菜单项
② 使能时钟
选择菜单Profiler → Enable Clock菜单项,将在该 菜单项前标记“√”,表示剖析时钟使能,再次选择 该项命令可以清除标记“√”,禁止剖析时钟,默认 情况下禁止使用剖析时钟
C语言的输入输出语句
• • • • puts函数 printf函数 scanf函数 getchar函数
Watch窗口的应用
• 菜单View → Watch Window命令 • 在Watch窗口中,可以察看并修改全局变 量的值
图形分析窗口
• CCS提供一个信号图形分析工具,可以对 输入输出信号进行直观的图形显示,是开 发通信、信号处理、图像处理等DSP程序 时常用的分析工具。 菜单View → graph 命令 时频图形分析工具(Time/Frequency) 星座图分析工具(Constellation) 眼图(Eye Diagram) 图像分析(Image)
立刻暂停DSP芯片运行的目标程序
返回目标DSP芯片信息 在CCS中插入一个断点 检测指定的目标存储块是否可读 检测目标DSP芯片是否支持RTDX
isrunning isvisible iswritable list load new open profile read regread regwrite reload remove reset restart run save symbol visible write
第四章 DSP程序的调试与分析
(3学时)
主要内容
• DSP程序基本调试方法
• DSP程序输入输出分析
• RTDX技术 • MATLAB Link for Code Composer Studio应用 • 代码执行时间分析 • GEL的应用
DSP程序基本调试方法
• • • • • 诊断信息形式 编译警告和错误及其解决方法 链接警告和错误及其解决方法 CCS的常用调试工具 CCS的常用调试命令
File I/O应用步骤
① 准备用于测试的输入数据,存储为CCS的File I/O支持 的格式 支持两种文件格式:COFF二进制文件格式和CCS文 本数据文件格式。 CCS文本数据文件的文件头,该文件头采用语法为 “Magic Number、Format、Starting Address、 Page Num、Length”
② 编译、链接工程,将生成的out文件下载进入开 发平台 ③ 加入探测点,用于运行程序时在该探测点处进 行File I/O工作 ④ 调用菜单File → File I/O命令,
文件输入(File Input) 文件输出(File Output)
⑤ 设置断点 ⑥ 运行程序观看运行结果
① Run命令 ② Animate命令
常用调试命令
• • • • • • • Run to Cursor菜单项或按钮 Step Into菜单项或按钮 Step Over菜单项或按钮 Sept Out菜单项或按钮 Run命令或按钮 Halt命令或按钮 Animate命令或按钮
DSP程序输入输出分析
• • • • • C语言的输入输出语句 Watch窗口的应用 图形分析窗口 File I/O应用 数据的下载与保存(Data Load/Save)
动画运行当前目标程序
对CCS中当前活动工程进行编译链接 改变当前工作路径 为操作的目标芯片中的变量或数据创建一个对象 删除CCS中的一个断点 显示CCS当前的工作路径 显示CCS对象属性 显示一个CCS对象 执行目标程序到一个函数的入口
halt
info insert isreadable isrtdxcapable
可选的Log文件 主机
DSP开发平台
CCS中的RTDX插件
• RTDX配置工具
CCS中的RTDX插件
• RTDX诊断工具
CCS中的RTDX插件
• 输入输出通道观察工具
MATLAB Link for Code Composer Studio应用 • 提供MATLAB函数,可用于自动完成DSP目标程 序的调试、数据通信和验证。 • 在不打断DSP程序执行的情况下,支持MATLAB 和目标DSP之间进行实时交换数据。 • 支持XDS510、XDS560仿真器,可以高速调试 DSP程序。 • 提供嵌入式对象操作函数,用于访问C/C++变量 或数据。 • 扩展CCS集成开发环境的调试功能。
数据的下载与保存(Data Load/Save)
• 调用菜单File → Data → Load命令,下载 CCS支持的数据文件进入开发平台的存储 空间
数据的下载与保存(Data Load/Save)
• 调用菜单File → Data → Save命令,准备 把开发平台存储空间中的数据存储进入到 CCS的数据文件中
剖析会话
• 选择菜单Profiler → Starting New Session菜单项,弹出对话框中输入会话的 名称按OK键
• • • • •
统计信息列表 剖析工具栏 剖析函数方法 剖析连续程序代码区域 剖析不连续的代码区域
通用扩展语言(GEL)
• GEL通用扩展语言是一种与C语言相似的解释性 语言,其编写的GEL文件(扩展名为gel)以GEL 函数为基本单元,主要用于自动测试、客户化工 作区等应用 • 用户可以自定义GEL文件来扩展CCS集成开发环 境的功能 • 可以利用GEL文件访问开发平台的存储空间 • 可以向CCS的GEL菜单添加菜单项,方便程序调 试。
ccslinkccslink提供的函数提供的函数创建一个ccs集成开发环境对象简称ccs对象ccsdspadd向ccs中当前工程加入指定文件activate激活ccs中指定文件成为当前文件address返回指定目标符号的地址animate动画运行当前目标程序build对ccs中当前活动工程进行编译链接cd改变当前工作路径createobj为操作的目标芯片中的变量或数据创建一个对象delete删除ccs中的一个断点dir显示ccs当前的工作路径disp显示ccs对象属性display显示一个ccs对象goto执行目标程序到一个函数的入口halt立刻暂停dsp芯片运行的目标程序info返回目标dsp芯片信息insert在ccs中插入一个断点isreadable检测指定的目标存储块是否可读isrtdxcapable检测目标dsp芯片是否支持rtdxisrunning检测目标dsp是否正在运行isvisible检测ccs集成开发环境是否打开iswritable检测指定存储块是否可写list返回变量函数数据类型或工程的信息load下载指定可执行文件到目标dspnew在ccs创建一个新文件open在ccs中打开指定文件profile在当前目标程序执行中获取dspbios统计信息read从dsp的存储空间获取一组连续数据regreadg返回指定dsp寄存器值返回指定寄存器值regwrite向dsp寄存器写入指定的值reload重新下载dsp中最近下载的可执行文件爱你remove从ccs当前活动工程中移除指定文件reset对dsp目标板进行软件复位restart从dsp中下载的可执行文件的入口点重新运行目标程序
info
isenabled isreadable iswritable
返回RTDX通道的字符串名称
检查RTDX或RTDX通道是否使能 检查指定RTDX通道是否可读 检查指定RTDX通道是否可写
msgcount
open readmat readmsg
获取指定的用于matlab读取数据的RTDX通道消息数量
③ 观察时钟
选择菜单Profiler → View Clock菜单项,将弹出时 钟观察窗口,显示数字为当前时钟计数值 利用Watch窗口观察CLK变量值
剖析时钟的精确方法
• 剖析误差的引入
– 如流水线清空引入的误差、丢失流水线冲突等。
• 在剖析时钟设置中设置Pipeline Adjustment项参数不能完全补偿上述测量 误差 • 利用剖析时钟计数如何比较精确的剖析A点 到B点的指令周期?
#define Num_init 32 menuitem "DFT Control" dialog data_input(parm1 "0 方波 非0 锯齿波",parm2 "Num") { if (parm1==0) call_data_rect(parm2); else call_data_delta(parm2); } slider Gain(0, 10 ,1, 1, gainParm) { gain = gainParm; }
RTDX技术
• RTDX,Real Time Data Exchange DSP COM RTD JTAG • 在不打断DSP程序执行的前提下,实现计 主机 RTDX RTDX 程序 X应 接口 客户应用程 接口 主机库 目标库 算机和开发平台之间的实时数据交换 用程 序 序接 CCS 口 • RTDX技术数据流
诊断信息形式
• • 示例:"dft.c", line n: diagnostic severity: diagnostic message "file.c"是涉及的源文件名,line n指出诊断信息出自源 文件中的第几行。 diagnostic severity:诊断信息严重程度描述 – A fatal error – An error – A warning – A remark diagnostic message:诊断消息,即问题的描述。
• • • • •
File I/O应用
• CCS允许读取数据文件信息输入到开发平台的指 定存储空间。反之,也可以读取开发平台中的内 容写入到计算机的一个文件中,调用菜单File → File I/O命令可以实现这些操作 • File I/O命令需要有探测点配合,当程序运行到探 测点时会暂停,执行和探测点绑定在一起的File I/O命令,然后程序将自动向下运行 • 非实时性


编译警告和错误及其解决方法
链接警告和错误及其解决方法CCS的 Nhomakorabea用调试工具
• Breakpoints :断点
– 当DSP程序执行到断点时,将暂停运行
• Probe Points:探测点
– 当程序运行到探测点时暂停,可以将主机文件 的数据输入到目标DSP的存储器,或将目标 DSP的数据读取到主机上的文件中,然后自动 继续向下运行DSP程序。
检测目标DSP是否正在运行 检测CCS集成开发环境是否打开 检测指定存储块是否可写 返回变量、函数、数据类型或工程的信息 下载指定可执行文件到目标DSP 在CCS创建一个新文件 在CCS中打开指定文件 在当前目标程序执行中获取DSP/BIOS统计信息 从DSP的存储空间获取一组连续数据 返回指定DSP寄存器值 向DSP寄存器写入指定的值 重新下载DSP中最近下载的可执行文件爱你 从CCS当前活动工程中移除指定文件 对DSP目标板进行软件复位 从DSP中下载的可执行文件的入口点重新运行目标程序. 运行DSP中下载的可执行文件 保存CCS中指定文件 读取目标DSP的整个符号表. 设置CCS窗口可见 向目标DSP的指定存储空间写入数据

② ③ ④


在程序中B点后至少4个指令周期处选一点C,在C处设 置一个断点 在A点处设置一个断点,运行程序到该断点处 复位剖析时钟计数,同时移除A点处断点 运行程序,程序在C点处暂停,记录此时的剖析时钟计 数(CLK变量值),该值代表从A点到C点的指令周期, 记作CLK1 在B点设置一个断点,以B点代替A点重复执行第 (2)~(4)步,得到从A点到C点的剖析时钟计数 CLK2,要求剖析时程序运行状态和剖析A点到C点时完 全一样 A点到B点的指令周期数则为,这样将消除C点处程序暂 停时引入的剖析误差
{ if(i%4==0) in[i]=k*5; }
rtdx
close configure disable
用于创建一个RTDX对象
用于关闭目标DSP的指定RTDX通道 用于配置RTDX通道缓冲区的数量和大小 禁用RTDX接口或指定的RTDX通道
disp
display enable flush
显示RTDX对象通道属性
显示RTDX对象 使能RTDX接口或指定的RTDX通道 清空指定RTDX通道缓冲区数据
打开目标DSP的RTDX通道 从指定RTDX通道读取数据存入一个矩阵 从指定RTDX通道读取数据
refresh
writemsg
重新打开所有定义的RTDX通道
向指定的RTDX通道写入数据
利用CCSLink嵌入式对象实现数据的输入输出 ① 参照4.2.4 File I/O应用实例中的第2、3步, 对dft2.pjt进行编译链接,然后下载可执 行的out文件进入开发平台中,运行程序。 ② 设置图形分析工具,采用时频分析类型分 析输入信号in数组、输出信号out数组 ③ 编写Matlab的m文件,内容如图4.16所示, 并运行该m文件,刷新图形显示窗口,显 示效果
CCS Link提供的函数
ccsdsp
add activate address
创建一个CCS集成开发环境对象,简称CCS对象
向CCS中当前工程加入指定文件 激活CCS中指定文件成为当前文件 返回指定目标符号的地址
animate
build cd createobj delete dir disp display goto
相关文档
最新文档