浙江大学 嵌入式ARM题库

上传人:汽*** 文档编号:487442782 上传时间:2023-03-10 格式:DOC 页数:6 大小:62.50KB
返回 下载 相关 举报
浙江大学 嵌入式ARM题库_第1页
第1页 / 共6页
浙江大学 嵌入式ARM题库_第2页
第2页 / 共6页
浙江大学 嵌入式ARM题库_第3页
第3页 / 共6页
浙江大学 嵌入式ARM题库_第4页
第4页 / 共6页
浙江大学 嵌入式ARM题库_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《浙江大学 嵌入式ARM题库》由会员分享,可在线阅读,更多相关《浙江大学 嵌入式ARM题库(6页珍藏版)》请在金锄头文库上搜索。

1、真诚为您提供优质参考资料,若有不当之处,请指正。ARM 练 习 题1. 描述ARM处理器对异常中断的响应过程。2. 写一个IRQ中断异常处理程序示例,要求允许嵌套IRQ中断发生。(注意:该IRQ中断可能是在执行另一个IRQ中断异常服务程序时发生。)3. 简单描述一下ARM7的三级流水线,并说明其对程序设计的影响。4. 阅读下面这段代码,并回答以下问题,存储器初始的数据见表1。 地址 数据0x12345678 0x000000000x12345674 0x111111110x12345670 0x222222220x1234566C 0x333333330x12345668 0x44444444

2、0x12345664 0x55555555 LDR R0, =(0x12345670)LDR R1, R0, #4!STR R1, R0, #4LDMDB R0!, R2, R3表 1执行完上述代码段后,R0 = 0x_ R1 = 0x_ R2 = 0x_ R3 = 0x_ 上述代码段中的STR指令是对哪一个存储单元进行操作的?操作后,在该存储单元里的数据是什么? 5. 寄存器R1里放的数值是0x1,请问执行下面这一段代码后,寄存器R1里的内容是多少? CPSR的高4位是什么内容?解释为什么。LDR R0, Label2STRR0, Label1Label1 SUBSR1, R1, #1Lab

3、el2ADDSR1, R1, #1STR R0, Label3NOPNOPLabel3SUBS R1, R1, #16. 写一个对应下面C语言中的if-then-else功能的ARM代码段。int gcd(int a, int b) while (a!=b)if (ab)a=a-b;else b=b-a;return a;7. 启动代码中,异常向量表的定义如下LDR PC, ResetAddrLDRPC, UndefinedAddrLDR PC, SWI_AddrLDR PC, PrefetchAddrLDRPC, DataAbortAddrDCD0xB9205F80LDRPC, PC, #

4、-0xFF0LDRPC, FIQ_Addr(a) 在异常向量表的定义中,为什么使用LDR指令跳转,而不使用B指令跳转?(b) 在异常向量表的定义中,语句“DCD 0xB9205F80”起什么作用?(c) 在异常向量表的定义中,对应IRQ中断的入口为什么使用“LDR PC, PC, # -0xFF0”这一条指令,解释原因?8. 编写一段蜂鸣器程序(要求有注释),实现由GPIO的P0.7管脚控制蜂鸣器周期性的蜂鸣,其流程图如下置位P0.7口,关闭蜂鸣器延时P0.7选择连接GPIO延时设置P0.7为输出状态清零P0.7口,蜂鸣器蜂鸣开始9. 将8位无符号整数变量Data的值输出到P0.0 P0.7,

5、使用IOxPIN来实现,编写相应代码并要求加注释。10. 外部中断唤醒掉电设计:以下代码是初始化外部中断0,用它来唤醒掉电的LPC2114,请补充代码PINSEL0 = 0X00000000;PINSEL1 = _; /设置I/O口连接,P0.16设置为EINT0EXTMODE = _; /设置EINT0为电平触发模式EXTPOLAR = _; /设置EINT0为低电平触发EXTWAKE = _; /允许外部中断0唤醒掉电的CPUEXTINT = _; /清除外部中断标志11. 计算PLL设置值:假设有一个基于LPC2114的系统,所使用的晶振为11.0592MHz石英晶振。请计算出最大的系统

6、时钟 cclk 频率为多少MHz? 此时PLL的M值和P值各为多少?请列出计算公式,并编写设置PLL的程序段。12. 存储器映射控制重新映射前后的地址转换前内核地址总线值MEMMAP值转换后存储器地址总线值0x000000000x0000003F00 01 10 11 0x000000400xFFFFFFFF任意 13. 对哪些区域的访问会产生数据终止异常,对哪些区域访问会产生预取指中止异常?什么时刻会真正产生预取指中止?14. 向量IRQ和非向量IRQ中断的区别和各自的特点?15. 简要说明UART的基本操作方法及流程。16. 编写UART0通信程序(包括所有必要的初始化代码),要求采用向量

7、中断的方式(最高优先级),从上位机接收数据。设置为6位数据位,2位停止位,奇偶校验选择为偶数,串口通信波特率为115200bps,使能FIFO,并设置触发点为14个字符。这里嵌入式系统的处理器时钟频率为Fcclk,外设时钟频率为Fpclk。(注:要求每行代码加注释)17. 下面是一段uart0通信实验程序(中断方式)主函数的代码,请解释其中划线部分程序的意思。int main (void)PINSEL0 = 0x00000005;_UART0_INIT(115200, set);/ 串口初始化 U0FCR = 0x81;_U0IER = 0x01;_irqenable();/ 使能IRQ中断

8、VICINTSELECT = 0x00000000;_VICVECTCNTL0 = 0x20 | 0x06;_VICVECTADDR0 = (uint32)irq_uart0; _VICINTENABLE = 118. 编写代码实现以下功能:(a) 设置为主模式;(b) 设置为从模式;(c) 设置总线频率为fi2c;(d) 设置中断允许。19. 完成子函数I2C_writeNByte( )实现向从器件写入N字节数据。另外,完成I2C中断服务程序中作为主机模式发送数据的相应状态的处理代码。20. 使用LPC2131的SPI接口作为主机向74HC595发送数据:要求P0.29连接74HC595的片

9、选引脚(该引脚为低电平有效),设置合理的时钟分频,并要求数据在SCK的第一个时钟沿采样,SCK为低有效,数据传输MSB在先,禁止SPI中断。完成编写main( )主函数,MSPI_Init( )初始化函数,以及MSPI_SendData( )向SPI总线发送数据函数。21. 用定时器0实现1秒定时,使用中断方式实现定时控制,让蜂鸣器每秒钟蜂鸣一次。编写主程序及中断服务程序。22. 使用定时器1的输入捕获功能,获取延时参数,用于控制LED1的闪烁频率。程序首先设置P0.17引脚连接CAP1.2,同时设置LED1控制口输出,再通过T1CCR设置CAP1.2为下降沿捕获,最后启动定时器。程序读取捕获

10、的值,用作延时参数,控制LED1闪烁。(注:delay子程序已经提供,请完成主程序部分并注释。)#include “config.h”const uint32 LED1 = 1 0; dly- )for (i=0; i10; i+);*/int main (void) 23. 匹配寄存器值为 MR0 =100MR1 =41、 MR2 = 78 (PWM2 输出)MR3 =53 、MR4 = 27 (PWM4输出)MR5 =65 (PWM5输出) 请分别画出PWM2,PWM4,PWM5的输出波形(单个周期)。24. 阅读下面代码,回答问题。# include “config.h”# define

11、CYCLE_DATA2000# define DUTY_CYCLE_DATA1000int main(void)PINSEL0 = 0x00080000;PWMPR = 0x00;PWMMCR = 0x02;PWMMR0 = CYCLE_DATA;PWMMR6 = DUTY_CYCLE_DATA;PWMLER =0x41;PWMPCR = 0x4000;PWMTCR = 0x09;while(1);return(0);(a) 画出PWM输出波形。(b) 若需要输出双边沿控制PWM信号,应如何修改程序?(c) 更改了匹配寄存器的值并置位PWMLER的相应位,新匹配值是否立即生效?25. 设置P0.30连接AD0.3,对AD0.3进行电压采样,进行AD转换,将转换后的电压通过UART0发送到上位机。26. 使用RTC部件作秒中断定时器,在发生秒增量中断时取反蜂鸣器控制口。27. 基于uC OS-II操作系,使用信号量实现行为的同步,当RTC部件秒时钟中断,LED闪耀一次。28. 基于uC OS-II操作系,编写两个任务,一个任务用于SPI通信(作为主机接收数据),另一个任务控制蜂鸣器响。使用消息邮箱,将SPI通信接收到的一个字节的数据用来控制蜂鸣器响的时长。 /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号