第 5章 DSP集成开发环境 (CCS)
教学要求:
了解 CCS开发环境具有的功能,能够操作 CCS
的窗口,菜单和工具条 。 掌握 CCS工程管理的概念,
能够完成简单程序的编辑,汇编,连接和调试,并掌握探针和显示图形的使用 。
CCS 是 TI 公司 DSP 软件的集成开发环境
( IDE),本章以 CCS2.0为参照讲述 。
第 5章 DSP集成开发环境 (CCS)
5.1 CCS集成开发环境简介
Windows下工作,类似于 VC++的 集成开发环境 ;
采用图形接口界面,有 编辑工具 和 工程管理工具 ;
它将汇编器,链接器,C/C++编译器,建库工具等集成在一个 统一的开发平台 中;
CCS所集成的代码调试工具具有各种 调试功能,能对
TMS320系列 DSP进行 指令级的仿真 和 可视化的实时数据分析 。
丰富的输入 /出库函数和信号处理 库函数 。
C5000 是专门为开发 C5000系列 DSP系统 ( C54x和
C55x) 。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS)
5.1.1,CCS安装及设置
1,CCS 2.0系统的安装
5.1 CCS集成开发环境简介
CCS快捷图标第 5章 DSP集成开发环境 (CCS)
2,系统配置原因,为使 CCS IDE能工作在不同的硬件或仿真目标上步骤,? 双击桌面上的 Setup CCS 2(’C 5000)图标,启动
CCS设置 。
在弹出对话框中单击,Clear”按钮,清除以前定义的配置 。
从列出的可供选择的 配置文件 中,选择能与使用的目标系统相匹配的配置文件 。
单击 加入系统 配置按钮,将所选中的配置文件输入到 CCS设置窗口当前正在创建的系统配置中 。
单击,FileSave(保存 )”按钮,将配置保存在系统寄存器中 。
当完成 CCS配置后,单击,FileExit”按钮,退出
CCS Setup。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS)
3,系统启动双击桌面上 CCS 2(’C 5000)图标,启动 CCS IDE显示
CCS主界面 。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS)
5.1.2,CCS的窗口,菜单和工具条
1,CCS的窗口
工程窗口,用来组织用户的若干程序并由此构成一个项目,用户可以从工程列表中选中需要编辑和调试的特定程序 。
原程序编辑窗口,用户既可以编辑程序,又可以设置断点和探针,并调试程序 。
反汇编窗口,帮助用户查看机器指令,查找错误 。
内存和寄存器显示窗口,查看,编辑内存和寄存器 。
图形显示窗口,可以根据用户需要显示数据 。
主菜单,用户可以通过条目来管理各窗口 。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介寄存器显示窗口工程窗口原程序编辑窗口反汇编窗口图形显示窗口内存单元显示窗口第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
2,CCS的菜单
File 菜单:提供了与文件相关的命令,New,Load 等
Edit菜单:提供了与编辑有关的命令,Register等
View菜单:是否显示工具栏、窗口和各种对话框等 Memory
Project菜单:使用工程管理设计文档,Compile,Biuld …
Debug菜单:提供常用调试命令,Breakpoints Probe Points
Profiler 菜单:剖切点是 CCS在调试程序时,统计某一块程序执行所需要的 CPU时钟周期数、子程序被调用数和中断发生次数等统计信息
Option菜单:提供 CCS的一些设置选项,Font
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
Project菜单 (工程文件被存盘为 *.pjt文件 )
(1) Add Files to Project
工程中支持 C源文件 (*.c*)、汇编源文件 (*.a*,*.s*)、
库文件 (*.o*,*.lib)、头文件 (*.h)和链接命令文件 (*.cmd)
(2) Compile 对 C或汇编源文件进行编译。
(3) Biuld 重新编译和链接。
(4) Rebuiled All 对工程中所有文件重新编译并链接生成输出文件。
(5) Stop Build 停止正在 Build的进程。
(6) Biuld Options 用来设定编译器、汇编器和链接器的参数。
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
3,CCS的工具栏
Standard Toolbar:包括新建、打开、保存、剪切、复制、粘贴、取消、恢复、查找、打印和帮助等
Project Toolbar:包括选择当前工程、编译文件、设置和移去断点 /Probe Point等功能。
Edit Toolbar:提供一些常用的查找和设置标签命令。
GEL Toolbar:提供了执行 GEL函数的一种快捷方法。
ASM/Source Stepping Toolbar:提供了单步调试 C或汇编源程序的方法
Target Control Toolbar:提供了目标程序控制的一些工具
Debug Window Toolbar:提供了调试窗口工具第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.3,CCS的 工程管理
CCS对程序采用工程 (Project)的集成管理方法。工程保持并跟踪在生成目标程序或库过程中的所有信息。
1.典型工程文件记录的信息
源程序文件名和目标库;
编译器,汇编器和链接器选项;
头文件;
2.创建和管理工程
工程的创建、打开和关闭( ProjectNew/Open/Close)
使用工程观察窗口(单击工程文件夹、工程名 (*.pjt)和各个文件夹上的,+/-,号即可 )
添加 文件到工程 ( Project→ Add Files to Project )
从 工程中 删除文件( Remove from Project )
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试
( 1)装载可执行程序 File→Load Program
( 2)复位( CCS提供 4种方法)
① Reset DSP,Debug→Reset DSP命令初始化所有 R并停止运行程序 。
② Load Kernel,Lode Kernel 命令重新装入 DSP核
Why? 若用户使用一基于核的调试器 ( 不是 JTAG),则 DSP核应负责主机的通信 。 如果 DSP核被破坏,则设备驱动程序将无法与目标板通信 。
③ Restart,Debug → Restart 命令将 PC恢复到当前载入程序的入口地址,但不执行当前程序 。
④ Go main,Debug → Go main 命令提供了一种快速运行用户应用程序的方法。 (在主程序入口处设置临时断点,然后开始执行。当程序被暂停或遇到一个断点时,临时断点被删除。)
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 3)程序执行方式
① 单步执行操作
单步进入,Debug→Step Into,每操作一次,执行一条指令;
单步执行,Debug→Step Over,每操作一次,执行一条指令 ( 函数,子程序看作一条 ) ;
单步调出,Debug→Step Out,从子程序跳出;
执行到光标处,Debug→ Run to Cursor:程序运行到光标所在语句 。
② 连续运行操作 ( 实时运行 )
运行程序,Debug→Run,从当前 PC所指位置开始执行到结束或断点;
停止程序,Debug→ Halt:暂停程序的执行;
自由运行,Debug→ Run free,全速执行用户程序,忽略所有断点。
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 3)程序执行方式 (续)
③ 断点运行程序
在执行各个命令前应当预先设置好程序断点,每按一次按钮,从当前程序位置执行到所有遇到的第一个断点,… 。
命令,Debug → animate;
断点设置:
探针( probe)断点,CCS在源程序某条语句上设置的一种断点。每个探针断点都有相应的属性(用户设置)用来与一个文件的读 /写相关联。用户程序运行到探针断点所在语句时,自动读入数据或将计算结果输出到某个文件中 。
置断点”按钮采用工程工具条:“设使用对话框;
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 4)存储器、寄存器、变量的操作
① 存储器,拷贝数据块 /填充数据块 /察看 /编辑内存
② 寄存器,显示寄存器 /编辑寄存器
③ 变量,用观察窗口查看变量 /编辑变量
( 5) 数据输入 /输出
① 利用数据读入 /写出功能命令,File→Data(Lode /Save)
用途:偶尔的手工读入 /写出场合
② 利用探针功能,适用于自动调入和输出数据场合 。
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 6) 图形窗口分析数据提供了四类 9种显示功能:每种显示所需的设置参数各不相同 。
① 时频图
② 星座图,信号的相位分布;
③ 眼图,信号码间干扰情况;
④ 图像显示,YUV或 RGB;
成多帧)成一帧,按时间顺序构多帧显示(幅频曲线构频率曲线)相位频率幅度和相位(幅度频率曲线)(幅度复数时间曲线)双曲线图(幅度单
FFT
FFT
FFT
-/-
-F FT/
-/
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
5.2 CCS 应用举例通过本例要介绍的主要内容:
创建一个工程文件
向工程中添加源文件
浏览代码、编译和运行程序
修改 Build选项并更正语法错误
使用断点和 Watch 窗口
使用探针的方法
图形显示的方法。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
1,创建一个工程通过,Project→New”,在工程窗口的 Project下面创建一个
Volume工程 。
2,向工程中添加源文件
( 1) 通过,Project→Add Files to Project”,将 Volume.c添加到工程中 。
(2) 用同样方法将 Vector.asm添加到工程中 。 ( Vector.asm中包含的是将
RESET中断指向 C程序入口 c_int00的汇编指令和其他中断的入口指令 。 如果调试的程序较为复杂,则可在 Vector.asm中定义更多的中断矢量 )
(3) 将 Volume.cmd添加到工程文件中 。 ( 该文件的作用是将段 (Sections)分配到存储器中 )
(4) 将 load.asm添加到工程文件中 。 ( 该文件包含一个简单的汇编循环程序,
被 C程序调用 。 调用时带有一个参数 (argument),执行此程序共需约 1000× argument个指令周期 )
(5) 将,C:\ti\c5400\cgtools\lib”下的 rts.lib加入到工程文件中 。
( 该文件是采用 C语言开发 DSP应用程序的运行支持库函数 )
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码
#include <stdio.h>
#include,volume.h”
/* Global declarations */
int inp_buffer[BUFSIZE]; /* processing data buffers */
int out_buffer[BUFSIZE];
int gain = MINGAIN; /* volume control variable */
unsigned int processingLoad = BASELOAD; /* processing routine load
struct PARMS str = value */
{
2934,
9432,
213,
9432,
&str
};
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续)
/* Functions */
extern void load(unsigned int loadValue);
static int processing(int *input,int *output);
说明,processing函数将输入 buffer中的数与增益相乘,并将结果输出给 buffer,它调用汇编 load例程的参数 processingLoad的值计算指令周期的时间 。
static void dataIO(void);
说明,dataIO函数不执行任何实质操作 。 它没有使用 C代码执行 I/O
操作,而是通过 CCS中的 Probe Point工具,从 PC文件中读取数据到 inp_buffer中,作为 processing函数的输入参数 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续) /* ======== main ======== */
void main()
{
int *input = &inp_buffer[0];
int *output = &out_buffer[0];
puts("volume example started\n");
/* loop forever */
while(TRUE)
{
/* Read input data using a probe-point connected to a host file.
Write output data to a graph connected through a probe-point,*/
dataIO();
#ifdef FILEIO
puts("begin processing") /* deliberate syntax error */
#endif
/* apply gain */
processing(input,output);
}
}
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续) /* ======== processing ========
* FUNCTION,apply signal processing transform to input signal.
*
* PARAMETERS,address of input and output buffers.
*
* RETURN VALUE,TRUE,*/
static int processing(int *input,int *output)
{
int size = BUFSIZE;
while(size--){
*output++ = *input++ * gain;
}
load(processingLoad); /* additional processing load */
return(TRUE);
}
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续)
/*
* ======== dataIO ========
*
* FUNCTION,read input signal and write processed output signal.
*
* PARAMETERS,none.
*
* RETURN VALUE,none.
*/
static void dataIO()
{
/* do data I/O */
return;
}
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
4,编译和运行程序
,Project→Rebuild All”,对工程进行重新编译 。
,File→Load Program”,选 volume.out并打开,将 Build生成的程序加载到 DSP。
,View→Mixed Source/ASM”。 该设置使得 C程序与其汇编结果同时显示 。
,Debug→Go Main”。 使得程序从主程序开始执行 。
,Debug→Run”,可以在 Output窗口看到,begin processing”
信息 。
,Debug →Halt,中止正在执行的程序。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
5,使用断点和 Watch 窗口
(1) 将光标放在,dataIO();”行 。
(2) 单击鼠标右键,在弹出菜单上选 Toggle breakpoint,设置断点 。
(3) 选择,View→Watch Window”,将出现 Watch窗口 。 程序运行时 Watch Window窗口将显示要查看的变量值 。
(4) 选择 Watch1栏 。
(5) 在 Watch1窗口单击图标,在 name栏输入 dataIO。
(6) 选择,Debug→Go Main”。
(7) 选择,Debug→Run”,运行程序,显示出 dataIO是一个函数,
该函数存放的首地址是 0x00001457。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
6,使用探针 ( Probe Point )的方法
Probe Point的用途,有用工具,可从 PC文件中存取数据 。 即
将 PC文件中数据传送到目标板上的 buffer,供算法使用 。
将目标板上 buffer中的输出数据传送到 PC文件中以供分析 。
更新一个窗口,如由数据绘出的 Graph窗口 。
Probe Point与 Breakpoints的异同点:
相同点,都能中断程序的运行
不同点,Probe Point只是暂时中断程序运行,当程序运行到
Probe Point时会更新与之相连的窗口,然后自动继续运行程序
Breakpoints中断程序运行后,将更新所有打开的窗口,且只能用人工的方法恢复程序运行;
Probe Point可与 FILEIO配合,在目标板与 PC文件之间传送数据,Breakpoints则无此功能。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
Probe Point应用举例,
将 PC上文件中的内容作为测试数据传送到目标板 。 同时使用一个断点以便在到达 Probe Point时自动更新所有打开的窗口 。
(1) 将光标放在主函数的 dataIO()行上 。
(2) 单击鼠标右键,在弹出菜单中选择,Toggle Probe Point”,
添加 Probe Point。
(3) 在 File菜单选择,File I/O”,出现 File I/O对话框,在对话框中选择输入 /输出文件 。
(4) 在,File Input”栏中,单击 Add File按钮 。
(5) 在 volume.c文件所在目录选择 sina.dat,并单击打开按钮 。
此时将出现一个控制窗口,可以在运行程序时使用这个窗口来控制数据文件的开始,停止,前进,后退等操作 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
Probe Point应用举例 ( 续 ),
(6) 在 File I/O对话框中,在 Address域填入 inp_buffer,在
length域填入 100,选中 Wrap Around复选框 ( 读取数据的循环特性 )
(7) 单击,Add Probe Point” 按钮,将出现 Break/Probe
Points对话框,选中,Probe Points”栏 。
(8) 在 Probe Point列表中显示,VOLUME.C line 61 --> No
Connection”。 表明该第 61行已经设置 Probe Point,但还没有和 PC文件关联 。
(9) 在 Connect域,单击向下箭头并从列表中选 sine.dat。
(10) 单击 Replace按钮,Probe Point列表框表示 Probe Point
已与 sine.dat文件相关联 。
(11) 单击,确定,按钮,File I/O对话框指示文件连至一个
Probe Point。
(12) 单击,确定,按钮,关闭 File I/O对话框 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
7,使用图形显示的方法
CCS提供很多方法将程序产生的数据图形显示,包括时域 /频域波形显示,星座图,
眼图等 。
下面使用时域 /频域波形显示功能观察上例时域波形 。
(1) 选择
,View→Graph→Time/Frequ
ency(显示 → 图形 → 时域 /频域 )”。弹出 Graph Property
对话框,如右图所示。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
7,使用图形显示的方法(续)
(2) 在 Graph Property对话框中,更改 Graph Title(图形标题 )、
Start Address(起始地址 ),Acquisition BufferSize(采集缓冲区大小 ),DSP Data Type(DSP数据类型 ),Autoscale(自动伸缩属性 )及 Maximum Y-value(最大 Y值 )。
(3) 单击 OK按钮,出现一个显示 inp_buffer波形的图形窗口 。
(4) 在图形窗口中右击,从弹出菜单中选择 Clear Display,清除已显示波形 。
(5) 再次执行,View→ Graph→ Time/Frequency”。
(6) 将 Graph Title修改为 output buffer,Start Address修改为 out_buffer,其他设置不变 。
(7) 单击 OK按钮,出现一个显示 out_buffer波形的图形窗口,
右击从菜单中选择 Clear Display命令,清除已有显示波形 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例动态显示图形举例,
由于 Probe Point不会更新图形显示内容 。 本例将设置一个断点,使图形窗口自动更新 。 使用 Animate命令,使程序到达断点时更新窗口后自动继续运行 。
(1) 在 volume.c窗口,将光标放在 dataIO行上 。
(2) 在该行同时设置一个断点和一个 Probe Point,使程序中断时执行两个操作:传送数据和更新图形显示 。
(3) 在 Debug菜单单击 Animate。 此命令将运行程序,碰到断点后临时中断程序运行,更新窗口显示,然后继续执行程序 (与 Run不同的是,Animate会继续执行程序直到碰到下一个断点 。 只有人为干预时,程序才会真正中止运行 。 可以将 Animate命令理解为一个,运行 → 中断 → 继续,的操作 )。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例动态显示图形举例 ( 续 ),
(5) 每次碰到 Probe Point时,CCS将从 sine.dat文件读取 100
个样值,并将其写至输入缓冲 inp_buffer。 由于 sine.dat文件保存的是 40个采样值的正弦波形数据,因此每个波形包括 2.5个
sin周期波形,如下图所示 。
(6) 选择,Debug→Halt( 调试 → 停止 )”,停止程序运行 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例动态显示图形举例 ( 续 ),
(7)调节增益 ( 使用 Watch功能改变输出增益 )
output++=input++*gain
在 Watch窗口右击,选择,Insert New Expression”。
输入 Gain作为要观察的表达式,单击 OK按钮 。
在 Watch窗口双击 Gain。
在变量编辑窗口将 Gain值由 1改为 10,单击 OK按钮 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
5.3 CCS仿真
TMS320软件仿真器是一个 软件程序,使用主机的处理器和存储器来仿真 TMS320 DSP的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。
在 PC机上,典型的仿真速度为 每秒几百条指令第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真软仿真器的性能
在主机上执行用户的 DSP程序
修改和检查寄存器 /显示和修改数据及程序存储器
外设,CACHE,PIPELINE(流水线 )的时序仿真
设置断点 /单步执行 /产生中断
跟踪 ACC,PC,AR、表达式的值等
对非法操作码和无效数据输入等提供出错信息
执行批处理文件中的命令
文件方式快速存储和调用仿真参数
反汇编
周期计数并显示第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
1,用 Simulator仿真中断
C54x允许用户仿真外部中断信号 INT0~ INT3,并选择中断发生的时钟周期 。
方法:建立一个数据文件,并将其连接到 4个中断引脚中的一个即 INT0~ INT3,或 BIO引脚 。 (注意:时间间隔用 CPU时钟周期函数来表示,
仿真从一个时钟周期开始 )
( 1) 设置输入文件用文本编辑器编辑一个输入文件,列出中断间隔 。 格式:
[clock clock,logic value]rpt {n |EOS}
其中,clock(时钟周期 )是指希望中断发生时的 CPU时钟周期
logic value(逻辑值 )只使用于 BIO引脚 。 必须使用一个值去迫使信号在相应的时钟周期处置高位和置低位 。
rpt {n |EOS}是一个可选参数,代表一个循环修正 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 2) 软件仿真编程建立输入文件后,可使用 CCS提供的 Tools→Pin connect菜单将输入文件与中断脚连接或断开 。
在输入窗口的 Command处根据需要选择输入如下命令 。
① pinc
命令格式,pinc引脚名,文件名 。
功能:将输入文件和引脚相连 。
② pinl
命令格式,pinl。
功能:显示已连接的引脚名和文件的绝对路径名 。
③ pind
命令格式,pind 引脚名 。
功能:结束中断,将文件从引脚上脱开 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 3) 实例
[例 ] Simulator仿真 INT3中断,当中断信号到来时,中断处理子程序完成将一变量存储到数据存储区中,中断信号产生 10次 。
① 编写中断产生文件设置输入文件,列出中断发生间隔 。 在文件 zhongduan.txt 中写入 100(+100)rpt 10之后存盘,此文件与中断的 INT3引脚连接后,系统每隔 100个时钟周期发生一次中断 。
② 将输入文件 zhongduan.txt连接到中断引脚在命令行输入 pinc INT3,zhongduan.txt,将 INT3引脚与
zhongduan.txt文件连接 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 3) 实例 ( 续 )
③ 用汇编语言仿真中断
a) 编写中断向量表;建立中断向量
.sect,vectors”
.space 93*16 ;按中断向量在表中预留一定空间
INT3 NOP ;外部中断 INT3
NOP
NOP
GOTO NT3
NOP
.space 28*16 ; 68h~ 7Fh保留区第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
③ 用汇编语言仿真中断
b) 编写主程序 (注意:对中断有关的寄存器进行初始化 )
.data
a0,word 0,0,0,0,0,0,0,0
.text
.global _main
_main:PMST = #01a0h ;初始化 PMST寄存器
SP=#27FFh ;初始化 SP寄存器
DP=#0
IMR=#100 ;初始化 IMR寄存器
AR1=#a0
a=#9611h
INTM=0 ;开中断
w1,wait ;等待中断信号
NOP
NOP
GOTO w1
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
③ 用汇编语言仿真中断
c)编写中断服务程序 。
NT3:
NOP
NOP
(*AR1+)=a;
NOP
NOP
return_enable
.end
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
2.用 Simulator仿真 I/O接口实现方法,
使用系统提供的 Tools→ Port Connect菜单来连接,脱开 I/O接口;
选择调试命令 。 单击 Tools→ Command Window,系统将弹出对话框,然后在 Command处根据需要选择输入的命令 。
实现步骤,
定义存储器映射方法;
连接 I/O接口;
脱开 I/O接口 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 1) 定义存储器映射方法 ( ma命令 )
命令格式:
ma address,page,length,type
说明,? address 定义一个存储区域的起始地址,此参数可以是一个绝对地址,C表达式,函数名或汇编语言标号 。
page 用来识别存储器类型,0代表程序存储器,1代表数据存储器,2代表 I/O空间 。
length 定义其长度,可以是任何 C表达式 。
type 说明该存储器的读写类型 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 2) 连接 I/O接口 ( mc命令 )
命令格式:
mc portaddress,page,length,flename,fileaccess
说明,? portaddress I/O空间或数据存储器地址 。 此参数可以是一个绝对地址,C表达式,函数名或汇编语言标号 。
Page 用来识别此存储器区域的内容 。 Page= 1,表示该页属于数据存储器 。 Page=2,表示该页属于 I/O空间 。
Length 定义此空间的范围,此参数可以是任何 C表达式 。
Filename 可以为任何文件名 。 从连接口或存储器空间读文件时,文件必须存在,否则 mc命令会失败 。
Fileaccess 识别 I/O和数据存储器的访问特性 ( PR,PW等 ),
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 3) 脱开 I/O端口 ( mi命令 )
命令格式:
mi portaddress,page,{R|W|EX}
说明,? 使用 md命令从存储器映射中消去一个端口之前,必须使用 mi命令脱开该端口 。 mi(memory disconnect)将一个文件从一个 I/O端口脱开 。
命令中的端口地址和页是指要关闭的端口,read/write特性必须与端口连接时的参数 一致 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 4) 实例
[ 例 ] 编写汇编语言源程序从文件 ioread.txt中读取数据
① 定义 I/O端口
ma 0x100,2,0x1,P|R ;定义地址 0x100为输入端口
ma 0x102,2,0x1,P|W ;定义地址 0x102为输出端口
ma 0x103,2,0x1,P|R|W;定义地址 0x103为输入 /输出端口
② 连接 I/O端口
mc 0x100,2,0x1,ioread.txt,R
mc 0x102,2,0x1,iowrite.txt,W
为了验证 I/O端口是否被正确定义,文件是否被正确连接,
在命令窗口使用 ml命令,Simulator将列出 memory以及 I/O端口的配置和所连接的文件名 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 4) 实例 ( 续 )
③ 编写汇编语言源程序从文件中读数据:
(*ar1+)=port(0x100) ; 将端口 0x100所连接文件内容读到 ar1寄存器指定的地址单元 。
port(0x102)=*ar1 ; 将 ar1寄存器所指地址的内容写到端口 0x102连接的文件中 。
④ 脱开 I/O端口
mi 0x100,2,R ; 将 0x100端口所连接的文件 ioread.txt从 I/O端口脱开
mi 0x102,2,W ; 将 0x102端口所连接的文件 iowrite.txt从 I/O端口脱开注意,必须将 I/O端口脱开,数据才能避免丢失 。
第 5章 DSP集成开发环境 (CCS) 5.4 DSP/BIOS简介
5.4 DSP/BIOS简介含义,DSP/BIOS是一个实时操作系统内核 。
用途,应用在需要实时调度和同步的场合 。
特点,?通过使用虚拟仪表,可以实现主机与目标机的信息交换;
DSP/BIOS提供了可抢占线程;
具备硬件抽象和实时分析等功能 。
构成,? DSP/BIOS由一组可拆卸的组件构成,应用时只需将必需的组建加到工程中即可 。
DSP/BIOS配置工具允许通过屏蔽去掉不需要的 DSP/BIOS
特性来优化代码体积和执行 速度 。
第 5章 DSP集成开发环境 (CCS) 5.4 DSP/BIOS简介在 软件开发阶段,DSP/BIOS为实时应用提供底层软件,从而简化实时应用的系统软件设计,节约开发时间 。
更为重要的是,DSP/BIOS的数据获取 (Data Capture),统计
(Statistics)和事件记录功能 (Event Logging)在 软件调试阶段 与主机 CCS内的分析工具 BIOScope配合,可以完成对应用程序的实时探测 (Probe),跟踪 (Trace)和监控 (Monitor)。
与 RTDX技术和 CCS可视化工具相配合,除了可以直接实时显示原始数据 (二维波信号或三维图像 )外,还可以 对原始数据进行处理,进行数据的实时 FFT频谱分析,星座图和眼图处理等 。
第 5章 DSP集成开发环境 (CCS) 5.4 DSP/BIOS简介
DSP/BIOS包括如下工具和功能:
(1) DSP/BIOS配置工具 。 程序开发者可以利用该工具建立和配置 DSP/BIOS目标 。 该工具还可以用来配置存储器,线程优先级和中断处理函数等 。
(2) DSP/BIOS实时分析工具 。 该工具用来测试程序的实时性 。
(3) DSP/BIOS API函数 。 应用程序可以调用超过 150 个
DSP/BIOS API函数 。
DSP/BIOS应用实例参见,DSP技术及应用,5.4.2节
教学要求:
了解 CCS开发环境具有的功能,能够操作 CCS
的窗口,菜单和工具条 。 掌握 CCS工程管理的概念,
能够完成简单程序的编辑,汇编,连接和调试,并掌握探针和显示图形的使用 。
CCS 是 TI 公司 DSP 软件的集成开发环境
( IDE),本章以 CCS2.0为参照讲述 。
第 5章 DSP集成开发环境 (CCS)
5.1 CCS集成开发环境简介
Windows下工作,类似于 VC++的 集成开发环境 ;
采用图形接口界面,有 编辑工具 和 工程管理工具 ;
它将汇编器,链接器,C/C++编译器,建库工具等集成在一个 统一的开发平台 中;
CCS所集成的代码调试工具具有各种 调试功能,能对
TMS320系列 DSP进行 指令级的仿真 和 可视化的实时数据分析 。
丰富的输入 /出库函数和信号处理 库函数 。
C5000 是专门为开发 C5000系列 DSP系统 ( C54x和
C55x) 。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS)
5.1.1,CCS安装及设置
1,CCS 2.0系统的安装
5.1 CCS集成开发环境简介
CCS快捷图标第 5章 DSP集成开发环境 (CCS)
2,系统配置原因,为使 CCS IDE能工作在不同的硬件或仿真目标上步骤,? 双击桌面上的 Setup CCS 2(’C 5000)图标,启动
CCS设置 。
在弹出对话框中单击,Clear”按钮,清除以前定义的配置 。
从列出的可供选择的 配置文件 中,选择能与使用的目标系统相匹配的配置文件 。
单击 加入系统 配置按钮,将所选中的配置文件输入到 CCS设置窗口当前正在创建的系统配置中 。
单击,FileSave(保存 )”按钮,将配置保存在系统寄存器中 。
当完成 CCS配置后,单击,FileExit”按钮,退出
CCS Setup。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS)
3,系统启动双击桌面上 CCS 2(’C 5000)图标,启动 CCS IDE显示
CCS主界面 。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS)
5.1.2,CCS的窗口,菜单和工具条
1,CCS的窗口
工程窗口,用来组织用户的若干程序并由此构成一个项目,用户可以从工程列表中选中需要编辑和调试的特定程序 。
原程序编辑窗口,用户既可以编辑程序,又可以设置断点和探针,并调试程序 。
反汇编窗口,帮助用户查看机器指令,查找错误 。
内存和寄存器显示窗口,查看,编辑内存和寄存器 。
图形显示窗口,可以根据用户需要显示数据 。
主菜单,用户可以通过条目来管理各窗口 。
5.1 CCS集成开发环境简介第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介寄存器显示窗口工程窗口原程序编辑窗口反汇编窗口图形显示窗口内存单元显示窗口第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
2,CCS的菜单
File 菜单:提供了与文件相关的命令,New,Load 等
Edit菜单:提供了与编辑有关的命令,Register等
View菜单:是否显示工具栏、窗口和各种对话框等 Memory
Project菜单:使用工程管理设计文档,Compile,Biuld …
Debug菜单:提供常用调试命令,Breakpoints Probe Points
Profiler 菜单:剖切点是 CCS在调试程序时,统计某一块程序执行所需要的 CPU时钟周期数、子程序被调用数和中断发生次数等统计信息
Option菜单:提供 CCS的一些设置选项,Font
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
Project菜单 (工程文件被存盘为 *.pjt文件 )
(1) Add Files to Project
工程中支持 C源文件 (*.c*)、汇编源文件 (*.a*,*.s*)、
库文件 (*.o*,*.lib)、头文件 (*.h)和链接命令文件 (*.cmd)
(2) Compile 对 C或汇编源文件进行编译。
(3) Biuld 重新编译和链接。
(4) Rebuiled All 对工程中所有文件重新编译并链接生成输出文件。
(5) Stop Build 停止正在 Build的进程。
(6) Biuld Options 用来设定编译器、汇编器和链接器的参数。
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
3,CCS的工具栏
Standard Toolbar:包括新建、打开、保存、剪切、复制、粘贴、取消、恢复、查找、打印和帮助等
Project Toolbar:包括选择当前工程、编译文件、设置和移去断点 /Probe Point等功能。
Edit Toolbar:提供一些常用的查找和设置标签命令。
GEL Toolbar:提供了执行 GEL函数的一种快捷方法。
ASM/Source Stepping Toolbar:提供了单步调试 C或汇编源程序的方法
Target Control Toolbar:提供了目标程序控制的一些工具
Debug Window Toolbar:提供了调试窗口工具第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.3,CCS的 工程管理
CCS对程序采用工程 (Project)的集成管理方法。工程保持并跟踪在生成目标程序或库过程中的所有信息。
1.典型工程文件记录的信息
源程序文件名和目标库;
编译器,汇编器和链接器选项;
头文件;
2.创建和管理工程
工程的创建、打开和关闭( ProjectNew/Open/Close)
使用工程观察窗口(单击工程文件夹、工程名 (*.pjt)和各个文件夹上的,+/-,号即可 )
添加 文件到工程 ( Project→ Add Files to Project )
从 工程中 删除文件( Remove from Project )
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试
( 1)装载可执行程序 File→Load Program
( 2)复位( CCS提供 4种方法)
① Reset DSP,Debug→Reset DSP命令初始化所有 R并停止运行程序 。
② Load Kernel,Lode Kernel 命令重新装入 DSP核
Why? 若用户使用一基于核的调试器 ( 不是 JTAG),则 DSP核应负责主机的通信 。 如果 DSP核被破坏,则设备驱动程序将无法与目标板通信 。
③ Restart,Debug → Restart 命令将 PC恢复到当前载入程序的入口地址,但不执行当前程序 。
④ Go main,Debug → Go main 命令提供了一种快速运行用户应用程序的方法。 (在主程序入口处设置临时断点,然后开始执行。当程序被暂停或遇到一个断点时,临时断点被删除。)
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 3)程序执行方式
① 单步执行操作
单步进入,Debug→Step Into,每操作一次,执行一条指令;
单步执行,Debug→Step Over,每操作一次,执行一条指令 ( 函数,子程序看作一条 ) ;
单步调出,Debug→Step Out,从子程序跳出;
执行到光标处,Debug→ Run to Cursor:程序运行到光标所在语句 。
② 连续运行操作 ( 实时运行 )
运行程序,Debug→Run,从当前 PC所指位置开始执行到结束或断点;
停止程序,Debug→ Halt:暂停程序的执行;
自由运行,Debug→ Run free,全速执行用户程序,忽略所有断点。
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 3)程序执行方式 (续)
③ 断点运行程序
在执行各个命令前应当预先设置好程序断点,每按一次按钮,从当前程序位置执行到所有遇到的第一个断点,… 。
命令,Debug → animate;
断点设置:
探针( probe)断点,CCS在源程序某条语句上设置的一种断点。每个探针断点都有相应的属性(用户设置)用来与一个文件的读 /写相关联。用户程序运行到探针断点所在语句时,自动读入数据或将计算结果输出到某个文件中 。
置断点”按钮采用工程工具条:“设使用对话框;
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 4)存储器、寄存器、变量的操作
① 存储器,拷贝数据块 /填充数据块 /察看 /编辑内存
② 寄存器,显示寄存器 /编辑寄存器
③ 变量,用观察窗口查看变量 /编辑变量
( 5) 数据输入 /输出
① 利用数据读入 /写出功能命令,File→Data(Lode /Save)
用途:偶尔的手工读入 /写出场合
② 利用探针功能,适用于自动调入和输出数据场合 。
第 5章 DSP集成开发环境 (CCS) 5.1 CCS集成开发环境简介
5.1.4,调试(续)
( 6) 图形窗口分析数据提供了四类 9种显示功能:每种显示所需的设置参数各不相同 。
① 时频图
② 星座图,信号的相位分布;
③ 眼图,信号码间干扰情况;
④ 图像显示,YUV或 RGB;
成多帧)成一帧,按时间顺序构多帧显示(幅频曲线构频率曲线)相位频率幅度和相位(幅度频率曲线)(幅度复数时间曲线)双曲线图(幅度单
FFT
FFT
FFT
-/-
-F FT/
-/
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
5.2 CCS 应用举例通过本例要介绍的主要内容:
创建一个工程文件
向工程中添加源文件
浏览代码、编译和运行程序
修改 Build选项并更正语法错误
使用断点和 Watch 窗口
使用探针的方法
图形显示的方法。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
1,创建一个工程通过,Project→New”,在工程窗口的 Project下面创建一个
Volume工程 。
2,向工程中添加源文件
( 1) 通过,Project→Add Files to Project”,将 Volume.c添加到工程中 。
(2) 用同样方法将 Vector.asm添加到工程中 。 ( Vector.asm中包含的是将
RESET中断指向 C程序入口 c_int00的汇编指令和其他中断的入口指令 。 如果调试的程序较为复杂,则可在 Vector.asm中定义更多的中断矢量 )
(3) 将 Volume.cmd添加到工程文件中 。 ( 该文件的作用是将段 (Sections)分配到存储器中 )
(4) 将 load.asm添加到工程文件中 。 ( 该文件包含一个简单的汇编循环程序,
被 C程序调用 。 调用时带有一个参数 (argument),执行此程序共需约 1000× argument个指令周期 )
(5) 将,C:\ti\c5400\cgtools\lib”下的 rts.lib加入到工程文件中 。
( 该文件是采用 C语言开发 DSP应用程序的运行支持库函数 )
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码
#include <stdio.h>
#include,volume.h”
/* Global declarations */
int inp_buffer[BUFSIZE]; /* processing data buffers */
int out_buffer[BUFSIZE];
int gain = MINGAIN; /* volume control variable */
unsigned int processingLoad = BASELOAD; /* processing routine load
struct PARMS str = value */
{
2934,
9432,
213,
9432,
&str
};
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续)
/* Functions */
extern void load(unsigned int loadValue);
static int processing(int *input,int *output);
说明,processing函数将输入 buffer中的数与增益相乘,并将结果输出给 buffer,它调用汇编 load例程的参数 processingLoad的值计算指令周期的时间 。
static void dataIO(void);
说明,dataIO函数不执行任何实质操作 。 它没有使用 C代码执行 I/O
操作,而是通过 CCS中的 Probe Point工具,从 PC文件中读取数据到 inp_buffer中,作为 processing函数的输入参数 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续) /* ======== main ======== */
void main()
{
int *input = &inp_buffer[0];
int *output = &out_buffer[0];
puts("volume example started\n");
/* loop forever */
while(TRUE)
{
/* Read input data using a probe-point connected to a host file.
Write output data to a graph connected through a probe-point,*/
dataIO();
#ifdef FILEIO
puts("begin processing") /* deliberate syntax error */
#endif
/* apply gain */
processing(input,output);
}
}
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续) /* ======== processing ========
* FUNCTION,apply signal processing transform to input signal.
*
* PARAMETERS,address of input and output buffers.
*
* RETURN VALUE,TRUE,*/
static int processing(int *input,int *output)
{
int size = BUFSIZE;
while(size--){
*output++ = *input++ * gain;
}
load(processingLoad); /* additional processing load */
return(TRUE);
}
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
3,浏览代码(续)
/*
* ======== dataIO ========
*
* FUNCTION,read input signal and write processed output signal.
*
* PARAMETERS,none.
*
* RETURN VALUE,none.
*/
static void dataIO()
{
/* do data I/O */
return;
}
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
4,编译和运行程序
,Project→Rebuild All”,对工程进行重新编译 。
,File→Load Program”,选 volume.out并打开,将 Build生成的程序加载到 DSP。
,View→Mixed Source/ASM”。 该设置使得 C程序与其汇编结果同时显示 。
,Debug→Go Main”。 使得程序从主程序开始执行 。
,Debug→Run”,可以在 Output窗口看到,begin processing”
信息 。
,Debug →Halt,中止正在执行的程序。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
5,使用断点和 Watch 窗口
(1) 将光标放在,dataIO();”行 。
(2) 单击鼠标右键,在弹出菜单上选 Toggle breakpoint,设置断点 。
(3) 选择,View→Watch Window”,将出现 Watch窗口 。 程序运行时 Watch Window窗口将显示要查看的变量值 。
(4) 选择 Watch1栏 。
(5) 在 Watch1窗口单击图标,在 name栏输入 dataIO。
(6) 选择,Debug→Go Main”。
(7) 选择,Debug→Run”,运行程序,显示出 dataIO是一个函数,
该函数存放的首地址是 0x00001457。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
6,使用探针 ( Probe Point )的方法
Probe Point的用途,有用工具,可从 PC文件中存取数据 。 即
将 PC文件中数据传送到目标板上的 buffer,供算法使用 。
将目标板上 buffer中的输出数据传送到 PC文件中以供分析 。
更新一个窗口,如由数据绘出的 Graph窗口 。
Probe Point与 Breakpoints的异同点:
相同点,都能中断程序的运行
不同点,Probe Point只是暂时中断程序运行,当程序运行到
Probe Point时会更新与之相连的窗口,然后自动继续运行程序
Breakpoints中断程序运行后,将更新所有打开的窗口,且只能用人工的方法恢复程序运行;
Probe Point可与 FILEIO配合,在目标板与 PC文件之间传送数据,Breakpoints则无此功能。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
Probe Point应用举例,
将 PC上文件中的内容作为测试数据传送到目标板 。 同时使用一个断点以便在到达 Probe Point时自动更新所有打开的窗口 。
(1) 将光标放在主函数的 dataIO()行上 。
(2) 单击鼠标右键,在弹出菜单中选择,Toggle Probe Point”,
添加 Probe Point。
(3) 在 File菜单选择,File I/O”,出现 File I/O对话框,在对话框中选择输入 /输出文件 。
(4) 在,File Input”栏中,单击 Add File按钮 。
(5) 在 volume.c文件所在目录选择 sina.dat,并单击打开按钮 。
此时将出现一个控制窗口,可以在运行程序时使用这个窗口来控制数据文件的开始,停止,前进,后退等操作 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
Probe Point应用举例 ( 续 ),
(6) 在 File I/O对话框中,在 Address域填入 inp_buffer,在
length域填入 100,选中 Wrap Around复选框 ( 读取数据的循环特性 )
(7) 单击,Add Probe Point” 按钮,将出现 Break/Probe
Points对话框,选中,Probe Points”栏 。
(8) 在 Probe Point列表中显示,VOLUME.C line 61 --> No
Connection”。 表明该第 61行已经设置 Probe Point,但还没有和 PC文件关联 。
(9) 在 Connect域,单击向下箭头并从列表中选 sine.dat。
(10) 单击 Replace按钮,Probe Point列表框表示 Probe Point
已与 sine.dat文件相关联 。
(11) 单击,确定,按钮,File I/O对话框指示文件连至一个
Probe Point。
(12) 单击,确定,按钮,关闭 File I/O对话框 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
7,使用图形显示的方法
CCS提供很多方法将程序产生的数据图形显示,包括时域 /频域波形显示,星座图,
眼图等 。
下面使用时域 /频域波形显示功能观察上例时域波形 。
(1) 选择
,View→Graph→Time/Frequ
ency(显示 → 图形 → 时域 /频域 )”。弹出 Graph Property
对话框,如右图所示。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例
7,使用图形显示的方法(续)
(2) 在 Graph Property对话框中,更改 Graph Title(图形标题 )、
Start Address(起始地址 ),Acquisition BufferSize(采集缓冲区大小 ),DSP Data Type(DSP数据类型 ),Autoscale(自动伸缩属性 )及 Maximum Y-value(最大 Y值 )。
(3) 单击 OK按钮,出现一个显示 inp_buffer波形的图形窗口 。
(4) 在图形窗口中右击,从弹出菜单中选择 Clear Display,清除已显示波形 。
(5) 再次执行,View→ Graph→ Time/Frequency”。
(6) 将 Graph Title修改为 output buffer,Start Address修改为 out_buffer,其他设置不变 。
(7) 单击 OK按钮,出现一个显示 out_buffer波形的图形窗口,
右击从菜单中选择 Clear Display命令,清除已有显示波形 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例动态显示图形举例,
由于 Probe Point不会更新图形显示内容 。 本例将设置一个断点,使图形窗口自动更新 。 使用 Animate命令,使程序到达断点时更新窗口后自动继续运行 。
(1) 在 volume.c窗口,将光标放在 dataIO行上 。
(2) 在该行同时设置一个断点和一个 Probe Point,使程序中断时执行两个操作:传送数据和更新图形显示 。
(3) 在 Debug菜单单击 Animate。 此命令将运行程序,碰到断点后临时中断程序运行,更新窗口显示,然后继续执行程序 (与 Run不同的是,Animate会继续执行程序直到碰到下一个断点 。 只有人为干预时,程序才会真正中止运行 。 可以将 Animate命令理解为一个,运行 → 中断 → 继续,的操作 )。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例动态显示图形举例 ( 续 ),
(5) 每次碰到 Probe Point时,CCS将从 sine.dat文件读取 100
个样值,并将其写至输入缓冲 inp_buffer。 由于 sine.dat文件保存的是 40个采样值的正弦波形数据,因此每个波形包括 2.5个
sin周期波形,如下图所示 。
(6) 选择,Debug→Halt( 调试 → 停止 )”,停止程序运行 。
第 5章 DSP集成开发环境 (CCS) 5.2 CCS 应用举例动态显示图形举例 ( 续 ),
(7)调节增益 ( 使用 Watch功能改变输出增益 )
output++=input++*gain
在 Watch窗口右击,选择,Insert New Expression”。
输入 Gain作为要观察的表达式,单击 OK按钮 。
在 Watch窗口双击 Gain。
在变量编辑窗口将 Gain值由 1改为 10,单击 OK按钮 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
5.3 CCS仿真
TMS320软件仿真器是一个 软件程序,使用主机的处理器和存储器来仿真 TMS320 DSP的微处理器和微计算机模式,从而进行软件开发和非实时的程序验证。
在 PC机上,典型的仿真速度为 每秒几百条指令第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真软仿真器的性能
在主机上执行用户的 DSP程序
修改和检查寄存器 /显示和修改数据及程序存储器
外设,CACHE,PIPELINE(流水线 )的时序仿真
设置断点 /单步执行 /产生中断
跟踪 ACC,PC,AR、表达式的值等
对非法操作码和无效数据输入等提供出错信息
执行批处理文件中的命令
文件方式快速存储和调用仿真参数
反汇编
周期计数并显示第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
1,用 Simulator仿真中断
C54x允许用户仿真外部中断信号 INT0~ INT3,并选择中断发生的时钟周期 。
方法:建立一个数据文件,并将其连接到 4个中断引脚中的一个即 INT0~ INT3,或 BIO引脚 。 (注意:时间间隔用 CPU时钟周期函数来表示,
仿真从一个时钟周期开始 )
( 1) 设置输入文件用文本编辑器编辑一个输入文件,列出中断间隔 。 格式:
[clock clock,logic value]rpt {n |EOS}
其中,clock(时钟周期 )是指希望中断发生时的 CPU时钟周期
logic value(逻辑值 )只使用于 BIO引脚 。 必须使用一个值去迫使信号在相应的时钟周期处置高位和置低位 。
rpt {n |EOS}是一个可选参数,代表一个循环修正 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 2) 软件仿真编程建立输入文件后,可使用 CCS提供的 Tools→Pin connect菜单将输入文件与中断脚连接或断开 。
在输入窗口的 Command处根据需要选择输入如下命令 。
① pinc
命令格式,pinc引脚名,文件名 。
功能:将输入文件和引脚相连 。
② pinl
命令格式,pinl。
功能:显示已连接的引脚名和文件的绝对路径名 。
③ pind
命令格式,pind 引脚名 。
功能:结束中断,将文件从引脚上脱开 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 3) 实例
[例 ] Simulator仿真 INT3中断,当中断信号到来时,中断处理子程序完成将一变量存储到数据存储区中,中断信号产生 10次 。
① 编写中断产生文件设置输入文件,列出中断发生间隔 。 在文件 zhongduan.txt 中写入 100(+100)rpt 10之后存盘,此文件与中断的 INT3引脚连接后,系统每隔 100个时钟周期发生一次中断 。
② 将输入文件 zhongduan.txt连接到中断引脚在命令行输入 pinc INT3,zhongduan.txt,将 INT3引脚与
zhongduan.txt文件连接 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 3) 实例 ( 续 )
③ 用汇编语言仿真中断
a) 编写中断向量表;建立中断向量
.sect,vectors”
.space 93*16 ;按中断向量在表中预留一定空间
INT3 NOP ;外部中断 INT3
NOP
NOP
GOTO NT3
NOP
.space 28*16 ; 68h~ 7Fh保留区第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
③ 用汇编语言仿真中断
b) 编写主程序 (注意:对中断有关的寄存器进行初始化 )
.data
a0,word 0,0,0,0,0,0,0,0
.text
.global _main
_main:PMST = #01a0h ;初始化 PMST寄存器
SP=#27FFh ;初始化 SP寄存器
DP=#0
IMR=#100 ;初始化 IMR寄存器
AR1=#a0
a=#9611h
INTM=0 ;开中断
w1,wait ;等待中断信号
NOP
NOP
GOTO w1
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
③ 用汇编语言仿真中断
c)编写中断服务程序 。
NT3:
NOP
NOP
(*AR1+)=a;
NOP
NOP
return_enable
.end
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
2.用 Simulator仿真 I/O接口实现方法,
使用系统提供的 Tools→ Port Connect菜单来连接,脱开 I/O接口;
选择调试命令 。 单击 Tools→ Command Window,系统将弹出对话框,然后在 Command处根据需要选择输入的命令 。
实现步骤,
定义存储器映射方法;
连接 I/O接口;
脱开 I/O接口 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 1) 定义存储器映射方法 ( ma命令 )
命令格式:
ma address,page,length,type
说明,? address 定义一个存储区域的起始地址,此参数可以是一个绝对地址,C表达式,函数名或汇编语言标号 。
page 用来识别存储器类型,0代表程序存储器,1代表数据存储器,2代表 I/O空间 。
length 定义其长度,可以是任何 C表达式 。
type 说明该存储器的读写类型 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 2) 连接 I/O接口 ( mc命令 )
命令格式:
mc portaddress,page,length,flename,fileaccess
说明,? portaddress I/O空间或数据存储器地址 。 此参数可以是一个绝对地址,C表达式,函数名或汇编语言标号 。
Page 用来识别此存储器区域的内容 。 Page= 1,表示该页属于数据存储器 。 Page=2,表示该页属于 I/O空间 。
Length 定义此空间的范围,此参数可以是任何 C表达式 。
Filename 可以为任何文件名 。 从连接口或存储器空间读文件时,文件必须存在,否则 mc命令会失败 。
Fileaccess 识别 I/O和数据存储器的访问特性 ( PR,PW等 ),
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 3) 脱开 I/O端口 ( mi命令 )
命令格式:
mi portaddress,page,{R|W|EX}
说明,? 使用 md命令从存储器映射中消去一个端口之前,必须使用 mi命令脱开该端口 。 mi(memory disconnect)将一个文件从一个 I/O端口脱开 。
命令中的端口地址和页是指要关闭的端口,read/write特性必须与端口连接时的参数 一致 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 4) 实例
[ 例 ] 编写汇编语言源程序从文件 ioread.txt中读取数据
① 定义 I/O端口
ma 0x100,2,0x1,P|R ;定义地址 0x100为输入端口
ma 0x102,2,0x1,P|W ;定义地址 0x102为输出端口
ma 0x103,2,0x1,P|R|W;定义地址 0x103为输入 /输出端口
② 连接 I/O端口
mc 0x100,2,0x1,ioread.txt,R
mc 0x102,2,0x1,iowrite.txt,W
为了验证 I/O端口是否被正确定义,文件是否被正确连接,
在命令窗口使用 ml命令,Simulator将列出 memory以及 I/O端口的配置和所连接的文件名 。
第 5章 DSP集成开发环境 (CCS) 5.3 CCS仿真
( 4) 实例 ( 续 )
③ 编写汇编语言源程序从文件中读数据:
(*ar1+)=port(0x100) ; 将端口 0x100所连接文件内容读到 ar1寄存器指定的地址单元 。
port(0x102)=*ar1 ; 将 ar1寄存器所指地址的内容写到端口 0x102连接的文件中 。
④ 脱开 I/O端口
mi 0x100,2,R ; 将 0x100端口所连接的文件 ioread.txt从 I/O端口脱开
mi 0x102,2,W ; 将 0x102端口所连接的文件 iowrite.txt从 I/O端口脱开注意,必须将 I/O端口脱开,数据才能避免丢失 。
第 5章 DSP集成开发环境 (CCS) 5.4 DSP/BIOS简介
5.4 DSP/BIOS简介含义,DSP/BIOS是一个实时操作系统内核 。
用途,应用在需要实时调度和同步的场合 。
特点,?通过使用虚拟仪表,可以实现主机与目标机的信息交换;
DSP/BIOS提供了可抢占线程;
具备硬件抽象和实时分析等功能 。
构成,? DSP/BIOS由一组可拆卸的组件构成,应用时只需将必需的组建加到工程中即可 。
DSP/BIOS配置工具允许通过屏蔽去掉不需要的 DSP/BIOS
特性来优化代码体积和执行 速度 。
第 5章 DSP集成开发环境 (CCS) 5.4 DSP/BIOS简介在 软件开发阶段,DSP/BIOS为实时应用提供底层软件,从而简化实时应用的系统软件设计,节约开发时间 。
更为重要的是,DSP/BIOS的数据获取 (Data Capture),统计
(Statistics)和事件记录功能 (Event Logging)在 软件调试阶段 与主机 CCS内的分析工具 BIOScope配合,可以完成对应用程序的实时探测 (Probe),跟踪 (Trace)和监控 (Monitor)。
与 RTDX技术和 CCS可视化工具相配合,除了可以直接实时显示原始数据 (二维波信号或三维图像 )外,还可以 对原始数据进行处理,进行数据的实时 FFT频谱分析,星座图和眼图处理等 。
第 5章 DSP集成开发环境 (CCS) 5.4 DSP/BIOS简介
DSP/BIOS包括如下工具和功能:
(1) DSP/BIOS配置工具 。 程序开发者可以利用该工具建立和配置 DSP/BIOS目标 。 该工具还可以用来配置存储器,线程优先级和中断处理函数等 。
(2) DSP/BIOS实时分析工具 。 该工具用来测试程序的实时性 。
(3) DSP/BIOS API函数 。 应用程序可以调用超过 150 个
DSP/BIOS API函数 。
DSP/BIOS应用实例参见,DSP技术及应用,5.4.2节