1、多媒体通信实验第4章CCS应用实验第4章 CCS应用实验目录实验4.1 CCS操作使用实验实验4.2 汇编语言DSP程序设计实验实验4.3 C语言DSP程序设计实验实验4.4 混合语言的DSP程序设计实验实验4.5 双精度数据加减运算汇编语言实验实验4.6 单精度小数乘法运算汇编语言实验实验4.7 浮点数乘除法运算实验实验4.8 库函数调用运算实验实验4.1 CCS操作使用实验 (一)实验目的要求1.学习工程创建的方法2.了解编译和调试功能3.学习使用观察窗口(二)主要仪器设备1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理和方法开发 TMS320C6xxx 应用系统
2、一般需要以下几个调试工具来完成:1.软件集成开发环境(CCS):完成程序编译、目标文件产生、下载,进行程序和硬件的联合仿真调试。2.仿真器:实现硬件仿真调试时与硬件系统的通信、控制和读取硬件系统的状态和数据。CCS 通过工程来管理文件,一般包括以下几种文件:1) 源程序文件:C 语言或汇编语言文件(*.c 或*.asm)2) 头文件(*.h)3) 命令文件(*.cmd)4) 库文件(*.lib,*.obj)(四)实验内容与步骤 连接实验箱与PC机,打开电源给实验箱供电。1.在C:CCStudio_v3.3MyProjects下新建一个文件夹:practice。复制C:CCStudio_v3.3
3、tutorialsim64xxconsultant下的所有文件到practice文件夹下。2、点击setup code composer studio v3.3,运行 CCS Setup,设置 CCS 在软件仿真(simulator)方式下运行。保存配置。3.点击 Code Composer Studio,启动 CCS。4.创建工程选择菜单“Project”的“New”项,建立practice.pjt工程文件。5.向工程添加文件添加main.c,doloop.c,lnk.cmd到工程。 查看源程序:Doloop.c,main.c。打开:lnk.cmd文件,编辑如下内容保存:-stack 0x4
4、00-heap 0x400MEMORY ISRAM : origin = 0x400, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .data ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM或者:/*/* c64xx_cov_lnk.cmd */* Copyright (c) 1996-2002 Texas Instruments Incorporated */*/-c-heap 5000-stack
5、5000/* Memory Map 0 */ MEMORY ON_CHIP : origin = 00000000h length = 00100000h EMIFA_CE0 : origin = 80000000h length = 10000000h EMIFA_CE1 : origin = 90000000h length = 10000000hSECTIONS .text ON_CHIP .stack ON_CHIP .bss ON_CHIP .cinit EMIFA_CE1 .cio EMIFA_CE0 .const ON_CHIP .data ON_CHIP .switch ON_
6、CHIP .sysmem ON_CHIP .far EMIFA_CE06工程中添加库文件 添加C:CCStudio_v3.3C6000cgtoolslib目录下的rts6400.lib7.查看源程序文件 点击工程列表下文件,可以打开源程序文件main.c查看代码8.编译、创建目标文件点击菜单project-compile file,可以对文件进行编译再点击菜单Project-Build,建立目标文件成功建立的文件应该是错误和警告都为09调用目标文件 1)连接仿真器与目标板点击: Debug-connect,连接成功后,CCS左下角有提示。2)点击File-Load Program,选择prac
7、ticeDebugpractice.out10.调试1)goto main2)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。3)单步运行用F114)观察窗口点击view-watch window,则打开观察窗口(五)实验报告要求 1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.2 汇编语言DSP程序设计实验(一)实验目的和要求:1. 学习用汇编语言编制程序;2. 了解在CCS下开发TMS320C64x汇编语言程序的步骤;3. 掌握汇编语言数据搬移、存储的方法;4. 学习在CCS环境中
8、调试汇编代码(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法 1.汇编语言程序在执行时直接从用户指定入口开始。 2.由于CCS的代码链接器默认支持C 语言,在编制汇编语言程序时,需要设置链接参数,选择非自动初始化,注明汇编程序的入口地址。(四)实验步骤与内容1.运行 CCS Setup,设置 CCS 在模拟仿真(Simulator)方式下运行。选择模拟仿真调DM642 Device Cycle Accurate Simulator(Endianness选little)。2.启动 CCS 3.创建工程4. 设置工程编译选项 选择CCS菜单pro
9、ject-Build Options,点击Linker页,设置Autoinit Model为:No Autoinitialization(这点是与C语言程序设计不同)注意:若省略这一步,也不影响程序建立,只不过会出现警告:warning: entry point symbol _c_int00 undefined5. 输入源程序1)输入汇编源程序 选择File-New-Source File或使用工具条的快捷按钮,进入文件编辑窗口。录入汇编源程序: ;* ; 输入数据存放在:x,y ; 本例程完成运算:x+y ; 结果存放:z ; 其中:x,y,z都占32位 ;* .bss x, 4 ;排版要
10、空一格,下同 .bss y, 4 .bss z, 4 ;.def start ;.def x, y, z .textstart: ;排版要顶格 mvkl x, A0;立即寻址,将变量x 的值放到寄存器A0 mvkh x, A0;立即寻址,将变量x 的值放到寄存器A0 mvkl y, B0;立即寻址,将变量y 的值放到寄存器B0 mvkh y, B0;立即寻址,将变量y 的值放到寄存器B0 mvkl z, B2;立即寻址,将变量z 的值放到寄存器B2 mvkh z, B2;立即寻址,将变量z 的值放到寄存器B2 mvkl 0x010a0f2a, A4;给A4 低16位赋值 mvkh 0x010a
11、0f2a, A4;给A4 高16位赋值 mvkl 0x1ab31211, B4;给B4 低16位赋值 mvkh 0x1ab31211, B4;给B4 高16位赋值 stw A4, *A0;A4存入A0所指地址单元 nop 5 stw B4, *B0;B4存入B0所指地址单元 nop 5 ldw *A0, B1 ;将A0寻址单元的值读入B1 nop 5 ;避免流水线冲突 ldw *B0, A1;将B0寻址单元的值读入A1 nop 5 add A1, B1, A2 ;加法运算:A1+B1-A2 stw A2, *B2 ; 将A2的值存入B2所指地址单元 b $ ;一直在这里跳转,注意:b后有一个空
12、格注意:汇编语句前需要留出空格,标号顶格输入,否则编译有错误提示。保存源程序到工程目录下,保存文件为:myasm.asm2)输入链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,进入文件编辑窗口。输入链接命令文件内容:-stack 400-heap 400MEMORY ISRAM : origin = 0x0, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sy
13、smem ISRAM保存源程序到工程目录下,命名为myasm.cmd。6. 将上述编辑的源程序myasm.asm和链接命令文件myasm.cmd加入工程myasm.pjt。7. 编译源文件、建立目标文件(.out)8调用编程可执行程序 选择File-Load Program,选择myasmdebugmyasm.out,点击Debug-Restart后PC此时指向00000000 00000000地址。9.调试 用菜单debug-Step Into或F11可以单步运行。10. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开
14、启Watch window,Memory窗口,进行变量、存储空间的观察11. 退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.3 C语言DSP程序设计实验(一)实验目的和要求:1.掌握DSP芯片的C语言程序设计方法;2.掌握在CCS环境下用C语言开发的步骤;3.学会调试CCS下的C语言代码(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法1. 标准C 语言程序CCS 支持使用标准C 语言开发DSP 应用程序。C源程序文件名的后缀应为.c。CCS 在编译标准C 语言程序时,首先将其编译成相应
15、汇编语言程序,再进一步编译成目标DSP 的可执行代码。最后生成的是COFF 格式的可下载到DSP 中运行的文件,其文件名后缀为.out。由于使用C 语言编制程序,其中调用的标准C 的库函数由专门的库提供,在编译链接时编译系统还负责构建C 运行环境。所以用户工程中需要注明使用C 的支持库。2. 命令文件的作用命令文件(文件名后缀为cmd)为链接程序提供程序和数据在具体DSP 硬件中的位置分配信息。通过编制命令文件,我们可以将某些特定的数据或程序按照我们的意图放置在DSP 所管理的内存中。命令文件也为链接程序提供了DSP 外扩存储器的描述。在程序中使用CMD 文件描述硬件存储区,可以只说明使用部分
16、,但只要是说明的,必须和硬件匹配,也就是只要说明的存储区必须是存在的和可用的。3. 内存映射(map)文件的作用为了更精确地使用ROM 空间,我们就需要知道程序的大小和位置,通过建立目标程序的map 文件可以了解DSP 代码的确切信息。当需要更改程序和数据的大小和位置时,就要适当修改cmd 文件和源程序,再重新生成map 文件来观察结果。另外,通过观察map文件,可以掌握DSP 存储器的使用和利用情况,以便进行存储器方面的优化工作。(四)实验步骤与内容1. 准备将DSP实验设备与硬件仿真器相连接,连接电源线,打开电源开关。2设置CCS 在硬件仿真(Emulator)方式下运行,选择实际的仿真器
17、。也可设置在模拟仿真(Simulator)方式下工作。3.启动CCS环境4创建工程。 选择菜单Project-New,创建ctest.pjt工程5建立源文件1)建立C语言源程序文件。选择FILE-New-Source,输入下列C代码,保存到文件ctest.c。int sel_max(int a, int b);void main() int x; int y; int z; x = 21; y = 98; while(1) z=sel_max(x,y); /函数调用 int sel_max(int a, int b) return(a=b)?a:b);2)建立链接命令文件点击“File/New
18、/Source File”或使用工具条的快捷按钮,打开编辑窗,建立ctest.cmd文件,内容如下:-stack 400-heap 400MEMORY ISRAM : origin = 0x0, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM6.工程添加文件 点击菜单Project-Add Files to project,分别加入ctest.c,ctest.cmd文件,
19、再向工程添加C:CCStudio_v3.3C6000cgtoolslib下的文件rts6400.lib(这点与汇编程序设计不同)(注意:若不添加,则链接时会出现警告:warning: entry point symbol _c_int00 undefined)7编译、建立目标文件 产生ctest.out8.调用编程可执行程序1)连接仿真器与目标板点击: Debug-connect,连接成功后,CCS左下角有提示。2)选择File-Load Program,选择ctestdebugctest.out。9.调试 1)执行至C语言主程序入口点击Debug-go main。2)设置断点在需要设置断点的
20、行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠标,则可以取消该断点。3)单步运行 用菜单debug-Step Into或F11可以单步运行。 4)全速运行 用菜单debug-Run或F5可以全速运行。10. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开启Watch window,Memory窗口,进行变量、存储空间的观察11.关闭工程 点击Project-Close。12. 退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.4
21、混合语言的DSP程序设计实验(一)实验目的和要求:1.掌握产生离散信号的方法2.掌握离散信号的图形表示(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法C语言易于开发和维护,可读性强、利于理解,在编制、修改、实现算法方面比用汇编语言开发容易。可移植性强。但由C语言开发的代码量大、程序效率较低、优化代码存在一定困难。 汇编语言控制系统硬件的能力强于C 语言,设计出来的程序更加贴近硬件特性,往往能将硬件效能发挥到极致,且汇编语言代码精练、效率高、代码短、不容易产生冗余。但汇编语言设计的程序可读性差,不利于复杂算法的开发和实现,可移植性差,容易产生流
22、水线冲突。 大部分代码采用C语言设计,少部分要求高效率的代码采用汇编程序设计。这样,就要求混合语言的编程,即在一个工程中同时含有汇编语言程序和C语言程序。 混合编程有两种方式:一种方式是在C语言程序中采用内嵌入汇编语句,例如asm(“MOV T1, *SP(#1)”),另一种方式是一种语言调用另一种语言设计的子程序。在汇编程序中使用其他C 语言模块中定义的变量或函数名称时,需要在引用的名称前加一下划线。如:C 中定义的变量为x,在汇编中引用时要用_x。函数(父函数)在调用另一个函数(子函数)的时候,如果有参数需要传递,前10个参数放入寄存器A4、B4、A6、B6、A8、B8、A10、B10、A
23、12、B12,如果是长整型、双精度浮点型或长精度浮点型,则放入寄存器对A5:A4, B5:B4, A7:A6等。如果被调函数返回整数、指针或单精度浮点型,将返回值放到寄存器A4中,如果返回双精度浮点型或长精度浮点型,则将返回值放在A5:A4寄存器对中。(四)实验步骤与内容1. 准备将DSP实验设备与硬件仿真器相连接,连接电源线,打开电源开关。2设置CCS 在硬件仿真(Emulator)方式下运行,选择实际的仿真器。也可设置在模拟仿真(Simulator)方式下工作。3.启动CCS环境4创建工程。 选择菜单Project-New,创建casm.pjt工程5建立源文件1)建立C语言源程序文件。选择
24、FILE-New-Source,输入下列C代码,保存到文件myprojectscasmmain.c。int add(int a, int b);void main() int x; int y; int z; x = 2; y =3; while(1) z=add(x,y); /函数调用 2) 建立汇编语言源程序文件。选择FILE-New-Source,输入下列C代码,保存到文件myprojectscasmadd.asm。内容如下:.global _add_add:ADD .D1X A4, B4, A4B .S2 B3.end注意:汇编语句前需要留出空格,标号顶格输入,否则编译有错误提示。3)
25、建立链接命令文件点击“File/New/Source File”或使用工具条的快捷按钮,打开编辑窗,建立myprojectscasmcasm.cmd文件,内容如下:-stack 400-heap 400MEMORY ISRAM : origin = 0x0, len = 0x1000000SECTIONS .vectors ISRAM .text ISRAM .bss ISRAM .cinit ISRAM .const ISRAM .far ISRAM .stack ISRAM .cio ISRAM .sysmem ISRAM7.工程添加文件 点击菜单Project-Add Files to
26、project,分别加入main.c,add.asm和casm.cmd文件,再向工程添加C:CCStudio_v3.3C6000cgtoolslib下的文件rts6400.lib。8编译、建立目标文件 产生casm.out9.调用编程可执行程序1)连接仿真器与目标板点击: Debug-connect,连接成功后,CCS左下角有提示。2)选择File-Load Program,选择casmdebugcasm.out。10.调试 1)执行至C语言主程序入口点击Debug-go main。2)设置断点在需要设置断点的行前双击鼠标,则在行前出现红色的原点,表示设置了断点;若在已经设置了断点的行前双击鼠
27、标,则可以取消该断点。3)单步运行 用菜单debug-Step Into或F11可以单步运行。 4)全速运行 用菜单debug-Run或F5可以全速运行。11. 观察开启CPU寄存器观察窗口:单击菜单ViewRegisterscore。使用单步运行,查看相应寄存器的值的变化。还可开启Watch window,Memory窗口,进行变量、存储空间的观察12.关闭工程 点击Project-Close。13. 退出CCS(五)实验报告要求1.写出实验报告,包括:目的和要求、仪器设备 2.写出实验步骤及内容实验4.5 双精度数据加减运算汇编语言实验(一)实验目的和要求:1. 学会双精度的汇编语言表示2
28、. 学会使用汇编编程来实现双精度数据的加减运算3进一步掌握CCS调试汇编程序的技巧(二)主要仪器设备:1.计算机2.CCS软件3.TMS320C64xx实验箱一台(三)实验原理与方法双精度数据是采用两个字保存一个数据,将数据分成高位和低位。C6x 的数据宽度为32 位,所以双精度的数据位数为64 位,使用两个寄存器保存该64 位的数据。实验程序使用A2保存加数的低32 位,B2 保存加数的高32位,A4 保存被加数的低32 位, B4 保存被加数的高32 位,结果的低32 位存储在A0和*A8 地址中,高32 位存储在B0和*B8地址中,此程序可以直接被C 语言调用。(四)实验步骤与内容1. 准备关闭DSP实验设备的电源开关。2设置CCS 在模拟仿真(Simulator)方式下工作。3.启动CCS环境4创建工程。 选择菜单Project-New,创建dadder64.pjt工程5. 设置工程编译选项 选择CCS菜单project-Build Options,点击Linker页,设置Autoinit Model为:No Autoinitialization6建立源文件1)建立汇编语言源程序文件。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1