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

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

C语言的输入输出语句
• • • • puts函数 printf函数 scanf函数 getchar函数
Watch窗口的应用
• 菜单View → Watch Window命令 • 在Watch窗口中,可以察看并修改全局变 量的值
图形分析窗口
• CCS提供一个信号图形分析工具,可以对 输入输出信号进行直观的图形显示,是开 发通信、信号处理、图像处理等DSP程序 时常用的分析工具。 菜单View → graph 命令 时频图形分析工具(Time/Frequency) 星座图分析工具(Constellation) 眼图(Eye Diagram) 图像分析(Image)
② 编译、链接工程,将生成的out文件下载进入开 发平台 ③ 加入探测点,用于运行程序时在该探测点处进 行File I/O工作 ④ 调用菜单File → File I/O命令,
文件输入(File Input) 文件输出(File Output)
⑤ 设置断点 ⑥ 运行程序观看运行结果
① Run命令 ② Animate命令
检测目标DSP是否正在运行 检测CCS集成开发环境是否打开 检测指定存储块是否可写 返回变量、函数、数据类型或工程的信息 下载指定可执行文件到目标DSP 在CCS创建一个新文件 在CCS中打开指定文件 在当前目标程序执行中获取DSP/BIOS统计信息 从DSP的存储空间获取一组连续数据 返回指定DSP寄存器值 向DSP寄存器写入指定的值 重新下载DSP中最近下载的可执行文件爱你 从CCS当前活动工程中移除指定文件 对DSP目标板进行软件复位 从DSP中下载的可执行文件的入口点重新运行目标程序. 运行DSP中下载的可执行文件 保存CCS中指定文件 读取目标DSP的整个符号表. 设置CCS窗口可见 向目标DSP的指定存储空间写入数据
剖析会话
• 选择菜单Profiler → Starting New Session菜单项,弹出对话框中输入会话的 名称按OK键
• • • • •
统计信息列表 剖析工具栏 剖析函数方法 剖析连续程序代码区域 剖析不连续的代码区域
通用扩展语言(GEL)
• GEL通用扩展语言是一种与C语言相似的解释性 语言,其编写的GEL文件(扩展名为gel)以GEL 函数为基本单元,主要用于自动测试、客户化工 作区等应用 • 用户可以自定义GEL文件来扩展CCS集成开发环 境的功能 • 可以利用GEL文件访问开发平台的存储空间 • 可以向CCS的GEL菜单添加菜单项,方便程序调 试。
可选的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集成开发环境的调试功能。

② ③ ④


在程序中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; }
#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; }
③ 观察时钟
选择菜单Profiler → View Clock菜单项,将弹出时 钟观察窗口,显示数字为当前时钟计数值 利用Watch窗口观察CLK变量值
剖析时钟的精确方法
• 剖析误差的引入
– 如流水线清空引入的误差、丢失流水线冲突等。
• 在剖析时钟设置中设置Pipeline Adjustment项参数不能完全补偿上述测量 误差 • 利用剖析时钟计数如何比较精确的剖析A点 到B点的指令周期?
动画运行当前目标程序
对CCS中当前活动工程进行编译链接 改变当前工作路径 为操作的目标芯片中的变量或数据创建一个对象 删除CCS中的一个断点 显示CCS当前的工作路径 显示CCS对象属性 显示一个CCS对象 执行目标程序到一个函数的入口
halt
info insert isreadable isrtdxcapable
• • • • •
File I/O应用
• CCS允许读取数据文件信息输入到开发平台的指 定存储空间。反之,也可以读取开发平台中的内 容写入到计算机的一个文件中,调用菜单File → File I/O命令可以实现这些操作 • File I/O命令需要有探测点配合,当程序运行到探 测点时会暂停,执行和探测点绑定在一起的File I/O命令,然后程序将自动向下运行 • 非实时性
第四章 DSP程序的调试与分析
(3学时)
主要内容
• DSP程序基本调试方法
• DSP程序输入输出分析
• RTDX技术 • MATLAB Link for Code Composer Studio应用 • 代码执行时间分析 • GEL的应用
DSP程序基本调试方法
• • • • • 诊断信息形式 编译警告和错误及其解决方法 链接警告和错误及其解决方法 CCS的常用调试工具 CCS的常用调试命令
常用调试命令
• • • • • • • Run to Cursor菜单项或按钮 Step Into菜单项或按钮 Step Over菜单项或按钮 Sept Out菜单项或按钮 Run命令或按钮 Halt命令或按钮 Animate命令或按钮
DSP程序输入输出分析
• • • • • C语言的输入输出语句 Watch窗口的应用 图形分析窗口 File I/O应用 数据的下载与保存(Data Load/Save)
CCS Link提供的函数
ccsdsp
add activate address
创建一个CCS集成开发环境对象,简称CCS对象
向CCS中当前工程加入指定文件 激活CCS中指定文件成为当前文件 返回指定目标符号的地址
animate
build cd createobj delete dir disp display goto
打开目标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文件,刷新图形显示窗口,显 示效果
RTDX技术
• RTDX,Real Time Data Exchange DSP COM DSP程序执行的前提下,实现计 RTD JTAG • 在不打断 主机 RTDX RTDX 程序 X应 接口 客户应用程 接口 主机库 目标库 算机和开发平台之间的实时数据交换 用程 序 序接 CCS 口 • RTDX技术数据流
rtdx
close configure disable
用于创建一个RTDX对象
用于关闭目标DSP的指定RTDX通道 用于配置RTDX通道缓冲区的数量和大小 禁用RTDX接口或指定的RTDX通道
disp
display enable flush
显示RTDX对象通道属性
显示RTDX对象 使能RTDX接口或指定的RTDX通道 清空指定RTDX通道缓冲区数据
File I/O应用步骤
① 准备用于测试的输入数据,存储为CCS的File I/O支持 的格式 支持两种文件格式:COFF二进制文件格式和CCS文 本数据文件格式。 CCS文本数据文件的文件头,该文件头采用语法为 “Magic Number、Format、Starting Address、 Page Num、Length”
info
isenabled isreadable iswritable
返回RTDX通道的字符串名称
检查RTDX或RTDX通道是否使能 检查指定RTDX通道是否可读 检查指定RTDX通道是否可写
msgcount
open readmat readmsg
获取指定的用于matlab读取数据的RTDX通道消息数量
数据的下载与保存(Data Load/Save)
• 调用菜单File → Data → Load命令,下载 CCS支持的数据文件进入开发平台的存储 空间
数据的下载与保存(Data Load/Save)
• 调用菜单File → Data → Save命令,准备 把开发平台存储空间中的数据存储进入到 CCS的数据文件中
剖析方法
• 时钟剖析 • 剖析会话
时钟剖析
① 时钟设置
– 选择菜单Profiler → Clock Setup菜单项
② 使能时钟
选择菜单Profiler → Enable Clock菜单项,将在该 菜单项前标记“√”,表示剖析时钟使能,再次选择 该项命令可以清除标记“√”,禁止剖析时钟,默认 情况下禁止使用剖析时钟
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++;
}Fra Baidu bibliotek
}
call_data_rect(Num) { int i,k=0; for(i=0; i<Num;i++)
诊断信息形式
• • 示例:"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:诊断消息,即问题的描述。
立刻暂停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


编译警告和错误及其解决方法
链接警告和错误及其解决方法
CCS的常用调试工具
• Breakpoints :断点
– 当DSP程序执行到断点时,将暂停运行
• Probe Points:探测点
– 当程序运行到探测点时暂停,可以将主机文件 的数据输入到目标DSP的存储器,或将目标 DSP的数据读取到主机上的文件中,然后自动 继续向下运行DSP程序。
相关文档
最新文档