28335实验指导书616资料.docx
- 文档编号:18076023
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:30
- 大小:1.53MB
28335实验指导书616资料.docx
《28335实验指导书616资料.docx》由会员分享,可在线阅读,更多相关《28335实验指导书616资料.docx(30页珍藏版)》请在冰点文库上搜索。
28335实验指导书616资料
28335实验指导书
TMS320F28335实验板
2019.7.16
1调试工具安装与使用说明
1.1CCS3.3安装
注:
此教程是在win7系统下的教程(64位和32位均可),若有360安全卫士,安装前请关闭。
(1)先从TI官网上下载CCS3.3安装软件或从网上搜索下载(大小:
550M左右),点击setup.exe图标开始安装,如图1所示。
图1文件信息
(2)点击后出现下图2所示界面,并点击Next继续
图2安装界面
(3)一直点击Next出现下图3所示界面后,选择TypicalInstall。
图3安装类型选择
(4)选择安装位置(自己想要安装的位置)并继续Next,如图4所示。
图4软件安装位置选择
(5)点击InstallNow(如下图5所示),开始进入安装,等待安装完成。
图5安装
(6)若出现下图6的安装信息,点击Ignore
图6安装过程
(7)出现下图7的警告信息点击确定(之后会安装其提示的ActiveStatePerlv5.8)继续。
图7安装完成
(8)接下来点击如下图8所示的图标,安装补丁(即上面提到过的警告信息)。
图8补丁信息
(9)一直点击Next直到出现下图9所示界面,选择ActiveStatePerl5安装完成。
图9补丁选择
(10)最后安装TDS510驱动,点击TDS510USB_Setup(CCS3.3).exe,如下图10所示
图10驱动信息
(11)一直点击Next出现下图11所示安装位置,不要修改,继续Next,直到安装完成。
图11驱动安装位置选择
(12)CCS3.3设置,点击下图12所示的图标。
图12设置图标
(13)进入设置界面,选择下图13所示的内容,选择F2812TDSS10USBEMULATOR。
图13设置信息
(14)如下图14所示:
右键点击左侧红线圈住的内容,查看属性,选择f28335Gel文件,然后点击Save&Quit结束配置。
图14gel文件选择
2CCS入门实验
2.1实验目的
(1)熟悉CCS集成开发环境,掌握工程文件的生成方法;
(2)熟悉CCS集成开发环境的常用命令;
(3)掌握CCS集成开发环境的调试方法。
2.2实验内容
(1)DSP源文件的模块化编程;
(2)DSP工程文件的建立与调试;
(3)学习使用CCS集成开发工具的调试工具。
2.3实验背景知识
2.3.1CCS简介
CCS提供了配置、建立、调试、跟踪和分析程序的工具,它便于实时、嵌入式信号处理程序的编制和测试,它能够加速开发进程,提高工作效率。
CCS提供了基本的代码生成工具,它们具有一系列的调试、分析能力。
CCS窗口命令如图1所示。
图1CCS窗口命令介绍
2.3.2使用CCS常遇见文件简介
filename.c:
C程序源文件
filename.asm:
汇编程序源文件
filename.h:
C程序的头文件,包含DSP/BIOSAPI模块的头文件
filename.lib:
库文件
filename.cmd:
连接器命令文件
filename.obj:
由源文件编译或汇编而得的目标文件
filename.out:
经完整的编译、汇编以及连接后生成可执行文件
filename.map:
经完整的编译、汇编以及连接后生成空间分配文件
filename.pjt:
存储环境设置信息的工作区文件
保存配置文件时将产生下列文件:
programcfg.h54:
汇编头文件
programcfg.s54:
汇编源文件
CMD文件简介:
cmd文件用于DSP代码的定位。
由3部分组成:
(1)输入/输出定义
.obj文件:
链接器要链接的目标文件。
.lib文件:
链接器要链接的库文件。
.map文件:
链接器生成的交叉索引文件。
.out文件:
链接器生成的可执行代码;链接器选项。
(2)MEMORY命令
描述系统实际的硬件资源。
(3)SECTIONS命令
描述“段”如何定位。
下面例子则可说明其基本格式:
-osample.out
-msample.map
-stack100
sample.objmeminit.obj
-lrts.lib
MEMORY
{
PAGE0:
VECT:
origin=0xff80,length0x80
PAGE0:
PROG:
origin=0x2000,length0x400
PAGE1:
DATA:
origin=0x800,length0x400
}
SECTIONS
{
.vectors:
{}>PROGPAGE0
.text:
{}>PROGPAGE0
.data:
{}>PROGPAGE0
.cinit:
{}>PROGPAGE0
.bss:
{}>DATAPAGE1
}
下面介绍一下CMD文件中常用的程序段名与含义
.cinit存放C程序中的变量初值和常量;
.const存放C程序中的字符常量、浮点常量和用const声明的常量;
.text存放C程序的代码;
.bss为C程序中的全局和静态变量保留存储空间;
.far为C程序中用far声明的全局和静态变量保留空间;
.stack为C程序系统堆栈保留存储空间,用于保存返回地址、函数间的参数传递、存储局部变量和保存中间结果;
.sysmem用于C程序中malloc、calloc和realloc函数动态分配存储空间。
2.3.3CCS常用指令简介
(1)断点设置
将光标放置在需要设置断点的程序行前,选择Debug→Breakpoints,即完成可一个断点的设置。
(2)3种复位目标板方法
ResetDSP:
Debug→ResetD,初始化所有的寄存器内容并暂停运行中的程序。
使用此命令后,要重新装载.out文件后,再执行程序。
Restart:
Debug→Restart,将PC值恢复到当前载入程序的入口地址。
Gomain:
Debug→Gomain,将程序运行到主程序的入口处暂停。
(3)4种执行操作
执行执行:
Debug→Run,程序运行直到遇到断点为止。
暂停执行:
Debug→Halt,程序停止运行。
动画执行:
Debug→Animate,用户反复运行程序,直到遇到断点为止。
自由执行:
Debug→RunFree,禁止所有断点运行程序。
(4)CCS提供4种单步执行操作
单步进入:
快捷键F8,Debug→stepinto,当调试语句不是基本的汇编指令时,此操作进入语句内部。
单步执行:
Debug→stepOver,此命令将函数或子函数当作一条语句执行,不进入内部调试。
单步跳出:
Debug→stepOut,此命令作用为从子程序中跳出
执行到光标处:
快捷键crtl+F10,Debug→RuntoCursor,此命令作用为将程序运行到光标处。
(5)内存、寄存器与变量的操作
查看变量:
使用view→WatchWindow命令
查看寄存器:
使用view→Registers→CPURegisters命令
查看内存:
使用view→memory命令
(6)图形显示
选择View→Graph→Time/Frequency,如图2所示。
图2图形显示设置
在弹出的GraphPropertyDialog对话窗中,将GraphTitle,StartAddress,AcquisitionBufferSize,DisplayDataSize,DSPDataType等的属性可改变为如图3所示(也可根据具体需要设置属性)。
向下滚动右侧的滚动条或调整dialog框的大小可看到所有的属性。
图中将起始地址为0x2c28的数组进行图形显示。
图3图形显示对话框
点击OK,将出现所设的图形窗口。
如:
在滤波实验中,用以上方法设定的图形窗口,在运行滤波程序后,最终的显示结果如图4所示。
图4图形窗口显示波形
可以在图形上单击右键,选择“FloatInMainTable”,这时图形将浮现在主窗口中,以便观察。
2.4实验准备
(1)将DSP仿真器与计算机连接好;
(2)将DSP仿真器的JTAG插头与28335单元的J1相连接;
(3)启动计算机,当计算机启动后,打开28335实验板的电源开关S1。
观察实验板+5V的电源指示灯灯是否亮;若有不亮,请断开电源,检查电源。
2.5实验步骤
2.5.1创建源文件
(1)双击CCS3.3图标进入CCS环境。
(2)打开CCS选择File→New→SourceFile命令,如图
(3)编写源代码并保存
(4)保存源程序名为math.c,选择File→Save
(5)创建其他源程序(如.cmd)可重复上述步骤。
2.5.2创建工程文件
(1)打开CCS,点击Project-->New,创建一个新工程,其中工程名及路径可任意指定
弹出如下对话框:
(2)在Project中填入工程名,Location中输入工程路径;其余按照默认选项,点击完成即可完成工程创建;
(3)点击Project选择addfilestoproject,添加工程所需文件;
(4)在弹出的对话框中的下拉菜单中分别选择.c点击打开,即可添加源程序math.c添加到工程中;
(5)同样的方法可以添加文件math.cmd、rts.lib到工程中;在下面窗口中可以看到math.c、math.cmd、rts.lib文件已经加到工程文件中。
a)设置编译与连接选项
(1)点击Project选择BuildOpitions;
(2)在弹出的对话框中设置相应的编译参数,一般情况下,按默认值就可以;
(3)在弹出的对话框中选择连接的参数设置,设置输出文件名(可执行文件与空间分配文件),堆栈的大小以及初始化的方式。
b)工程编译与调试
(1)点击Project→Buildall,对工程进行编译,如正确则生成out文件;若是修改程序,可以使用Project→Build命令,进行编译连接,它只对修改部分做编译连接工作。
可节省编译与连接的时间。
编译通过,生成.out文件;
(2)点击File→loadprogram,在弹出的对话框中载入debug文件夹下的.out可执行文件;
(1)装载完毕;
(4)点击debug→GoMain回到C程序的入口;
(5)打开File→Workspace→SaveWorkspace保存调试环境,以便下次调试时不需要重新进行设置。
只要File→Workspace→LoadWorkspace即可恢复当前设置。
3CPU定时器控制实验
3.1实验目的
(1)熟悉如何编写28335的中断服务程序;
(2)掌握长时间间隔的定时器的处理。
(3)掌握片内外设的设置方法。
3.2实验内容
(1)系统初始化;
(2)DSP的初始设置;
(3)定时中断的编写;
3.3实验背景知识
TMS320F28335片内有3个32位时钟。
其中定时器1和定时器2预留给适时操作系统使用(例如DSPBIOS),只有CPU定时器0用户可以在应用程序中使用。
这些时钟有一个32位计数器,当计数器到达0时,产生一个中断。
其中,TIMER0中断为PIE中断,TIMER1中断直接连到CPU的INT13,TIMER2中断直接连到CPU的INT14。
CPU定时器功能框图如下图3.1所示。
图3.1CPU定时器功能框图
3个CPU定时器的中断信号(
)在处理器内部连接不尽相同,如下图3.2所示.
图3.23个CPU定时器的中断信号
定时器在工作过程中,首先用32位计数寄存器(TIMH:
TIM)装载周期寄存器(PRDH:
PRD)内部的值。
计数寄存器根据SYSCLKOUT时钟递减计数。
当计数寄存器等于0时,定时器中断输出产生一个中断脉冲。
定时器计数器(TIMH:
TIM):
TIM寄存器保存当前32位定时器计数值的低16位,TIMH寄存器保存高16位。
每隔(TDDRH:
TDDR+1)个时钟周期TIMH:
TIM减1,当TIMH:
TIM递减到0时,TIMH:
TIM寄存器重新装载PRDH:
PRD寄存器保存的周期值,并产生定时器中断
信号。
定时器周期寄存器(PRDH:
PRD):
PRD寄存器保存32位周期值的低16位,PRDH保存高16位。
当TIMH:
TIM递减到零时,在下次定时周期开始之前TIMH:
TIM寄存器重新装载PRDH:
PRD寄存器保存的周期值;当用户将定时器控制寄存器(TCR)的定时器重新装载位(TRB)置位时,TIMH:
TIM也会重新装载PRDH:
PRD寄存器保存的周期值。
定时器控制寄存器TCR:
主要有TIF位:
定时器中断标志,当定时器计数器递减到0时,该位置1。
可以通过软件向TIF写1将TIF位清零,但只有计数器递减到0时才会将该位置位;TIE位:
CPU定时器中断使能;如果定时器计数器递减到零,TIE置位,定时器将会向CPU产生中断;TRB位:
定时器重新装载控制位,当向TCR的TRB位写1时,TIMH:
TIM会重新装载PRDH:
PRD寄存器保存的周期值,并且预定标计数器(PSCH:
PSC)装载定时器分频寄存器(TDDRH:
TDDR)中的值;定时器停止状态位TSS,要停止定时器TSS位置1。
3.4实验要求
通过本实验,熟悉中断结构及用中断程序控制程序流程,掌握定时器的应用。
3.5实验程序功能与结构说明
3.5.1定时器实验主文件
Example_2833xCpuTimer.c:
包含定时器初始化和配置函数。
3.5.2程序流程图
CPU定时器主程序流程图如图3.3所示。
CPU定时器0中断程序流程图如图3.4所示
图3.3CPU定时器主程序流程图
图3.3CPU定时器0中断程序流程图
3.5.3实验准备
首先将E:
\DSP28335相关\ccs\dspdemo_28335的文件夹拷贝到C:
\CCStudio_v3.3\MyProjects子目录下。
(1)将DSP仿真器与计算机连接好;
(2)将DSP仿真器的JTAG插头与实验板的J1相连接;
(3)打开SEED-DTK2812的电源。
观察实验板的+5V电源指示灯是否亮;若不亮,请断开电源,检查电源。
3.5.4实验步骤
(1)打开CCStudio3.3,进入CCStudio3.3的操作环境。
(2)打开C:
\CCStudio_v3.3\MyProjects\dspdemo_28335\DSP2833x_examples\cpu_timer文件夹,装入Example_2833xCpuTimer.pjt工程文件。
(3)打开C:
\CCStudio_v3.3\MyProjects\dspdemo_28335\DSP2833x_examples\cpu_timer\Debug文件夹,装载Example_2833xCpuTimer.out文件,进行调试。
(4)在Example_2833xCpuTimer.c程序的interruptvoidcpu_timer0_isr(void)子函数处设置断点。
(5)运行程序,点击Animate,程序停在断点处,表明已进入定时器中断。
4片内RAM仿真实验
4.1实验目的
(1)了解TMS320F28335的内部存储器空间的分配及指令寻址方式;
(2)学习用CodeComposerStudio修改、填充DSP内存单元的方法;
(3)学习操作TMS320F28335内存空间的指令。
4.2实验内容
(1)读写DSP内存单元数据;
(2)复制内存单元的数据。
4.3实验要求
通过本试验,了解TMS320F28335存储空间的操作,掌握DSP内存单元数据的存取、复制操作。
4.4实验程序功能与结构说明
4.4.1Ramtest实验文件
(1)ramtest.c:
这是实验的主程序,包含了系统初始化,向DSP内存中填充数据。
(2)28335_RAM_INK.cmd,DSP2833x_Headers_nonBIOS.cmd,28335ramtest.cmd:
声明了系统的存储器配置与程序各段的连接关系。
4.4.2实验准备
(1)将DSP仿真器与计算机连接好;
(2)将DSP仿真器的JTAG插头与28335单元的J1相连接;
(3)打开28335实验板的电源。
观察实验板上+5V的电源指示灯是否亮;若有不亮的,请断开电源,检查电源。
4.4.3实验步骤
(1)打开CCStudio3.3,进入CCStudio3.3的操作环境。
(2)装入ramtest.pjt工程文件,添加28335.gel文件。
(3)修改源程序ramtest.c中的语句:
“sramfill(0x00200000,(unsignedlong)0x40000,0x55aa);”
改成“sramfill(0x003FA000,(unsignedlong)0x00100,0x55aa);”。
(4)编译:
DEBUG->BUILDALL。
(5)装载程序ramtest.out。
(6)运行RUN->DEBUG->HALT。
(7)观察数据区运行结果
显示片内数据存储区:
打开DATA窗口,起始地址输入0x003FA000打回车。
此时可观察到Data窗口中前256个单元的值被写入0x55aa。
5FFT仿真实验
5.1实验目的
(1)加深对DFT算法原理和基本性质的理解;
(2)熟悉FFT的算法原理和FFT子程序的算法流程和应用;
(3)学习用FFT对连续信号和时域信号进行频谱分析的方法。
5.2实验内容
(1)DSP初始化;
(2)A/D模拟采样值发生函数;
(3)FFT的运算程序。
5.3实验背景知识
傅立叶变换是一种将信号从时域到频域的变换形式,是声学、语音、电信和信号处理等领域中的一种重要分析工具。
离散傅立叶变换(DFT)是连续傅立叶变换在离散系统中的表现形式,由于DFT的计算量很大,因此在很长时间内其应用受到很大的限制。
快速傅立叶变换(FFT)是离散傅立叶变换的一种高效运算方法。
FFT使DFT的运算大大简化,运算时间一般可以缩短一至两个数量级,FFT的出现大大提高了DFT的运算速度,从而使DFT在实际应用中得到广泛的应用。
在数字信号处理系统中,FFT作为一个非常重要的工具经常使用,它甚至成为DSP运算能力的一个考核因素。
对于有限长离散数字信号{x[n]},0≦n≦N-1,其离散谱{x[k]}可以由离散付氏变换(DFT)求得。
DFT的定义为
可以方便的把它改写为如下形式:
即
称为蝶形因子式旋转因子。
对于旋转因子
来说,有如下的对称性和周期性:
对称性:
;
周期性:
。
FFT就是利用了旋转因子的对称性和周期性来减少运算量的。
FFT算法将长序列的DFT分解为短序列的DFT。
N点的DFT先分解为两个N/2点的DFT,每个N/2点的DFT又分解为两个N/4点的DFT等等,最小变换的点数即基数,基数为2的FFT算法的最小变换是2点DFT.
一般而言,FFT算法分为时间抽选(DIT)FFT和频率抽选(DIF)FFT两大类。
时间抽取FFT算法的特点是每一级处理都是在时域里把输入序列依次按奇/偶一分为二分解成较短的序列;频率抽取FFT算法的特点是在频域里把序列依次按奇/偶一分为二分解成较短的序列来计算。
DIT和DIF两种FFT算法的区别是旋转因子出现的位置不同,(DIT)FFT中旋转因子
在输入端,(DIF)FFT中旋转因子
在输出端,除此之外,两种算法是一样的。
在本设计中实现的是基2的频率抽取FFT算法,具体的实现过程可参见源程序及其注释。
5.4实验要求
对不同的输入信号进行FFT变换,观看不同信号在频域内的特性。
5.5实验程序功能与结构说明
5.5.1FFT实验文件
(1)FFT.c:
实验主程序,包含系统初始化,AD初始化A/D采样,FFT变换,以及将FFT变换结果做取模运算;
(2)F28335.cmd:
声明了系统的存储器配置与程序各段的连接关系;
(3)F28335.gel:
系统初始化;
(4)*.h:
各个源文件的头文件;
(5)rts2800_fpu32.lib:
库函数文件。
5.5.2实验准备
首先将FFT.c的文件夹拷贝到:
C:
\CCStudio_v3.3\MyProjects盘子目录下。
(1)将DSP仿真器与计算机连接好;
(2)将DSP仿真器的JTAG插头与28335实验板的J1相连接;
(3)打开28335实验板的电源。
观察28335实验板的+5V电源指示灯是否亮;若有不亮的,请断开电源,检查电源。
5.5.3实验步骤
(1)打开CCS,进入CCS的操作环境。
(2)装入FFT.pjt工程文件,添加f28335.gel文件,开始进行调试。
(3)编译、连接生成FFT.out文件,装载程序FFT.out。
(4)运行RUN->HALT。
(5)观察数据和显示图像。
其中图像显示设置对话框中,Startadderss:
输入起始地址;AcquisitionBufferSize:
输入数据个数;DisplayDataSize:
输入显示数据个数(注意:
显示个数要与程序中的采样个数一致);DSPDataType:
data数据类型。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 28335 实验 指导书 616 资料