-m example.map -e start MEMORY {
PAGE0:
EPROM: org=0E000h, len=100h VECS: org=0FF80h, len=04h PAGE1:
SPRAM: org=0060h, len=20h DARAM: org=0080h, len=100h
} (5分) SECTIONS {
.text :>EPROM PAGE0 .data :>EPROM PAGE0 .bss :>SPROM PAGE1 STACK:>DARAM PAGE1 .vectors :>VECS PAGE0
} (5分) 得 分 评分人 五、编程题(本大题共14分)试编写|被除数|≥|除数|,
且商为整数的除法运算程序,完成12384÷512的运算。程序
内容包括符号的处理。
.bss num, 1 .bss den, 1 .bss quot, 1 .data
table: .word 12384
.word 512 (4分) .text
start: STM #num, AR1
RPT #1
MVPD table , *AR1+ LD @den, 16, A
MPYA @num (5分) ABS A
STH A, @den LD @num, A ABS A RPT #15
第 5 页 共 7 页
SUBC @den, A (5分) XC 1, BLT NEG A
STL A, @quot
End: B end
得 分 评分人 六、设计题(本大题共14分)有一个阶数为N=8的FIR滤
波器,其单位冲击响应序列h(n)如下:h(0)=0.1, h(1)=0.2,
h(2)=0.3, h(3)=0.4, h(4)=0.4, h(5)=0.3, h(6)=0.2, h(7)=0.1 ,试根据上述滤波器系数,编写一个DSP程序实现该滤波器。要求用循环缓冲区法实现。
f=[ 0.35, 0.4]; b=fir1(29,f); .mmregs .def start
.bss y,1 (3分)
xn .usect “xn”,1 a .usect “a”,1 PA0 .set 0 PA1 .set 1 .data
table: .word a0,a1,…,a29 (3分)
.text
start: SSBX FRCT
STM # b0, AR1 RPT #29
MVPD table, *ARI+ STM # xn+29, AR2 STM # a+29, AR3 STM #30, BK STM #-1,AR0
LD # xn, DP (4分) PORTR PA1, @xn
FIR2: RPTZ A, g6
MAC *AR2+0%, *AR3+0%, A STH A, @y PORTW @y, PA0 BD FIR2
PORTR PA1, *AR2+0% (4分) .end
第 6 页 共 7 页
得 分 评分人 七、综合设计题(本大题共14分)试用定时器和中断方式
设计一个方波信号发生器,并通过DSP的输出引脚XF输出。
要求方波信号的周期为40s,占空比为50%,方波周期由片上定时器0确定,假定DSP系统时钟频率为4MHz。请根据设计指标给出设计参数,并写出相关程序。已知定时器0的各寄存器地址为:TIM0:0024H , PRD0:0025H , TCR0:0026H,定时控制寄存器TCR的位段分布如下:
5~12 11 10 9~6 5 4 3~0 保留 soft free PSC TRB TSS TDDR TI MO . set 0024H
PRD0 . set 0025H TCR0, . set 0026H
K_ TCR0_ SOFT . set 0B << 11 (3分) K_ TCR0_ FREE .set 0B << 10
K_TCR0_PSC .set 1001B <<6 K_TCR0_TRB .set lB <<5 K_TCR0_TSS .set 0B <<4
K_ TCR0_ TDDR .set 1001B << 0
K_ TCR0 . set K_ TCR0_ SOFT | K_ TCR0_ FREE |K_ TCR0_ PSC | K K _ TCR0_ TSS | K _ TCR0_ TDDR
STM #1599, TIM0
STM #1599, PRD0 (3分) STM #K_TCR0, TCR0
Time_rev: PSHM TRN PSHM T PSHM ST0 PSHM ST1
BITF t0_flag, #1 (4分) BC xf_out, NTC SSBX XF xf_ out: RSBX XF
ST # 1, t0_ flag
next: POPM STI
POPM ST0 (4分) POPM T
POPM TRN
RETE
第 7 页 共 7 页
相关推荐: