level 1
1、当程序调用中断服务程序或子程序时,C54x需要用到堆栈,如何确定系统实际所使用的堆栈区大小?
答:
2、当C54x CPU接收到可屏蔽的硬件中断时,满足哪些条件才能响应中断?
答:
3、C54x存储器的配置和微处理器方式状态寄存器中的哪些位有关?
答:
4、设FFT计算长度N=16,辅助寄存器AR0的值应取多少?若辅助寄存器AR2=0FF00H,经过2次*AR2+0B寻址后,寄存器AR2的值应取多少?
答:
5、已知C5402DSP主频100MHZ(系统中外部晶体振荡频率为10MHz),利用定时中断设计由引脚XF输出方波(占空比:50%,频率:1HZ),试提出设计方案。
答:
2015年01月12日 04点01分
1
level 1
1、当程序调用中断服务程序或子程序时,C54x需要用到堆栈,如何确定系统实际所使用的堆栈区大小?为确定系统实际所使用的堆栈区的大小,可以在初始化时将堆栈存储区初始化为一个常量,这个常量最好不是可能用到的存储器数据,再将所有程序在实际环境中运行,检查堆栈中的数据,便可发现堆栈的实际使用量,据此可以调整堆栈大小。
2、当C54xCPU接收到可屏蔽的硬件中断时,满足哪些条件才能响应中断?a)优先级最高的中断;
b)状态寄存器ST1中的INTM位是0;
c)中断屏蔽寄存器IMR中相应的位是1。
3、C54x存储器的配置和微处理器方式状态寄存器中的哪些位有关?
C54X有三位设置位,用以配置片内存储器。MP/MC位,OVLY位,DROM位。
4、设FFT计算长度N=16,辅助寄存器AR0的值应取多少?若辅助寄存器AR2=0FF00H,经过2次*AR2+0B寻址后,寄存器AR2的值应取多少?若N=16,AR0的值应为8;
若AR2=0FF00H,两次*AR2+0B寻址后,AR2=0FF04H。
五、 分析设计题
1、已知C5402DSP主频100MHZ(系统中外部晶体振荡频率为10MHz),利用定时中断设计由引脚XF输出方波(占空比:50%,频率:1HZ),试提出设计方案。a)定时器0的初始化:
1)设置定时控制寄存器TCR=669H,其中TDDR=9,TRB=1,TSS=0;
2)设置定时寄存器TIM,TIM由PRD中的数据加载;
3)设置定时周期寄存器PRD。因为输出脉冲周期为1s,所以定时中断周期为0.5s,每中断一次,输出端电平取反一次。
由定时时间t=T*(1+TDDR)*(1+PRD),其中TDDR最大为0FH,PRD最大为0FFFFH,所以最长时间为T*1048576。而CLKOUT主频f=100MHz,T=10ns,所以最长定时时间为T*1048576=10ms<0.5s。所以如需要更长的定时时间,可以在中断程序中设置一个计数器。本题我们可将定时器设置为1ms,程序中的计数器设为500,则只要在计数1ms*500=0.5s输出取反一次,就可以得到一个周期为2s的方波。
为将定时器设置为1ms,给定TDDR=9,故PRD=0.001/10/10*109-1=9999b)定时器对C5402的主时钟CLKOUT进行分频。系统中外部晶体振荡频率为10MHz,为使主时钟频率也为100MHz,应使CLKMD1=0,CLKMD2=0,CLKMD3=1。c)中断初始化。中断屏蔽寄存器IMR中的定时屏蔽位TINT0置1,开放定时器0中断;状态控制寄存器ST1中的中断标志位INTM位清零,开放全部中断。
2015年01月14日 09点01分
2