1、实验 1 Code Composer Studio 入门实验1实验 1 Code Composer Studio 入门实验一实验目的1. 熟悉 CCS 集成开发环境,掌握工程的生成方法;2. 熟悉 ICETEK-DM6437-A 实验环境;3. 掌握 CCS 集成开发环境的调试方法。二.实验容1. DSP 源文件的建立;2. DSP 程序工程文件的建立;3.学习使用 CCS 集成开发工具的调试工具。三实验设备1.PC 兼容机2.WIN7 操作系统3.Code Composer Studio v5四实验背景知识理(一)、开发 TMS3206437 应用系统一般需要以下几个调试工具来完成 软件集成
2、开发环境(Code Composer Studio v5):完成系统的软件开发,进行软件和硬件仿真调试。它也是硬件调试的辅助手段。 开发系统(ICETEK-XDS100v2+):实现硬件仿真调试时与硬件系统的通信,控制和读取硬件系统的状态和数据。 评估模块(ICETEK-DM6437-A 等):提供软件运行和调试的平台和用户系统开发的参照。CCS主要完成系统的软件开发和调试。它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译、生成 COFF (公共目标文件)格式的可执行文件,并能将程序下载到目标 DSP 上运行调试。用户系统的软件部分可以由 CCS 建立的工程文件进行管
3、理。CCS构成及接口(二)、工程一般包含文件类型: 源程序文件: C 语言或汇编语言文件(*.c 或*.asm) 头文件(*.h) 命令文件(*.cmd) 库文件(*.lib) 中间文件(*.obj)五实验步骤1创建工程: 创建新的工程文件:选择菜单“View”的“Project Explorer”项,打开工程查看界面在 Project Explorer 窗口的空白地方右键选择 New-CCS Project:在弹出的窗口中设置工程名称,以及工程的设备类型,此处新建工程名为 volume,Device型号为 TMS320DM6437, 点击 Finish 完成创建: 在工程文件中添加程序文件:
4、创建工程后,在 Project Explorer 窗口可以查看该工程的各个文件(若 ProjectExplorer 窗口被隐藏,则可以用菜单的 View-Project Explorer 调出):双击某个窗口的标题可以使该窗口最大化,此时如要查看别的窗口,可以再次双击标题。例如双击 main.c 之后:再次双击 main.c 即可回到刚才的界面。 这里工程中的 main.c 和 DM6437.cmd 文件我们不需要,在 main.c 文件上右键选择 Delete 删除此文件。在工程上右键选择 Add Files在弹出的窗口中找到 C:ICETEKICETEK-DM6437-ALab0101-U
5、seCCS 目录: 按住“Ctrl”键,选择 UseCCS.c、 UseCCS.cmd、 UseCCS.h 和 Sine.dat 文件。然后点击打开按钮 :在弹出的窗口中选择文件导入的方式:Copy files: 刚才选中的 3 个文件会被拷贝到 workspace 的刚才新建的工程文件夹中,即C:ICETEKICETEK-DM6437volume 目录下。Link to files: 则文件不会被拷贝,以的形式把刚才的 3 个文件加入到工程中。此时这 3 个文件还在原始的位置,即 C:ICETEKICETEK-DM6437-ALab0101-UseCCS 目录下。此处选择 Copy file
6、s,点击 OK 完成。查看 C:ICETEKICETEK-DM6437volume 目录,会发现文件已经被复制过来了:上述仅仅添加了工程的各个文件,但我们要进行仿真调试的话,还需要一个目标配置文件(Target Configuration File)。在 Target Configurations 窗口中,找到我们已配置好的文件 DM6437-Simulator.ccxml(若没有参见第二部分、第一章、四、 3 新建一个),点击右键-Link File To Project-vloume. 进入仿真调试:点击菜单栏下方的 图标, CCS 开始自动编译,连接和下载程序。 最终的界面大致如下:可以
7、看到,新增了一个 Debug 窗口, CCS自动打开 UseCCS.c,并且跳转到 main 函数。2.编辑修改工程中的文件: 查看工程文件:点击菜单的 View-Project Explorer 调出工程查看窗口, 展开工程各分支,可以看到“volume”工程中包含的各个文件。 可分为四类文件: .c 源文件 .cmd 文件 .h 头文件 .ccxml 目标配置文件 查看源文件:双击工程管理窗中的“UseCCS.c”文件,可以查看程序容。可以看到,用标准 C 语言编制的程序,大致分成几个功能块: 头文件描述标准库程序的调用规则和用户自定义数据、函数头、数据类型等。具体包含哪一个头文件,需要根
8、据程序中使用了哪些函数或数据而定。比如:如果程序中使用了 printf 函数,它是个标准 C 提供的输入/输出库函数,选中“printf”关键字,按 Shift+F1会启动关于此关键字的帮助,在帮助信息中可发现其头函数为 stdio.h,那么在此部分程序中需要增加一条语句: #include “stdio.h”。 工作变量定义定义全局变量。 子程序调用规则这部分描述用户编制的子程序的调用规则。也可以写到用户自己编制的.h 文件中去。主程序。即 main()函数。它可分为两部分:变量定义和初始化部分、主循环部分。主循环部分完成程序的主要功能。 用户自定义函数这个程序是一个音频信号采集、处理输出的
9、程序。程序的主循环中调用自定义的函数read_signals 来获得音频数据并存入输入缓存 inp_buffer 数组;再调用自定义函数 write_buffer来处理音频数据并存入输出缓存; output_signals 将输出缓冲区的数据送输出设备;最后调用标准 C 的显示信息的函数 printf 显示进度提示信息。整个系统可以完成将输入的音频数据扩大 volume 倍后再输出的功能。read_signals 子程序中首先应有从外接 AD 设备获得音频数据的程序设计,但此例中由于未采用实际 AD 设备,就未写相应控制程序。此例打算用读文件的方式获得数据,模拟代替实际的 AD 输入信号数据。
10、write_buffer 子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数 volume,然后放入输出缓冲区。output_signals 函数完成将处理后的设备输出的功能,由于此例未具体操作硬件输出设备,所以函数中未写具体操作语句。双击工程管理窗中的“UseCCS.h”文件,打开此文件显示,可以看到其中有主程序中要用到的一些宏定义如“BUF_SIZE”等。UseCCS.cmd 文件定义程序所放置的位置,此例中描述了 ICETEKVC6748-A 评估板的存储器资源,指定了程序和数据在存中的位置。比如:它首先将 ICETEKVC6748-A 评估板的可用存储器分为五个部分,每个区给定起始
11、地址和长度(区域地址空间不允许重叠);然后指定经编译器编译后产生的各模块放到哪个区。这些区域需要根据评估板硬件的具体情况来确定。 编辑修改源文件及编译程序:打开“UseCCS.c”,找到“main()”主函数,将语句“input = &inp_buffer0;”最后的分号去掉,这样程序中就出现了一个语法错误; 在工程上点击右键-Build Project 重新编译连接工程,可以发现编译信息窗口出现发现错误的提示,工程中出现错误的文件会出现红色的x,;双击打开出错的文件,可以看到该文件的最右侧有红色小方块的标示,单击红色处, CCS 自动转到程序中出错的地方;将语句修改正确(将语句末尾的分号加上
12、);重新编译;注意,重新编译时修改过的文件被 CCS 自动保存。重新编译工程时, CCS 会提示程序重新编译过,是否重新下载? 我们点 Yes,则 CCS会把最新编译出的文件下载到 DSP 中。 查看和修改工程文件的设置:在工程上右键-Properties,打开工程属性设置窗口。可以看到,在 Build 一项中,分为 C6000 Compiler(编译器)和 C6000 Linker(器), 我们点中 C6000 Linker 下的 Basic Options,则在右边可以设置程序的堆栈大小。3基本调试功能: 下载程序:执行 Run-Load-Load Program ,在随后打开的对话框中选
13、择刚刚建立的C:ICETEKICETEK-DM6437-A DebugUseCCS.out 文件,手动下载刚才编译生成的最终文件 UseCCS .out。 设置软件调试断点:在项目浏览窗口中,双击 UseCCS.c 激活这个文件,移动光标到while(TRUE)行上,在行号前双击鼠标左键即在此处设置了一个断点。 利用断点调试程序:选择 Run-Resume 或按 F8 或点击 Debug 窗口中的 运行程序,程序会自动停在 while(TRUE)上。按 F6 单步执行到 write_buffer()函数。再按 F5,程序将转到 write_buffer 函数中运行。此时,为了返回主函数,按 F
14、7 完成 write_buffer 函数的执行。4使用观察窗口:在 volume.c 中,用鼠标双击一个变量(比如 num),再单击鼠标右键,选择“Add WatchExpressions”, 在弹出的窗口中点击 ok, CCS 将打开 Watch 窗口并显示选中的变量。在观察窗口中双击变量,则可以在这个窗口中改变变量的值。把str 变量加到观察窗口中,点击变量左边的 ,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。 把 str 变量加到观察窗口中;执行程序进入 write_buffer 函数,此时 num 变量超出了作用围,可以看到 num 变量无法查看了: 5文件输入/输出下面
15、介绍如何从 PC 机上加载数据到 DSP 上。用于利用已知的数据流测试算法。在完成下面的操作以前,先介绍 Code Composer Studio 的断点, 断点允许用户在指定位置提取/注入数据。断点可以设置在程序的任何位置,当程序运行到断点时, 相关的事件将会被触发,当事件结束后,程序会继续执行。在这一节里,断点触发的事件是:从 PC 机存储的数据文件中的一段数据加载到 DSP 的缓冲区中。 (1)在真实的系统中, read_signals 函数用于读取 A/D 模块的数据并放到 DSP 缓冲区中。在这里,代替 A/D 模块完成这个工作的是断点。当执行到函数 read_signals 时,断
16、点完成这个工作。 在 程 序 行 read_signals(input); 上 单 击 鼠 标 右 键 选 择 “Breakpoint(Code composer Studio)-Breakpoint”, 设置软件断点。 点击 CCS 菜单的 View-Breakpoints,调出断点观察窗口,可以看到我们刚才设置的断点:在 Breakpoint 窗口中,右键点击刚才设置的断点,选择 Breakpoint porperties:做如下设置:此时,已经配置好了断点和与之关联的事件.进一步的结果在下面实验中显示。6.图形功能简介:使用 CCS 的图形功能检验上一节的结果。首先进行下面设置操作:点击菜单 Tools-Graph-Single Time:在弹出的图形窗口做如下设置:7.点击 Debug 窗口的 运行程序,然后程序会停在程序 40 行。8. 退出 CCS,关闭实验设备。六实验结果通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:七.问题与思考基本任务:1. 创建工程文件的关键,及对构成文件的理解。2.软件调试过程中的主要工具及针对的问题。提高任务:3.在实例代码的基础上,思考实现实时信号处理的方法。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1