实验一软件仿真
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验软件仿真实验
一. 实验目的
1.熟悉CCS软件的操作环境和基本操作方法,主要是
●工程的创建、编译、链接。
●程序的加载和调试。
●寄存器、存储器和变量的观察。
2. 掌握断点的概念和使用。
3. 图形功能的使用。
二.实验设备
PC兼容机一台;操作系统为Windows2000 (或WindowsNT、Windows98、WindowsXP,以下假定操作系统为Windows2000);安装有CCS4.2软件。
D:\ C55xEx\ex1_ccs-basis下预给3个文件:volume.h,volume.c,volume.cmd。
三.实验原理
CCS是TI公司TMS320系列DSP的集成软件开发平台,它提供了一整套的程序编辑、编译、链接和调试环境,能将汇编语言或/和C语言程序编译链接、生成COFF (公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。
CCS软件版本目前已发展到4.2版,本实验采用CCS4.2软件。
CCS软件有两种基本模式,即Simulator和Emulator,Simulator为纯软件仿真模式,不需要DSP目标板和硬件仿真器的支持。本实验在Simulator模式下进行。
主要运用程序如下:
#include "volume.h"
int inp_buffer[BUF_SIZE]; // 输入缓冲区
int out_buffer[BUF_SIZE]; // 输出缓
// BUF_SIZE的定义见volume.h
int *input;
int *output;
int volume = 2;
int read_signals(int *input);
int write_buffer(int *input,int *output,int count);
int output_signals(int *output);
main()
{
int num = BUF_SIZE;
int i;
i=0;
input=inp_buffer;
output=out_buffer;
while ( TRUE )
{
read_signals(inp_buffer); // 加软件断点和探针
write_buffer(inp_buffer, out_buffer, num);
output_signals(output);
i++;
}
}
int read_signals(int *input)
{
return(TRUE);
}
int write_buffer(int *input,int *output,int count)
{
int i;
for ( i=0;i output[i]=input[i]*volume; //将输入数据放大volume倍放到输出缓冲区 return(TRUE); } int output_signals(int *output) { return(TRUE); } 四.实验步骤 1.实验准备 -启动Code Composer Studio : 双击桌面图标启动CCS。 Debug视图: 2.创建工程: ⑴创建新的工程文件: 选择菜单“File”中“New…”菜单项。 弹出下图,按编号顺序操作建立volume.pjt工程文件: 选中Use default location ,将把新建出现工程建立在默认位置,取消选中,则可以将新建工程建立其他目录下(CCS首次启动时设置默认路径为D:\C55xEx\,可通过执行菜单“File”中“Switch Workspace…”菜单项进行修改)。 ⑵设置Code Composer Studio v4在软件仿真(Simulator)方式下运行, 右键单击项目名称或选择菜单“Target”中“New Target Configuration…”菜单项; 出现如下对话框: 在“New Target Configuration”对话框File name栏中xml。单击Finish,出现对话框: 在Connection栏中选中“Texas Instruments Simulator”,Device栏输入5509a,在列表中选中C55X Rev2.x CPU Functional Simulator,单击Save保存。 ⑶在工程文件中添加程序文件: 打开D:\C55xEx\ex1_ccs-basis\source文件夹,选择显示出来的文件“volum.c” “volume.cmd”、“volume.h”,复制到volume工程所在文件夹中。 ⑶编译链接工程: -选择菜单“Project”中“Build Active Project”菜单项,或单击按钮;注意编译过程中CCS主窗口下部的“Problems”提示窗中显示编译信息,最后将给出错误和警告的统计数。 -执行菜单“Target”中“Debug Active Project”菜单项或者单击图标,系统 自动进入Debug模式。 3.编辑修改工程中的文件: ⑴查看工程文件: 展开CCS主窗口左侧工程管理窗中的工程各分支,可以看到“volume”工程中包含“volume.h”、“volume.c”、“xml”和“volume.cmd”文件。 ⑵编辑修改源文件及编译程序: 打开“volume.c”,找到“main()”主函数,将语句“input=inp_buffer;”最后的分号去掉,这样程序中就出现了一个语法错误;重新编译连接工程,可以发现编译信息窗口出现发现错误的提示;双击红色错误提示,CCS自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加上);重新编译;注意,重新编译时修改过的文件被CCS 自动保存。 4.基本调试功能: ⑴下载程序:执行菜单“Target”中“Load Program….”菜单项,在随后打开的对话 框中Program File栏选择D:\C55xEx\volume\Debug\volume.Out文件,单击OK,完成下载。 ⑵设置软件调试断点:在项目浏览窗口中,双击volume.c激活这个文件,移动光标到 main()行上,单击鼠标右键选择“Toggle Breakpoint”(另外,双击此行左边的灰色控制条也可以设置或删除断点标记)。 ⑶利用断点调试程序:选择“Debug”对话框按钮或按F8运行程序,程序会自 动停在main()函数断点处。 ①执行按单步运行,“Debug”对话框按钮,或者快捷键F5执行read_signals()函数。 ②再按F5,程序将转到read_signals()内部运行。 ③执行到当前光标处,执行菜单“Target”中“Run to line”菜单项或者快捷键Ctrl+R 实现。 ④再次执行到read_signals()一行,按F6执行程序,对比与F5执行的不同。 提示:在执行C语言的程序时,为了快速的运行到主函数调试自己的代码,可以执行菜单“Target” 中“Go to main”菜单项。 5.使用观察窗口: ⑴执行菜单“View”中“Watch”菜单项,打开观察窗口。 ⑵在volume.c中,选中变量num,单击鼠标右键,选择“Add Watch Expression”,CCS 将把变量添加到观察窗口并显示选中的变量值。 ⑶在观察窗口中双击变量,则可以在这个窗口中改变变量的值。 6.断点的使用与文件输入/输出: CCS4的断点允许用户在指定位置提取/注入数据。断点可以设置在程序的任何位置,并且可以进行的设置,当程序运行到断点时,与断点相关的事件将会被触发。事件结束后程序会继续执行。本程序中断点触发的事件是:将PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。 ⑴在程序行read_signals(input)上设置软件断点。 ⑵按照下面所示步骤操作,把PC机硬盘上存储的数据文件sin2.dat读入内存变量inp_buffer。