C++Test基于CCS的单元测试

C++Test基于CCS的单元测试 

      C++Test基于DSP CCS的测试,是将C++TestCCS一起使用,无需进行特殊的集成。C++Test事实上并非与CCS开发环境集成,而是预先配置为支持CCS的编译器集,允许C++Test项目使用这些编译器并且将整个CCS项目导入C++Test工作空间。为了做好基于CCS的单元测试,有必要对DSP的开发环境进行较为深入的了解。

一、引言

    自然界中各种信号(如声音)的初始形态是运动变化的,为了测量和处理它们,要用传感器把它们的特征转换成电信号,这些电信号就是模拟信号。等到这些电信号处理完后,再把它们转变为我们能看见、能听见或能利用的形态,就变成了数字信号。数字信号处理前后需要一些辅助电路,它们和数字信号处理器构成一个系统,这个系统就叫做数字信号处理系统。

 

二、DSP功能及特点:

DSP芯片,也称数字信号处理器,是一种特别适合于进行数字信号处理运算的微处理器,其主要应用是实时快速地实现各种数字信号处理算法。根据数字信号处理的要求,DSP芯片一般具有如下主要特点:

1.    在一个指令周期内可完成一次乘法和一次加法;

2.    程序和数据空间分开,可以同时访问指令和数据;

3.    片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问;

4.    具有低开销或无开销循环及跳转的硬件支持;

5.    快速的中断处理和硬件I/O支持;

6.    具有在单周期内操作的多个硬件地址产生器;

7.    可以并行执行多个操作;

8.  支持流水线操作,使取指、译码和执行等操作可以重叠执行。

三、DSP的应用:

    近年来,数字信号处理器(DSP)芯片已经广泛用于自动控制、图像处理、通信技术、网络设备、仪器仪表和家电等领域;DSP为数字信号处理提供了高效而可靠的硬件基础。

自从DSP芯片诞生以来,DSP芯片得到了飞速的发展。DSP芯片高速发展,一方面得益于集成电路的发展,另一方面也得益于巨大的市场。在短短的十多年时间,DSP芯片已经在信号处理、通信、雷达等许多领域得到广泛的应用。DSP芯片的应用主要有:

1.    信号处理——如,数字滤波、自适应滤波、快速傅里叶变换、相关运算、频谱分析、卷积等。

2.    通信——如,调制解调器、自适应均衡、数据加密、数据压缩、回坡抵消、多路复用、传真、扩频通信、纠错编码、波形产生等。

3.    语音——如语音编码、语音合成、语音识别、语音增强、说话人辨认、说话人确认、语音邮件、语音储存等。

4.    图像/图形——如二维和三维图形处理、图像压缩与传输、图像增强、动画、机器人视觉等。

5.    军事——如保密通信、雷达处理、声纳处理、导航等。

6.    仪器仪表——如频谱分析、函数发生、锁相环、地震处理等。

7.    自动控制——如引擎控制、深空、自动驾驶、机器人控制、磁盘控制。

8.    医疗——如助听、超声设备、诊断工具、病人监护等。

四、DSP的分类:

     主要考虑处理速度、功耗、程序存储器和数据存储器的容量、片内的资源,如定时器的数量、I/O口数量、中断数量、DMA通道数等。DSP的主要供商TIADIMotorola,LucentZilog等,其中TI占有最大的市场份额。下面主要介绍TI的产品及分类:

1.TMS320C2000 

  TMS320C2000系列包括C24xC28x系列。C24x系列建议使用LF24xx系列替代C24x系列,LF24xx系列的价格比C24x便宜,性能高于C24x,而且LF24xxA具有加密功能。 C28x系列主要用于大存储设备管理,高性能的控制场合。  

2.TMS320C3x 

      TMS320C3x系列包括C3xVC33,主要推荐使用VC33C3x系列是TI浮点DSP的基础,不可能停产,但价格不会进一步下调。  

3.TMS320C5x

       TMS320C5x系列已不推荐使用,建议使用C24xC5000系列替代。  

4.TMS320C5000 

      TMS320C5000系列包括C54xC55x系列。其中VC54xx还不断有新的器件出现,如:TMS320VC5471DSPARM7)。 C55x系列是TI的第三代DSP,功耗为VC54xx1/6,性能为VC54xx5倍,是一个正在发展的系列。 C5000系列是目前TI DSP的主流DSP,它涵盖了从低档到中高档的应用领域,目前也是用户最多的系列。 

5.TMS320C6000 

     TMS320C6000系列包括C62xxC67xxC64xx。此系列是TI的高档DSP系列。其中C62xx系列是定点的DSP,系列芯片种类较丰富,是主要的应用系列。 C67xx系列是浮点的DSP,用于需要高速浮点处理的领域。 C64xx系列是新发展,性能是C62xx10倍。  

6.OMAP系列 

   TI专门用于多媒体领域的芯片,它是C55ARM9,性能卓越,非常适合于手持设备、Internet终端等多媒体应用。

 

德州仪器(TI)公司现在主推四大系列DSP

1C5000系列(定点、低功耗):C54XC54XXC55X 相比其它系列的主要特点是低功耗,所以最适合个人与便携式上网以及无线通信应用,如手机、PDAGPS等应用。处理速度在80MIPS-- 400MIPS之间。C54XXC55XX 一般只具有McBSP同步串口、HPI并行接口、定时器、DMA等外设。值得注意的是C55XX提供了EMIF外部存储器扩展接口,可以直接使用 SDRAM,而C54XX则不能直接使用。两个系列的数字IO都只有两条。

2C2000系列(定点、控制器):C20XF20XF24XF24XX C28x该系芯片具有大量外设资源,如:A/D、定时器、各种串口(同步和异步),WATCHDOGCAN总线/PWM发生器、数字IO脚等。是针对控制应用最佳化的DSP,在TI所有的DSP中,只有C2000FLASH,也只有该系列有异步串口可以和PCUART相连。

3C6000系列:C62XXC67XXC64X 该系列以高性能著称,最适合宽带网络和数字影像应用。32bit,其中:C62XXC64X是定点系列,C67XX 是浮点系列。该系列提供EMIF扩展存储器接口。该系列只提供BGA装,只能制作多层PCB。且功耗较大。同为浮点系列的C3X中的VC33现在虽非主流产品,但也仍在广泛使用,但其速度较低,最高在150MIPS

4OMAP系列:OMAP处理器集成ARM的命令及控制功能,另外还提供DSP 的低功耗实时信号处理能力,最适合移动上网设备和多媒体家电。

其他系列的DSP曾经有过风光,但现在都非TI主推产品了,除了C3X系列外,其他基本处于淘汰阶段,如:C3X的浮点系列:C30C31C32 C2XC5X系列:C20C25C50

每个系列的DSP都有其主要应用领域.

 

五、DSP的开发:

本文仍以TI公司的产品为例,介绍DSP的开发。

1TI DSP的硬件开发

1)根据应用所处领域选择TI推荐的DSP类型

2)根据所选定的DSPEVM板,DSK等原理图,完成DSP系统的搭建(包括外扩内存空间、电源复位系统、各控制信号管脚的连接、JTAG口的连接等);

3)根据需求,选择外围电路的扩展,一般如语音、视频、控制等领域均有成熟的电路可以从TI网站得到。外围电路与DSP的接口可参看EVM DSK,以及所选外围电路芯片的典型接口设计原理图;最好外围电路芯片也选择TI的,这样的话不管硬件接口有现成原理图、很多连DSP与其接口的基本控制源码都有。

4)地址译码、IO扩展等用CPLD或者FPGA来做,将DSP的地址线、数据线、控制信号线如IS/PS/DS等都引进去有利于调试。

 FPGA是英文FieldProgrammable Gate Array的缩写,即现场可编程门阵列,它是在PALGALCPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCALogic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLBConfigurableLogic Block)、输出输入模块IOBInput OutputBlock)和内部连线(Interconnect)三个部分。

 

2TI DSP的软件开发

了解目标版的电路设计,包括程序、数据、I/O空间的译码。DSPCPU,memory,program memory addressing, data mem.oryaddressing的资料.熟悉以下技术的要点:

1CCS的使用

2CMD文件的编写

3)中断向量表文件的编写及定位

4)运行一个纯simulator的程序,了解CCS的各个操作

5)到TI网站下载相关的源码,参考源码的结构进行编程

 

六、CCS的特点及使用:

CCSCode Composer Studio)代码调试器是一种合成开发环境,是TI公司推出的集成可视化DSP软件开发环境。它是一种针对标准TMS320调试器接口的交互式方法。

 

CCS内部集成了以下软件工具:

DSP程序生成工具(包括C编译器、优化器、汇编器和连接器)

软件项目开发工具(包括代码编辑、项目建立、在线调试、在线数据观察等工具) 

实时多线程内核DSP/BIOS(使用DSP/BIOS内核能够开发出多线程应用程序) 

RTDX组件(在代码中使用RTDX可以实现DSP程序和PC机之间的数据传输)使用CCS开发者可以对软件进行编辑、编译、调试、代码性能测试和项目管理等工作。CCS的部分功能有:

ü  观察和更改DSP系统存储器和寄存器的值;

ü  用各种图形方式描绘出DSP系统存储器中的连续数据;

ü  设置断点;

ü  在断点处自动刷新内存窗口和图形窗口;

ü  在测试点处使数据在DSP系统存储器和PC机文件之间传递;

ü  代码性能测试,计算代码段执行所花的CPU时钟周期数;

ü  反汇编显示,即将DSP系统程序存储器中的值转换为对应的



CCS目前有CCS1.1 CCS1.2 CCS2.0等早期的版本,又有CC2000 ( 针对C2XX )CCS5000 ( 针对C54XX )CCS6000 (针对C6X )三个不同的型号。下面以CCS50002.0版本为例说明CCS的特点。

 

1TI编译器的完全集成的环境:
CCS5000
目标管理系统,内建编辑器,所有的调试和分析能力集成在一个Windows环境中。

2、对CDSP汇编文件的目标管理:

目标编辑器保持对所有文件及相关内容的跟踪。它只对最近一次编译中改变过的文件重新编译,以节省编译时间。

3、高集成的编辑器调整CDSP汇编代码:

CCS5000的内建编辑器支持C和汇编文件的动态语法加亮显示。使用户能很容易地阅读代码和当场发现语法错误。

4、编辑和调试时的后台编辑:

用户在使用编译器和汇编器时没有必要退出系统到DOS环境中,因为CCS5000会自动将这些工具装载在它的环境中。在其窗口中,错误会加亮显示只要双击错误就可以直接到达出错处。

5、在含有浮点并行调试管理器(PDM)的原有的MS窗口下支持多处理器CCS5000 Windows95Windows-me中支持多处理。PDM允许将命令传播给所有的或所选择的处理器。

6、在任何算法点观察信号的图形窗口探针:

图形显示窗口使用户能够观察时域或频域内的信号。对于频域图,FFT在主机内执行,这样就可以观察所感兴趣的部分而无须改变它的DSP代码。图显示也可以同探针连接,当前显示窗口被更新时,探针被指定,这样当代码执行到达该点时,就可以迅速地观察到信号。

7、文件探针在算法处通过文件提取或加入信号或数据:

CCS5000允许用户从PC机读或写信号流。而不是实时的读信号,这就可以用已知的例子来仿真算法。

8、图形分析:

CCS5000的图形分析能力在其环境中是集成的。

在后台(系统命令)执行用户的DOS程序:

用户可以执行CCS5000中的DOS程序,并将其输出以流水方式送到CCS5000的输出窗口。且允许用户将应用程序集成到CCS5000

9、技术状态观察窗口:

CCS5000的可视窗口允许用户进入C表达式及相关变量。结构、数组、指针都能很简单地递归扩展和减少,以便进入复杂结构。

10、代数分解窗口:

允许用户选择查看写成代数表达式的C格式,提高可读性

11、目标DSP上的帮助:

DSP结构和寄存器上的在线帮助可以使用户不必查看技术手册。

12、用户扩展:

扩展语言(GEL)使得用户可以将自己的菜单项加到CCS5000的菜单栏中。

 

七、CCS项目简介:

      将所有源文件添加到项目中后,就可以对整个项目进行编译、汇编和链接,最终生成能够被DSP芯片执行的DSP程序(*.out)。

      DSP可执行的*.out文件只能在DSP平台上执行,该DSP平台可以是真实的硬件电路板上的DSP芯片(需要仿真器来连接PC机和硬件电路板,CCS应配置为相应的Emulator模式),也可以是CCS软件在PC机上模拟出的DSP环境(不需要仿真器和硬件电路,CCS应配置为相应的Simulator模式)。不论是哪种情况,在运行程序之前,都需要将DSP程序(*.out文件)装载到真实的或虚拟的DSP平台中,然后让真实的或虚拟的DSP去执行它。

对程序中的数据段和代码段的存放地址是自己编写*.cmd文件来确定的。我们可以通过查看*.cmd文件来获得全局数据在DSP数据存储器开项目构建后生成的*.map文件(在Debug目录下)来查看程序中所有全局变量的存放地址。

CCS提供了多种图形显示方式:Time/Frequency(时域/频域图)、Constellation(星座图)、Eye Diagram(眼图)、Image(二维图像),使用图形方式观察DSP存储器中的数据。



八、C++Test基于DSP CCS3.X的单元测试

CCS项目进行单元测试,选择测试工具时,必须了解测试工具对CCS和芯片不同版本的支持程度,以C++Test为例,针对不同的CCS版本,C++Test也提供不同的安装包。如果CCS3.3以下版本(包含3.3),需要安装C++Test的独立版,如果是CCS3.3以上版本,则需要安装C++Test插件版,插件版可以集成到CCS开发环境中(作为一个菜单项),使用方法跟独立版基本相同。C++TestTI芯片的支持环境如下:


 独立版支持下面的编译器/环境版本:

·        德州仪器的 Code Composer 3.1 3.3 (Windows 宿主端)

·        TMS320C6x C/C++ 编译器 v6.0.8andv5.1.0

·        TMS320C2000 C/C++ 编译器 v4.1.0 (仅支持静态分析)

 C++Test插件版支持下面的编译器/环境版本:

·    德州仪器 Code Composer Studio 4

·     TMS320C6xC/C++ 编译器 v6.1.x

·     TMS320C2000C/C++ 编译器 v5.2.x

·     MSP430 C/C++ 编译器v3.2.x  

 

安装完成后,开始导入项目,导入步骤如下:

1. 选择 File(文件)> New(新建)> Project(项目)选择 Import CodeComposer Studio projects(导入 Code Composer Studio 项目)然后单击下一步。

2. 输入 (或浏览到) 到适当项目/工作空间文件或目录的路径。

3. 单击刷新,选择要导入的项目,然后单击下一步。

4. 设置导入目的地,项目内容,和使用默认项目配置,然后单击完成。

如下图所示:


一旦项目被导入,开始创建测试配置,复制“内建”中“嵌入式系统”下Run TI CCS 3.xTests” ,可以如下修改用于编译器/链接器选项源的原始的 CCS 项目配置名称 Project Properties(项目属性)>Parasoft> C++test> Build Settings(构建设置)。如下图所示:

 

C++Test中执行单元测试:选择一个被测试对象,可以是一个源文件,也可以是几个源文件,也可以是整C++Test个工程,使其高亮,然后,选择工具条中的“”,下拉 >> 选择测试执行>>  “用户自定义>>  “Run TI CCS 3.x Tests”

 

执行成功后,即可查看结果。(若有问题导致单元测试执行不成功,则通过控制台下的输出信息分析出错原因,查找出错原因。)

 


  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值