51、以ya
i1ixi为例,编写完整的。asm汇编源程序以及。cmd命令文件,写出程序注释,并叙述在ccs2.0集成开发环境下,调试程序的基本步骤。其中a和x的值由自己确定。解:
title "mpy_"
mmregs;将存储映像寄存器导入列表。
stack",10h;给堆栈段分配空间。bssa,5;将11个字空间分配给各个变量。bss x, y,1
pa0 .set 0;将端口pa0全部置 start;定义标号定义数据**段table:
word 4,4,4,4,4(设置8个单元的16位整型常量,其初值为4).word 4,4,4,4,4
text;定义文本**段start:
stm #0,swwsr;将等待寄存器设为0,表示不等待stm #stack+10h,sp;设堆栈指针。
stm#a,ar1;将ar1指向变量a的地址。
rpt #9;从程序存储空间转移9+1个值到数据储存空间mvpd table,*ar1+
call sum;调用sum子程序end: bend;循环等待。
sum: stm #a,ar3;将ar3指向变量a的地址stm #x,ar4;将ar4指向变量x的地址。
rptz a,#4;将a清0,并重复执行下一条指令4+1次mac*ar3+,*ar4+,a
stl a,@y;将寄存器a中的低16位存入y地址空间portw @y,pa0;将y地址中的值输出到输出口ret;子程序返回。end;程序结束。
2、试举一例dsp实际应用的例子,具体要求如下:1)画出系统基本的硬件连接电路或硬件电路框图;2)对系统的工作原理及工作过程进行详细介绍;3)给出dsp软件程序和必要的注释;4)报告内容条理清楚,思路清晰;5)报告要求手写完成,格式要规范美观。解:
基于tms320c54x dsp的函数发生器的设计。
1)硬件结构框图。
2)设计原理。
dsp芯片。
eda拨码开关。
aduc812
波形产生是dsp的重要应用之一。而正弦信号发生器的设计则是波形产生应用的一个重要方面,它在通信领域有着广泛的应用。利用dsp产生正弦信号有三种方法:
查表法(lookuptableapproach)、多项式逼近法(polynomialapproximation)和迭代法(recursivealgorithm)。这三种方式各有其应用范围。本设计题目以tms320c54xdsp为目标器件,设计并实现基于迭代法的“正弦序列生成”算法及其dsp程序。
sin(x)xx
xxxx(1x
xxx为了减少使用的存储器,可以采用正弦信号的对称性,复制90~180度的正弦值和180~360度的正弦值。
余弦信号的产生同样可以采用多种方法产生。一是采用公式计算得到,二是采用正弦信号变换得到。
方波信号产生可以通过轮流输出两个不同大小的数值通过a/d转换得到。
3)源**。
title ""
startstart:
textdisc:
ref d_xs,d_sinx,d_xc,d_cosx,sinx,cosxsin_x: .usect "sin_x",360
cos_x: .usect "cos_x",360stack: .usect "stack",10hk_theta .set
stm #stack+10h,spstm k_theta,ar0stm 0,ar1
stm #sin_x,ar6stm #90,brcrptb loop1-1ldm ar1,ald #d_xs,dpstl a,@d_xsstl a,@d_xccall sinxcall cosxld #d_sinx,dpld @d_sinx,16,ampya @d_cosxsth b,1,*ar6+
mar *ar1+0
loop1:stm #sin_x+89,ar7stm #88,brcrptb loop2-1ld*ar7-,astl a,*ar6+loop2:stm #179,brcstm #sin_x,ar7rptb loop3-1ld *ar7+,aneg a
stl a,*ar6+loop3:stm #sin_x,ar6stm #360,brcrptb loop4-1ld *ar6,a
add #1000000000000000b,astl a,*ar6+loop4:stm #cos_x,ar6stm #0259h,ar7stm #269,brcrptb loop5-1ld *ar7+,astl a,*ar6+loop5:stm #0200h,ar7
stm #90,brcrptb loop6-1ld *ar7+,astl a,*ar6+loop6:stm #cos_x,ar6stm #1,ar0stm #360,bkdisf:
fangbo_x: .usect "fangbo_x",stm #stack+10h,spstm #fangbo_x,ar6stm #90,brcrptb loop6-1ld#7fffh,a
stl a,*ar6+loop7:stm #90,brcrptb loop8-1ld #7fffh,aneg a
stl a,*ar6+
loop8:stm#fangbo_x,ar7stm #180,brcrptb loop9-1ld *ar7+,a
stl a,*ar6+loop9:stm#fangbo_x,ar6stm #1,ar0stm #360,bkstm #400h,ar6stm #468h,ar0dingshi:
stm #stack+10h,spstm #3fa0h,pmststm #00,prd0stm #0269h,tcr0stm #0008h,ifrstm #0008h,imr
rsbx intmstm #10,ar1end:b endtint0:
pshmtbanz end1,*ar1-stm#10,ar1
portw*ar6+%,01h
cmpr00h,ar6bcover,tcbend1over:
portr 00h,*ar2;读拨码开关。
cmpm *ar2,#00h;为0时输出余弦波,为1时输出方波bc loop8,tc
stm#600h,ar6stm#602h,ar0b eeloop8:
stm #400h,ar6stm #568h,ar0ee:ssbxtc
end1: popmtretesinx:
def d_xs,d_
table_s: .word 1556hd_coef_s .
usect "coef_s",4d_ "sin_vars",1d_squr_xs .usect "sin_vars",1d_temp_s .usect "sin_vars",1d_sinx .
usect "sin_vars",1d_1_ "sin_vars",ssbx frct
stm #d_coef_s,ar5
rpt #mvpd #table_s,*ar5+stm #d_coef_s,ar3stm #d_xs,ar2stm #d_1_s,ar4st #7fffh,d_1_ssqur *ar2+,ast a,*ar2||ld *ar4,b
masr *ar2+,*ar3+,b,ampya asth a,*ar2
masr *ar2-,*ar3+,b,ampya *ar2+st b,*ar2||ld *ar4,b
masr *ar2-,*ar3+,b,ampya *ar2+st b,*ar2||ld *ar4,b
masr *ar2-,*ar3+,b,ampya d_xssth b,d_sinxretcosx:
def d_xc,d_cosxd_coef_c: .usect "coef_c",table_ 4000hd_ "cos_vars",1d_squr_xc .
usect "cos_vars",1d_temp_ "cos_vars",1d_ "cos_vars",1c_1_ "cos_vars",ssbx frct
stm #d_coef_c,ar5rpt #
mvpd #table_c,*ar5+stm #d_coef_c,ar3stm #d_xc,ar2stm #c_1_c,ar4st #7fffh,c_1_c
squr *ar2+,ast a,*ar2||ld *ar4,b
masr *ar2+,*ar3+,b,ampya asth a,*ar2
masr *ar2-,*ar3+,b,ampya *ar2+st b,*ar2||ld *ar4,b
masr *ar2-,*ar3+,b,asfta a,-1,aneg a
mpya *ar2+mar *ar2+retd
add *ar4,16,bsth b,*ar2ret
sect ".vectors"
refmain
align0x80reset:
bd mainstm #200,spnmi:retenopnop
nopsint17 .space 4*16sint18 .space 4*16sint19 .
space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .
space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .
space 4*16sint26 .space 4*16sint27 .space 4*16sint28 .
space 4*16sint29 .space 4*16sint30 .space 4*16
int0:rete
nopnopnopint1:rete
nopnopnopint2:rete
noptint:b tint0rint0:rete
xint0:rete
rint1:rete
xint1:rete
int3:rete
endcmd文件: startmemorysections > daram3 page 1cos_x: align(512){}daram3 page 1fangbo_x:
align(512){}daram3 page >vecs page 0}
3、谈谈你学习dsp的心得体会。
根据一学期以来对dsp这门课程的学习,学到了很多dsp相关的知识。了解了如何根据实际需求选择dsp芯片,也知道了c54x的汇编和链接过程,还掌握了c54x的寻址方式。
一开始学dsp的时候也没什么感觉,不知道从**下手。手上的资料只有教科书,后来去图书馆借了本《tms320c54x系列dsp的cpu与外设》,作为工具书,很实用,有例子。边看例程,边对着实验指导书,看得主要是如何初始化,需要对每个外设进行哪些寄存器的初始化,寄存器为什么这样设置,程序如何进中断,如何出中断等等。
边看书边做实验,效率会高很多,也就能慢慢理解了。
以下是我总结的一些初级知识。
先学习dsp的硬件基础:了解cpu结构、中断、emif、hpi、gpio、spi、timer、供电方式、时钟;②了解dsp互连的存储器:sdram、flash、fifo、双口ram、sdsram等不需深入研究;③了解cpld/fpga的硬件结构、连接原理、veriloghdl编程语言需深入研究;④了解dsp bootloader不需深入研究;
了解dsp和外部通信的接口:pci、usb、lan、uart等,有时间可以看看dm642的videoport.⑥学习数字电路、模拟电路、电路分析的知识;
学好一种pcb绘制软件如proteldxp2006;⑧学习信号完整性、学习传输线理论,特性阻抗知识;
另外对老师提几点意见:
1.老师可以根据实验要做的内容在课堂上深入讲解,这样能让同学们认真听,认真记以便于实验课程的顺利完成,比纯理论效果会好点。
2.课上应该多讲解一些例子,由浅而深,我觉得上课关键是调动同学的积极性,能吸引学生的很多是夹杂着现实生活中的事。
DSP作业
1 以y ax为例,编写完整的。asm汇编源程序以及。cmd命令文件,写出程序注释,iii1 并叙述在ccs2.0集成开发环境下,调试程序的基本步骤。其中a和x的值由自己确定。解 title mpy mmregs 将存储映像寄存器导入列表。stack 10h 给堆栈段分配空间。bssa,5 将11个...
DSP作业
第一章。1 什么是dsp?2.dsp芯片的特点有哪些?3.dsp采用改进的哈佛总线结构,画出改进的哈佛总线结构示意图。4.dsp中由哪些地址和数据总线组成多总线结构?5.dsp芯片的选型一般是从哪几个方面进行考虑?6.简述ti公司的dsp三大平台和它们各自的应用场合。7.dsp芯片发展趋势应该朝着哪...
DSP作业
一 填空。1.dsp有 dsp和浮点dsp。2.dsp采用的是 的结构并广泛应用流水线技术。片内有1组程序总线,组数据总线和4组地址总线。4.累加器a,b是 位的。5.数据寻址的方式有立即寻址直接寻址,等。6.程序的的基本结构有顺序结构,循环结构,四种。7.程序必须经过 和 才能运行。二。选择。1....