东南大学DSP第一次实验报告Word文档下载推荐.docx
《东南大学DSP第一次实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《东南大学DSP第一次实验报告Word文档下载推荐.docx(22页珍藏版)》请在冰豆网上搜索。
![东南大学DSP第一次实验报告Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-12/9/faa08a14-aceb-479e-a871-810cc15bc8c6/faa08a14-aceb-479e-a871-810cc15bc8c61.gif)
软件集成开发坏境(CodeComposerSnidio33):
完成系统的软件开发,进行软件
和硬件仿真调试.它也是硬件调试的辅助于•段。
开发系统aCETEK5100USB):
实现硬件仿真调试时与破件系统的通信•控制和读取硬件系统的状态和数据。
评估模块(ICETEKF28335.A等):
提供软件运行和调试的平台和用户系统开发
的参照。
CodeCoiiq)oserStudio3.3主要完成系统的软件开发和调试。
它提供一整套的程序编制■
维护、编译.调试环境,能将汇编语言和C语肓程序编译连接生成COFF(公共0标文件)格
式的可执行文件,并能将程序下載到目标DSP上运行调试。
用户系统的软件部分可以由CCS建立的工程文件进行管理.工程一般包含以卜•儿种文
ft:
源程序文件:
C语言或汇編语肓文件eASM或*.C)
头文件CTH)
标准C语言程序
(2)标准C语言程序
CCS支持使用标准C诺言开发DSP应用程序.当使用标准C语言編制的程序时.其
源程序文件名的后缀应为.c(如:
FPU.C)。
CCS在编译标准C语言程序时,首先将其编译成相应汇编语言程序•再进一步编译成冃标0$卩的町执行代码。
最后生成的是coff(公共目标文件)格式的可下载到DSP中运行的文件,其文件名后缀为.oiit。
由于使用C语言编制程序•其中调用的标准C的库函数由专门的库提供,在编译连接时编译系统还负资构建C运行环境。
所以用户工程中需要注明使用C的支持库。
(3)命令文件的作用
命令文件(X件名后«
为《1】
(1)为链接程序提供程序和数据在貝体DSP锁件中的位S分配信息。
通过编制命令文件,我们町以将某些特定的数据或程序按照我们的意图放置在DSP所管理的内存中。
命令文件也为链接程序提供了DSP外扩存储器的描述•在程序中使用CMD
文件描述破H牛存储区,可以只说明使用部分,但只要是说明的,必须和锁件匹配,也就是只要说明的存储区必须是存在的和叮用的。
(4)内存映射(map)文件的作用
一般地,我们设计、开发的DSP程序在调试好后・要固化到系统的ROM中。
为了更精确地使用ROM空间,我们就需要知道程序的兴小和位置,通过建立目标程序的map文件可以了解
DSP代码的确切信息。
当需要更改程序和数据的小和位置时■就要适当修改cmd文件和
源程序,再重新生成map文件來观察结果。
另外,通过观察map文件,町以掌握DSP存储器的使用和利用情况,以便进行存储器方而的优化工作。
(5)浮点运算
TMS320F28335是一款32位浮点通用数字信号处理芯片,它具冇存储空间人、运算
精度高等特点•
4-实验步骤
1.实验准备
连接实脸箱,检查电源线、JTAG仿真线、USB线等是否连接好,然后打开电源。
2•i殳置CodeComposerStudio3.3
双击心动SetupCCStudiov33>
在AvailableFactoryBoards栏里选择F283xx的Emulator
开发板型号(),然后点击Save&
Quit.C动CCS。
3•启动CCS。
4・添加工程
点击菜单栏ProjectVOpen,打开工程文件Lab202-float5.编译源文件、下我町执行程序
⑴单击菜单Project"
、“RebuildAU”。
⑵执行File->
LoadProgram.在随后打开的对话框中选择刚刚建立的out文件•完成后•系
统自动打开一个反汇编窗H“Disassembly"
。
6•浮点运算实验
打把yl和y2添加到观察®
h运行程序.观察U和y2结果。
然后选择菜单栏的DEug中的Real-timeModeO再在WatchWindow中单击右键.选择ContinuousRefresho然后按F5・
或者Debug菜单•下的Rum运行程序・观察yl,y2的数值的变化。
实验结果如下:
(1)n接运行
初始时刻yl=y2=0・一段时间后,yl.y2的值均发生变化。
理论上来说,t>
0时,
y2的值陶始终保持不变Ily2=13.28,而yl每单位时间增加13.28。
Hwe1
Value
Typ«
1Radix1
QRB
0x00000000
po・・.
htx
0STP
po.,
h«
x
QROH
po…
hex
QRIH
0R2H
P6.
0R3H
P6・
QMH
po・・
QRSH
QR6H
$R7H
0yl
8.268386e+07
float
Qy2
1328
Byl
8.268386tt07
float1
13.28
fLc«
t
・flOftt
n
r
1
图1tl时刻yl和y2的值
Name|
Value1Type|
Radix1
QR£
po.
eSTF
P6
pc
hftX
0RIH
QR3H
QR4HQRSH
QR7H
Oyl
WatchLoc&
$处Natch1
图2t2时刻yl和y2的值
从图1和图2町以看出,y2始终等于13.28不变•yl的值一直在堆加.与理论一致。
(2)单步运行
添加如下图所示断点
1&
Exup“2833・FPILc
匚忙「X
cil»
10;
ci2=.6;
xl=7;
22=7.3;
bl=■4.2;
b2•8.9;
―f
■
•
yl=Bl/xl+bl;
y2=+b2;
while
(1)
f
yl+-y2;
,,TWa57处刃"
2力V"
;
1
)
}
intreod_3ignnls(1nt*input)
1f
11
…在此取采黑栽擔徨号放繪入缓冲区丄冲"
,仃
r*tum(1J;
}
,八A57aww.
4
►
图3添加断点
初始时刻yl=y2=0・单步运行如卞:
V^ue
1丁yp*
Rftdix1
QXI
OxCOOCOOCO
hix
QST?
Orrnamora
hr
•JtCH
foigr
«
RIH
OXCOOCOOCO
poiRUr
QO
(oinUr
gOt
}oi€Ur
QX4][
OkCOOCOOCO
fOinttft
QHEM
peiMor
hftK
0MM
poiLler
Qm
pointer
Qzl
5628E71
flo&
l
Hoat
Q沱
0G
Hoftl
eri
5628571
£
lD<
Q虫
00
104.t
floAt
P3
金UJg卜Locob刪Hitch1
图4执行到第一个断点处yl和y2变化值
ITyp.IE.iix
QKB
OxOCOOOJOO
Lex
0STF
poinlet
QKOK
O^flXOOCOOO
OxOCOOCOOO
Q£
2H
Loz
QESK
(bdXOOCOOO
QMK
etsK
pointv
Uz
QK6rf
tex
OxOCQOCOOO
ktz
T1
5.628571
flctt
L»
tt
]3.28
fl»
at
lc&
l»
y2
】3・28
Heat
lxt
矗IHabhLocal;
&
Hatch1
图5
执行到第二个断点处yl和y2的变化值
Kam«
1Value
1Typ<
0JtE
0x30030030
K«
QSTF
0x30000000
poinUr
Q3tCH
00030030
p«
inl<
Ux
QXIK
OQOCDOCOO
QJt2H
0x30000030
$X3H
QS4H
9J£
H
QQfmxoo
0xeH
oxjomoojo
poinltr
QX7H
000000)0
Ltx
Qrl
J8907
Gott
y2
13,28
Goat
l”t
n1
Id.90357
fbd
r2
flxt
%kJSchLocas余Match1
图6执行到第三个断点处yl和y2的变化值
Ntire
1yg
1Xtdiz1
0O
DzOOOOQOOO
p・int・r
Mx
OSTF
OxOOOOGOOD
p•inter
K<
0KOH
OxOODOGOOD
p^intn
0HH
DxOODOGOOD
OxCDOOOaiO
p^xnln
Q13H
0,8000000
pfintn
h・x
0R4H
OxCOOOGOOO
ptinlir
0&
SH
O.COOOQ8D
Xoc
dI6H
OtCOOOCOOD
ORTH
OxCOOOOCDD
pwinter
Xtx
32.18857
lcat
□oat
W
13.2B
Ooftt
Qyl
32,18857
Vyz
n.zB
CIc&
tloat
rs
#WachUote&
Matck1|
图7再一次执行whileO
从实验结果町以看出,yl和y2的变化情况与理论结果一致。
7.文件输入能出
卜•面介绍如何从PC机上加载数据到DSP上。
用于利用已知的数据流测试算法。
在完成卞面的操作以前,先介绍CodeComposerStudio的Probe(探针)断点,这种断点允许用户在指定位置提取/注入数据・Probe断点可以设置在程序的任何位置•.当程序运行到Probe断点时.与Probe断点相关的爭件将会被触发,当事件结束后,程序会继续执行。
在这一节里Probe断点触发的爭件是:
从PC机存储的数据文件中的一段数据加载到DSP的缓冲区中。
注:
在CCS3.3以上版本中Probe断点被合并到防胡I断点中断几
在真实的系统中,read_signals函数用于读取A/D模块的数据并放到DSP缓冲区中。
在
这里•代替A/D模块完成这个工作的足Probe断点。
当执行到曲数read_signals时.Probe断点完成这个工作。
(1)将代码段中被注解掉的read_signals(input);
前的注释符号删除•ffi新编译卞载°
(2)在程序彳jread_signals(input);
上单击鼠标右键选择"
Togglesoftwarebreakpoint"
・设
豐软件断点。
(3)再在同一行上单击鼠标右键■选择“softwarebreakpoint”,“edit”来设g断点.此时
打开了一个新的窗II。
并修改相关内容。
I•忆IX
Tk*夕OitahrvKk^Pin*bvlan^
图8设置Pmbe断点并修改相关设置
此时,已经配置好了Pinbe断点和与之关联的爭件•进一步的结果在下面实验中显示。
8•图形功能简介
使用CCS的图形功能检验上一节的结果。
首先进行卜•面设置操作:
/F^»
y3frIPSblUKBQlaloF/CPU.l-T・Sy?
2»
S8-CodoCotpn<
cStudio
<
/P2S335ZPS510fiBulatoi/CrnIIlS320C28siCod*CoapotfriStudit
*3-liCTfrufir.,.'
>
rwFiflB
BGraphPropertyDialog
IDispl^yType
SiTim
A
ICr^phTiUt
Input
N
1StartAddress
irLp_I>
uffer
|Page
Dm
1AcquisitionBufferSize
100
■IndexTncrement
■DisplayDataSize
DSrDdtftType
116"
bitsignedinteger
成
Q-value
S«
fhplin(R<
t<
(Hz)
PlotDate.From
LefttoRisht
L«
ft*shift«
dD&
tftDisplay
Y“
.=/
Autoscale
Oit
DCyjuG
AxesDispl$y
Oil
TimDisplayUnit
5
V
r…S2K…]Cancel1
Kelp1
图9设S图形功能
在弹出的图形窗11中单•击鼠标右键,选择"
ClearDisplay"
然后按Alt+F5运行程序•观察input甜H的内容。
图10inputis11的正弦波形
基于DSP系统的实验一一指示灯和拨码开关
一.实验目的
1.了解ICETEK-F28335-A评估板在TMS32OF28335DSP外部扩展存储空间上的扩展。
2•了解ICETEK-F28335-A评估板上指示灯和拨码开关扩展原理。
3.学习在C语言中便用扩展的控制寄存器的方法。
2-实验设备
计算机,ICETEK-F28335.A实验箱(或ICETEK仿真器+ICETEK-F28335-A评估板
+相关连线及电源)。
3.实验原理
1.TMS320F28335DSP的存储器扩展接I】
存储器扩展接「1是DSP扩展片外资源的主要接【1・它提供了一组控制信巧和地址、数据线.町以扩展各类存储器和存储器、寄存器映射的外设。
JCETEK-F28335.A评估板在扩展接门上除了扩展了片外SRAM夕卜,还扩展了指示灯、
DIP开关和D/A设备。
具体扩展地址如下:
0x180004-0x180005:
D/A转换控制寄存器
0x180001:
板上DIP开关控制寄存S
0x180000:
板上指示灯控制寄存器
■与ICETEK・F28335.A评估板连接的ICETEK-CTR显示控制模块也使用扩展空间控
制主要设备,相关寄存器地址如下表:
名称
地址
功能
属性
CTRGR
0x208000
企!
甘如¥
存養
CTRLCDCR
0x208002
液晶刃泯寄心益
CTRLCDCMDR
0x208001
液為命令寄心益
CTRLCDLCR
0x208003
液晶左、卜W拎:
制當心器
CTRLCDRCR
0x208004
泱品右半Jjf拧制住佟器
CTRLR
0x208007
轴肋拧总寄心器
CTRLA
0x208005
发比一枚管控剳住存器
CTRKEY
谜盈数丸冋汝奇心器
R
CTRCLKEY
汇:
除筑£
{奇存茶
2.指示灯与拨码开关扩展原理
4.实验步骤
1.打开工程文件
丁程文件为:
Lab301-Led
2.添加代码,编译、卜•載程序。
完成LED工程中led.c里的三个要求^即TASK1、TASK2.TASK3。
其中TASK3应注总:
DIP的端
【】地址定义.并II可以通过修改LED4DIP两者之间的对应关系,来修改拨码开关与LED
灯的对应关系,请自行尝试。
3.运行程序观察结果
5-实验结果
1.测试LED
//LED=1;
//LED=2;
LED=6;
//提示^分别测试这些代码点亮了哪些LED.令助丁•理解
LED=1时第一个灯亮,LED=2时第二个灯亮,LED=6时中间两个灯亮
2.TSAKbLED灯以递增的方式点亮
LED程序:
ffdefineLED(•(unsignedshortint*)0x180000)
for(;
;
)//递增点亮
LED=0x01;
Delay(lOOO);
LED=0x02:
Delay(lOOO):
LED=0x04:
LED=0x08;
Delay(lOOO);
/*for(;
;
)〃递减点亮
LED=0x01:
LED=0x02;
LED=0x08:
开关程序:
#defineSW(*(unsignedshortint*)0x100001)//添加丨的定义
LED=SW:
町知:
映射在扩展存储器空间地址上的指示灯寄存器在设置时是低4位有效的・数据的%殳低位对应指示灯D1,次低位对应D2,•…依次类推。
映射在扩展存储器空间地址上的拨码开关控制寄存器在回读时是低4位冇效的,数据的址低位对应拨码开关1,次低位对应2,•…依次类推。
JJ
eal11meCsp.co*.&
水一F283354ft叫PW
Ifffffi
L12941
wTpTSSri^
图5.1实验现象
ICETEK-F28335-A评估板上的指示灯控制寄存器是町读可写的,请问用什么办法M
以回读指示灯状态?
答:
ftdefineLED(*(unsignedshortint*)0x180000)
unsignedintLIGHT;
〃定义变量
LIGHT=LED:
再将LIGHT添加到观察窗,选择菜单栏中Debug的Real-timeMode.在WatchWindow中
选IfContinuousRefresh.并选择16进制观察。
运行程序,就町以观蔡到指示灯的状态。
4.
学会C语言中断程序设汁,以及运用中断程序控制程序流程。
计算机,ICETEK-F28335-A实验箱(或ICETEK仿真器+ICETEK-F28335-A系统板+相关
连红及电源)O
1.通用定时器介绍及共控制方法
TMS320F28335A内部有三个32位通用定时器(TIMERO1/2),定时器1和2被保留给
实时操作系统(DSPBIOS)用,只有定时器0町以提供给用户使用。
2•中断响应过程
a.接受中断请求。
必须由软件中断(从程序代码)或锁件中断(从一个引脚或一个基
丁・芯片的设备)捉出请求去暂停当前主程序的执行。
b.响应中断。
必须能够响应中断请求。
如果中断是町屏蔽的,则必须满足一定的条件,
按照一定的顺序去执行。
而对于非可屏蔽中断和软件中断,会立即作出响应。
C.准备执行中断服务程序并保存寄存器的值0
d・执行中断服务子程序。
调用相应得中断服务程序ISR,进入预先规定的向量地址,并
且执行已写好的ISR。