实验1CodeComposerStudio基础学习实验文档格式.docx
- 文档编号:21519752
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:14
- 大小:1.89MB
实验1CodeComposerStudio基础学习实验文档格式.docx
《实验1CodeComposerStudio基础学习实验文档格式.docx》由会员分享,可在线阅读,更多相关《实验1CodeComposerStudio基础学习实验文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
它提供一整套的程序编制、维护、编译、调试环境,能将汇编语言和C语言程序编译、链接生成COFF(公共目标文件)格式的可执行文件,并能将程序下载到目标DSP上运行调试。
用户系统的软件部分可以由CCS建立的工程文件进行管理。
CCS构成及接口
(二)、工程一般包含文件类型:
源程序文件:
C语言或汇编语言文件(*.c或*.asm)头文件(*.h)命令文件(*.cmd)库文件(*.lib)中间文件(*.obj)五实验步骤五实验步骤1创建工程:
创建新的工程文件:
选择菜单“View”的“ProjectExplorer”项,打开工程查看界面在ProjectExplorer窗口的空白地方右键选择New-CCSProject:
在弹出的窗口中设置工程名称,以及工程的设备类型,此处新建工程名为volume,Device型号为TMS320DM6437,点击Finish完成创建:
在工程文件中添加程序文件:
创建工程后,在ProjectExplorer窗口可以查看该工程的各个文件(若ProjectExplorer窗口被隐藏,则可以用菜单的View-ProjectExplorer调出):
双击某个窗口的标题可以使该窗口最大化,此时如要查看别的窗口,可以再次双击标题。
例如双击main.c之后:
再次双击main.c即可回到刚才的界面。
这里工程中的main.c和DM6437.cmd文件我们不需要,在main.c文件上右键选择Delete删除此文件。
在工程上右键选择AddFiles在弹出的窗口中找到C:
ICETEKICETEK-DM6437-ALab0101-UseCCS目录:
按住“Ctrl”键,选择UseCCS.c、UseCCS.cmd、UseCCS.h和Sine.dat文件。
然后点击打开按钮:
在弹出的窗口中选择文件导入的方式:
Copyfiles:
刚才选中的3个文件会被拷贝到workspace的刚才新建的工程文件夹中,即C:
ICETEKICETEK-DM6437volume目录下。
Linktofiles:
则文件不会被拷贝,以链接的形式把刚才的3个文件加入到工程中。
此时这3个文件还在原始的位置,即C:
ICETEKICETEK-DM6437-ALab0101-UseCCS目录下。
此处选择Copyfiles,点击OK完成。
查看C:
ICETEKICETEK-DM6437volume目录,会发现文件已经被复制过来了:
上述仅仅添加了工程的各个文件,但我们要进行仿真调试的话,还需要一个目标配置文件(TargetConfigurationFile)。
在TargetConfigurations窗口中,找到我们已配置好的文件DM6437-Simulator.ccxml(若没有参见第二部分、第一章、四、3新建一个),点击右键-LinkFileToProject-vloume.进入仿真调试:
点击菜单栏下方的图标,CCS开始自动编译,连接和下载程序。
最终的界面大致如下:
可以看到,新增了一个Debug窗口,CCS自动打开UseCCS.c,并且跳转到main函数。
2.编辑修改工程中的文件:
查看工程文件:
点击菜单的View-ProjectExplorer调出工程查看窗口,展开工程各分支,可以看到“volume”工程中包含的各个文件。
可分为四类文件:
.c源文件.cmd文件.h头文件.ccxml目标配置文件查看源文件:
双击工程管理窗中的“UseCCS.c”文件,可以查看程序内容。
可以看到,用标准C语言编制的程序,大致分成几个功能块:
头文件描述标准库程序的调用规则和用户自定义数据、函数头、数据类型等。
具体包含哪一个头文件,需要根据程序中使用了哪些函数或数据而定。
比如:
如果程序中使用了printf函数,它是个标准C提供的输入/输出库函数,选中“printf”关键字,按Shift+F1会启动关于此关键字的帮助,在帮助信息中可发现其头函数为stdio.h,那么在此部分程序中需要增加一条语句:
#include“stdio.h”。
工作变量定义定义全局变量。
子程序调用规则这部分描述用户编制的子程序的调用规则。
也可以写到用户自己编制的.h文件中去。
主程序。
即main()函数。
它可分为两部分:
变量定义和初始化部分、主循环部分。
主循环部分完成程序的主要功能。
用户自定义函数这个程序是一个音频信号采集、处理输出的程序。
程序的主循环中调用自定义的函数read_signals来获得音频数据并存入输入缓存inp_buffer数组;
再调用自定义函数write_buffer来处理音频数据并存入输出缓存;
output_signals将输出缓冲区的数据送输出设备;
最后调用标准C的显示信息的函数printf显示进度提示信息。
整个系统可以完成将输入的音频数据扩大volume倍后再输出的功能。
read_signals子程序中首先应有从外接AD设备获得音频数据的程序设计,但此例中由于未采用实际AD设备,就未写相应控制程序。
此例打算用读文件的方式获得数据,模拟代替实际的AD输入信号数据。
write_buffer子程序中首先将输入缓冲区的数据进行放大处理,即乘以系数volume,然后放入输出缓冲区。
output_signals函数完成将处理后的设备输出的功能,由于此例未具体操作硬件输出设备,所以函数中未写具体操作语句。
双击工程管理窗中的“UseCCS.h”文件,打开此文件显示,可以看到其中有主程序中要用到的一些宏定义如“BUF_SIZE”等。
UseCCS.cmd文件定义程序所放置的位置,此例中描述了ICETEKVC6748-A评估板的存储器资源,指定了程序和数据在内存中的位置。
它首先将ICETEKVC6748-A评估板的可用存储器分为五个部分,每个区给定起始地址和长度(区域地址空间不允许重叠);
然后指定经编译器编译后产生的各模块放到哪个区。
这些区域需要根据评估板硬件的具体情况来确定。
编辑修改源文件及编译程序:
打开“UseCCS.c”,找到“main()”主函数,将语句“input=&
inp_buffer0;
”最后的分号去掉,这样程序中就出现了一个语法错误;
在工程上点击右键-BuildProject重新编译连接工程,可以发现编译信息窗口出现发现错误的提示,工程中出现错误的文件会出现红色的x,;
双击打开出错的文件,可以看到该文件的最右侧有红色小方块的标示,单击红色处,CCS自动转到程序中出错的地方;
将语句修改正确(将语句末尾的分号加上);
重新编译;
注意,重新编译时修改过的文件被CCS自动保存。
重新编译工程时,CCS会提示程序重新编译过,是否重新下载?
我们点Yes,则CCS会把最新编译出的文件下载到DSP中。
查看和修改工程文件的设置:
在工程上右键-Properties,打开工程属性设置窗口。
可以看到,在Build一项中,分为C6000Compiler(编译器)和C6000Linker(链接器),我们点中C6000Linker下的BasicOptions,则在右边可以设置程序的堆栈大小。
3基本调试功能:
下载程序:
执行Run-Load-LoadProgram,在随后打开的对话框中选择刚刚建立的C:
ICETEKICETEK-DM6437-ADebugUseCCS.out文件,手动下载刚才编译生成的最终文件UseCCS.out。
设置软件调试断点:
在项目浏览窗口中,双击UseCCS.c激活这个文件,移动光标到while(TRUE)行上,在行号前双击鼠标左键即在此处设置了一个断点。
利用断点调试程序:
选择Run-Resume或按F8或点击Debug窗口中的运行程序,程序会自动停在while(TRUE)上。
按F6单步执行到write_buffer()函数。
再按F5,程序将转到write_buffer函数中运行。
此时,为了返回主函数,按F7完成write_buffer函数的执行。
4使用观察窗口:
在volume.c中,用鼠标双击一个变量(比如num),再单击鼠标右键,选择“AddWatchExpressions”,在弹出的窗口中点击ok,CCS将打开Watch窗口并显示选中的变量。
在观察窗口中双击变量,则可以在这个窗口中改变变量的值。
把str变量加到观察窗口中,点击变量左边的,观察窗口可以展开结构变量,并且显示结构变量的每个元素的值。
把str变量加到观察窗口中;
执行程序进入write_buffer函数,此时num变量超出了作用范围,可以看到num变量无法查看了:
5文件输入/输出下面介绍如何从PC机上加载数据到DSP上。
用于利用已知的数据流测试算法。
在完成下面的操作以前,先介绍CodeComposerStudio的断点,断点允许用户在指定位置提取/注入数据。
断点可以设置在程序的任何位置,当程序运行到断点时,相关的事件将会被触发,当事件结束后,程序会继续执行。
在这一节里,断点触发的事件是:
从PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。
(1)在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。
在这里,代替A/D模块完成这个工作的是断点。
当执行到函数read_signals时,断点完成这个工作。
在程序行read_signals(input);
上单击鼠标右键选择“Breakpoint(CodecomposerStudio)-Breakpoint”,设置软件断点。
点击CCS菜单的View-Breakpoints,调出断点观察窗口,可以看到我们刚才设置的断点:
在Breakpoint窗口中,右键点击刚才设置的断点,选择Breakpointporperties:
做如下设置:
此时,已经配置好了断点和与之关联的事件.进一步的结果在下面实验中显示。
6.图形功能简介:
使用CCS的图形功能检验上一节的结果。
首先进行下面设置操作:
点击菜单Tools-Graph-SingleTime:
在弹出的图形窗口做如下设置:
7.点击Debug窗口的运行程序,然后程序会停在程序40行。
8.退出CCS,关闭实验设备。
六实验结果六实验结果通过对工程文件“volume”的编译、执行后得到结果的图形显示如下:
七七.问题与思考问题与思考基本任务:
1.创建工程文件的关键,及对构成文件的理解。
2.软件调试过程中的主要工具及针对的问题。
提高任务:
3.在实例代码的基础上,思考实现实时信号处理的方法。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 CodeComposerStudio 基础 学习