嵌入式复习

一、选择题

1、ARM属于 

A、RISC   架构 B、CISC 架构 C、DISC 架构 D、ASIC 架构

答案:A

2、ARM   指令集是  位宽,Thumb   指令集是  位宽的。

A、 8 位,16 位 B、16 位,64 位 C、 32 位,16 位 D、32 位,64 位

答案:C

3、  伪指令用于定义一个代码段或数据段。

A、 ENTRY B、 DCB C、 MAP D 、 AREA

答案: D

4、ARM 处理器中优先级别最高的异常为 

A、FIQ B、RESET C、 IRQ D 、 SVC

答案:B

5、假设R1=0x31,R2=0x2 则执行指令ADD R0,R1,R2 后,R0 的值是 

A、0x41 B、0x33 C、0x39 D、0x38

答案:B

6、使用PWM 控制LED 灯亮度或者电机转速时,主要是通过控制  实现的。

A、PWM 频率 B、占空比 C、脉冲宽度 D、通电时间答案:B

7、假设PIO1_0 连接的是LED,   如果想点亮LED,   那么应该将PIO1_0 设置为 

A、输入模式 B、输出模式 C、特殊功能模式 D、以上都不是

答案:B

8、在用ARM 处理器的寄存器中有多个别名,通常PC指  LR 是指  ,SP  是指 

A、R14,R15,R13 B、R13,R14,R15 C、 R15,R13,R14 D、 R15,R14,R13

答案:D

9、ARM 指令的执行条件码中表示不相等的是 

A、EQ B、NE C、LE D、LT

答案:B

10、下面属于ARM   子程序调用指令的是 

A、B B、BX  C、BL D、MOV

答案:C

11、串口波特率为9600,1 起始位,8 数据位,1 停止位, 每秒钟传输多少字节?

A、 9600 B、960 C、4800 D、480

答案:A

12、下列哪个功能是看门狗没有的。

A、复位 B 、 中断 C、定时 D、传输答案:D

13、ARM 中可以往内存里写入数据的指令是  ,读取内存数据的指令是 

A、MRS,MOV B、STR,LDR C、MRS,LDRD、MOV,MCR

答案:B

14、在串行异步通讯中,发送端串口的TxD 要和接收端串口的  相连接。

A、TxD B、RxD C、Ncts D、nRTS

答案:B

 

15、ARM 指令集是  字节对齐,Thumb 指令集是  字节对齐的。(B)

A、2,4 B、4,2 C、3 ,1 D、1,2

答案:B

16、复位后,ARM 处理器处于  模式,  状态。

A 、 System,THUMB  B 、 SVC,THUMB C、SVC,ARM D 、 System,ARM

答案:C

17、ARM 的 Cortex-A9 处理器总共  个寄存器,System 模式下使用  个寄存器。

A、 40个,17个 B、 40个,18个 C、 37个,17个 D、 36个,18个

答案:A

18、ARM 数据处理指令中不是立即数的是 

A、 0X00AB0000 B、 0X00001F80 C、0XF000000F D、0X08000012

答案:D

19、 ATPCS 规定中,推荐子函数参数最大为  个。

A、 1 B、 2 C、 3 D 、 4

答案:D

20、ATPCS 规定中,栈是 

A、 满加栈 B、 满减栈 C、 空加栈 D、 空减栈答案:B

21、CPSR 寄存器中反映处理器状态的位是 

A 、 J位 B、 I位 C、 F位 D、 T位答案:D

22、ARM7 属于  结构,CORTEX-A8 属于  结构。

A、 冯、诺依曼,哈佛 B、 哈佛,冯、诺依曼C、 冯、诺依曼,冯、诺依曼 D、 哈佛,哈佛

答案:A

23、ARM7 是  级流水线,ARM9 是  级流水线。(B)

A、 3,3 B、 3,5 C、 5,3 D、5,7

答案:B

24、ARM 中可以访问状态寄存器的指令是  ,能够访问内存的指令是 

A、 MRS,MOV B、MCR,LDR C、 MRS,LDR D、 MOV,MCR

答案:C

25、在嵌入式系统设计中可以通过  来测量电池电压,可以用  来驱动喇叭发声。

A、 DAC,PWM B、 ADC,Timer C、 ADC,PWM D、 RTC,Timer

答案:C

26、Cortex-A9处理器的工作模式有几种 

A、 5 B、6 C、7 D、8

答案:D

27、存储一个32位数0x2168465到2000-0000H~2000-0003H四个字节单元中,若以大端模式存储,则2000-0000H存储单元的内容为 

A、0x21   B、0x68 C、0x65 D、0x02

答案:D

28、 FIQ的入口地址为0x0000001C,那么 IRQ中断的入口地址是 

A、0x00000000 B、0x00000008 C、0x00000018 D、0x00000014

 

答案:C

29、 寄存器R13除了可以做通用寄存器外,还可以做 

A、程序计数器 B、链接寄存器 C、栈指针寄存器 D、基址寄存器答案:C

30、假设R1=0x31,R2=0x2 则执行指令ADD R0,R1,R2,LSL #3 后,R0的值是 

A、0x41   B、0x34 C、0x39 D、0x38

答案:A

31、 ARM系统复位后,第一条执行的指令在 

A、00000000H  B、00000004H C、 00000008H  D、不确定

答案:A

32、 用汇编指令对R15赋值,可以实现 

A、 程序的跳转   B、实现B指令功能   C、子程序的返回   D、 A B C都可以

答案:D

33、 CPSR中的低8位称为控制位,下列不属于控制位的是 

A、N   B、I C 、 F D 、 T

答案:A

34、若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,[R1,#8]!后R0

的值为 

A 、 0x2000

B、0x86

C 、 0x2008

D、 0x39

答案:D

35、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor), 应采用何种方法  ?。

A、直接修改CPU状态寄存器(CPSR)对应的模式

B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态C、使用软件中断指令(SWI)

D、让处理器执行未定义指令

答案:C

37、从层次结构来看,嵌入式系统包括 

A、硬件层  B、实时操作系统  C、应用软件    D、这些都是

答案:D

38、下面关于哈佛结构描述正确的是 

A、程序存储空间与数据存储空间分离

B、存储空间与IO空间分离

C、程序存储空间与数据存储空间合并

D、存储空间与IO空间合并

答案:A

39、下面哪一种工作模式不属于ARM特权模式 

A、用户模式

B、管理模式

C、系统模式

D、数据访问终止模式

答案:A

40、指令“ADD R0, R1, R2”的寻址方式为 

A、立即寻址

B、寄存器间接寻址

C、多寄存器寻址  

D、寄存器寻址

答案:D

41、指令“LDR R0, [R1,#4]”的第一源操作数的寻址方式为 

A、寄存器间接寻址  B、基址加变址寻址   C、相对寻址      D、多寄存器寻址

答案:B

42、有一一对应机器码的指令是 

A、汇编指令   B、伪指令    C、伪操作    D、前三项都是

答案:A

 

43、Exynos4412的GPIO引脚输入/输出功能是通过引脚

A、控制  B、数据      C、上下拉设置   D、驱动能力

答案:A

寄存器来配置的。

 

44、在嵌入式ARM处理器中,下面哪种中断方式优先级最高 。

A、预取中止

B、数据中止

C、FIQ

D、IRQ

答案:B

45、Exynos4412串口中通道1带有  字节的FIFO。

A、256 B、128 C、64 D、32

答案:C

46、Exynos4412定时器中不接外部引脚的是( ) 。

A、定时器0 B、定时器2 C、定时器3 D、定时器4

答案:D

48、下面关于冯·诺依曼结构描述正确的是 

A、程序存储空间与数据存储空间分离

B、存储空间与 IO 空间分离

C、程序存储空间与数据存储空间合并

D、存储空间与 IO 空间合并

答案:C

49、下面哪一种工作模式不属于ARM异常模式 

A、快速中断模式

B、管理模式

C、系统模式

D、数据访问终止模式

答案:C

50、指令“LDMIA R0!, {R1, R2, R3, R4}”的寻址方式为 

A、立即寻址      B、寄存器间接寻址C、多寄存器寻址  D、堆栈寻址

答案:C

51、指令“ADD R2, R1, #10”的第2操作数寻址方式为 

A、立即寻址

B、寄存器间接寻址

C、多寄存器寻址  

D、堆栈寻址

答案:A

52、能编译成机器码指令,但没有一一对应关系的指令是 

A、汇编指令

B、伪指令   

C、伪操作    

D、前三项都是

答案:B

53、Exynos4412的GPIO引脚输入/输出数据是通过引脚  寄存器完成。

A、控制

B、数据

C、上下拉设置

D、驱动能力

答案:B

54、FIQ中断的入口地址是 

A、0x0000001C

B、0x00000008

C、0x00000018

D、0x00000014

答案:A

55、Exynos4412串口中通道0带有  字节的FIFO。

A、256

B、128

C、64

D、32

答案:A

56、Exynos4412定时器中有  个定时器接外部引脚的。

A、1

B、2

C、3

D、4

答案:D

57、Make预置了一些内部宏,其中$@表示         

A、没有扩展名的当前目标文件

B、当前目标文件

C、当前目标文件最近更新的文件名

D、当前扩展文件最近更新的文件名

答案:B

58、嵌入式系统的开发通常采用         

A、 与PC应用软件开发一样的方式

B、交叉编译与开发的方式

C、 本地环境开发的方式

D、交叉编译与开发和本地环境开发两种方式都可以

答案:D

59、以下哪一个是主机与目标板的连接方式:          

A、串口

B、USB

C、网络

D、以上都是

答案:D

60、要从远程主机192.168.1.2上下载文件embedexpert,则应输入命令 

A 、 tftp -g –r embedexpert 192.168.1.2

B、tftp   -r embedexpert 192.168.1.2

C、.tftp –p –r embedexpert 192.168.1.2

D、tftp –p embedexpert 192.168.1.2

答案:A

61、设置开发板的地址为192.168.0.16的指令为 

A 、 ifconfig eth0 192.168.0.16

B、mount eth0 192.168.0.16

C、ping eth0 192.168.0.16

D、tftp eth0 192.168.0.16

答案:A

62、在嵌入式开发中,需要用到vi编辑器,编辑文件后退出并保存的指令是 

A、ESC:w

B、ESC!q

C、ESC :wq

D、ESC:!wq

答案:C

63、将a.c和b.c生成嵌入式开发板上可执行文件pro的指令是 

A、gcc -o pro a.c b.c

B、gcc pro a.c b.c

C、arm-linux-gcc -o pro a.c b.c

D 、 arm-linux-gcc pro a.c b.c

答案:C

64、 源码免费开放的操作系统是 

A、Vxworks操作系统

B、WindowsCe 操作系统

C、Linux 操作系统

D、μcos-II 操作系统

答案:C

65、ARM微处理器复位后,PC(R15)的地址通常是  :

A 、 0x0 B 、 0X18 C 、 0X1C D 、 0XFF

答案: A

66、存储一个32位数0x2329965到2010H~2013H四个字节单元中,若以小端模式存储,则2010H

存储单元的内容为  :

A 、 0X65 B 、 0C99 C 、 0X32 D 、 0X02

答案: A

67、在所有工作模式下,寄存器  都指向同一个物理寄存器,即各模式共享。

A 、 R0-R12

B 、 R0-R7

C 、 R13-R14

D 、 R8-R12

答案: B

 

68、寄存器 指向两个物理寄存器的是           

A 、 R0-R12

B 、 R0-R7

C 、 R13-R14

D 、 R8-R12

答案: D

69、存储一个32位数0x1234567到1010H~1013H四个字节单元中,若以大端模式存储,则1012H

存储单元的内容为  :

A 、 0X01 B 、 0X23 C 、 0X45 D 、 0X67

答案: C

70、ARM9 TDMI的工作状态包括           

A、 测试状态和运行状态

B、 挂起状态和就绪状态

C、 就绪状态和运行状态

D、 ARM状态和Thumb状态

答案: D

71、在嵌入式系统的存储结构中,存取速度最快的是         

A、 寄存器组

B 、 Flash

C 、 Cache

D、 内存

答案: A

72、可用作嵌入式操作系统的有 

A 、 Linux(Vxworks,uc/os-II)

B 、 windows2000

C 、 windowsXP

D 、 DOS

答案: A

73、若前次运算产生了进位/借位,则 CPSR 的 

A、 N为1 B、 Z为1 C、 C为1 D、 V为1

答案: C

74、若前次运算结果为0则CPSR中         

A、 N为1

B、 Z为1

C、 C为1

D、 V为1

答案: B

75、若前次运算结果为-56则CPSR中 

A、 N为1 B、 Z为1 C、 C为1 D、 V为1

答案: A

76、子程序的最后一条指令必须是    

A 、 MOV PC,R14_und

B 、 SUBS PC,R14_fig,#4

C 、 SUBS PC,R14_irg,#4

D 、 MOV PC,R14

答案: D

77、存储一个32位数0x12168465到2000H~2003H四个字节单元中,若以大端模式存储, 则

2000H存储单元的内容为         

A 、 16H

B 、 65H

C 、 84H

D 、 12H

答案: D

78、GET 伪指令的含义是 

A、 包含一个外部文件

B、 定义程序的入口

C、 定义一个宏

D、 声明一个变量

答案: A

79、Cache用于存放主存数据的部分拷贝,主存单元地址与Cache单元地址之间的转换用  完成。

A、 硬件

B、 软件

C、 用户

D、 程序员

答案: A

80、  伪指令用于指定程序的入口点

A 、 ENTRY

B 、 DCB

C 、 MAP

D 、 AREA

答案: A

81、Exynos4412共支持  C 个中断

A、132 B、128 C、160 D、144

82、Exynos4412共支持  B 个共享外设中断

A、132 B、128 C、160 D、144

83、指令  A 实现了直接跳转,不改变状态也不会再返回

A、B B、BL C、BX D、BLX

84、指令  B 实现了直接跳转,不改变状态但在LR中保存了返回地址。

A、B B、BL C、BX D、BLX

85、汇编子程序的最后一条指令必须是

A 、 MOV PC,R14

B 、 MOV PC,R14_und

C 、 SUBS PC,R14_fig,#4

D 、 SUBS PC,R14_irg,#4

正确答案: A

86、以下指令中,源操作数的寻址方式是间接寻址的是

A 、 MOV R1,R0

B、 STR R0, [R1]

C、 BL LOOP

D 、 LDR R0,[R1,#8]

正确答案: B

87、GET伪指令的含义是

A、 包含一个外部文件

B、 定义程序的入口

C、 定义一个宏

D、 声明一个变量正确

答案: A

88、AREA伪指令的含义是。

A、 包含一个外部文件

B、 定义程序的入口

C、 定义一个段

D、 声明一个变量正确

答案: C

89、ENTRY伪指令的含义是。

A、 包含一个外部文件

B、 定义程序的入口

C、 定义一个段

D、 声明一个变量正确

答案: B

90、声明一个全局逻辑变量的符号是

A 、 GBLA

B 、 GBLL

C 、 GBLS

D 、 GBLM

正确答案: B

91、下面哪个指令可以实现对寄存器的低4位清零( )

A、 BIC R0,0X0F

B、 AND R0,0X0F

C、 AND RO,#0XFF

D、 XOR R0,0XF0

正确答案: A

 

二、简答题

所有简答题均可参考笔记或者 PPT 进行回答1、简述嵌入式系统的一般性定义

以应用为中心、以计算机技术为基础,软件硬件可裁剪,适应应用系统对功

能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

2、简述嵌入式系统的组成,并简要解释

嵌入式系统包括硬件部分和软件部分,其中硬件设备包括嵌入式处理器和外围设备,软件部分包括操作系统和应用软件。

嵌入式处理器是嵌入式系统的核心部分;外围设备是嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其他部件。嵌入式操作系统和嵌入式应用软件是整个系统的控制核心,控制整个系统的运行,提供人机交互的信息等。

3、简述嵌入式系统的基本设计流程

① 用户需求分析

② 体系结构设计

③ 软/硬件设计

④ 系统集成

⑤ 系统测试

4、简述中断响应的四个步骤 P122

  1. 保护断点,即保存下一个将要执行的指令的地址,就是把这个地址送入堆栈;
  2. 寻找中断入口,根据不同的中断源所产生的中断,查找不同的入口地址;
  3. 执行中断处理程序;
  4. 中断返回,执行完中断指令后,就从中断处返回到主程序,继续执行。5、简述 ARM 的工作模式都包含哪几种。P14-15

6、简述五级流水线都包含哪几个步骤 P19

7、简述内联汇编的基本格式 P101

8、简述汇编语言调用 C 程序调的步骤

9、简述 C 程序调用汇编程序的步骤

10、为什么快速中断异常处理主体工作完成后,返回快速中断异常产生之前的工作模式时, 使用“SUBS PC,R14_abt,#4”(即为什么要减 4)呢?

答:因为在响应快速中断异常时,PC 指针已经指向被打断指令下面的第一条指令的首地址, 即指向被打断指令+4 的地址了,因此在快速中断异常处理完返回时,应该返回到被打断指令继续执行,所以要减 4。

11、写出 Exynos4412-GPIO 的常用寄存器 P108

12、简述复位异常的主要功能 P118

13、简述 GIC 中断控制器的四个中断状态,并简要解释。P130

14、简述 GIC 中断的处理流程 P130

15、简述 Exynos4412 中断的初始化过程 P139 或笔记 PPT

16、简述异步串行方式的特点 P142

17、异步串行方式的数据格式是怎样的?P142

18、简述看门狗的作用 P169

看门狗用于检测程序的正常运行,启动看门狗后,必须在看门狗复位之前向特定寄存器中写入数值,不让看门狗定时器溢出,这样看门狗就会重新计时。当用户程序溢出时在规定时间内没有向特定寄存器中依次写入数值,看门狗定时器计数溢出,引起看门狗复位,看门狗产生一个强制系统复位。这样可以使程序重新运行,减小程序跑死的危害。

 

19、简述实现看门狗功能的编程步骤 P171

20、简述 A/D 转换器的设置步骤 P188-189

21、简述 PWM 定时器的工作过程

21、简述 Linux 设备驱动的特点(笔记或 PPT)

内核代码、内核接口、内核机制和服务、动态可装载、可设置。22、简述设备驱动程序的定义(笔记或 PPT)

设备驱动程序是对硬件设备进行操作(读、写、控制)的程序,本质上就是一堆与硬件设备打交道、既可以使硬件设备正常工作、又可以使用户方便地操作硬件设备并可以与硬件设备顺利进行各种数据交换的程序。

23、简述设备驱动的功能

  1. 对设备进行初始化。
  2. 启动或停止设备的运行。
  3. 把设备上的数据传送到内存。
  4. 把数据从内存传送到设备。
  5. 检测设备状态。

24、为什么数据中止异常处理主体工作完成后,返回数据中止异常产生之前的工作模式时, 使用“SUBS PC,R14_abt,#8”(即为什么要减 8)呢?

因为数据中止异常是数据访问指令的目标地址不存在,或者该地址不允许当前指令访问时发生的,就是没有存取到有效的数据而产生这种异常,这时 PC 指针已经指向下面的第二条指令了,即指向本条指令+8 的地址了,因此在异常处理完返回时,还应该返回重新执行这条指令,所以要减 8。

25、ARM 处理器在两种工作状态之间进行切换时,进入 ARM 状态有几种方法?分别是如何处理的?

有两种。第一种是通过当操作数寄存器 Rm 的状态位 bit[0]为 0 时,执行 BX Rm 指令进入ARM 状态;第二种是产生异常时进入 ARM 状态。

26、什么是伪指令?分别是什么?

伪指令不是 ARM 指令集中的指令,只是为了编程方便编译器定义的指令,使用时可以像其它 ARM 指令一样使用,但在编译时这些指令将被等效的 ARM 指令代替。ARM 伪指令有 ADR、ADRL、LDR、NOP 四条。

27、ARM 处理器在两种工作状态之间进行切换时,进入 Thumb 状态有几种方法?分别是如何处理的?

有两种。第一种是通过当操作数寄存器 Rm 的状态位 bit[0]为 1 时,执行 BX Rm 指令进入Thumb 状态;第二种是当处理器处于 Thumb 指令状态时发生异常(如 IRQ、FIQ、Undef 等), 处理完异常后,在异常处理返回时,自动切换到 Thumb 指令状态。

三、填空题

1、嵌入式系统一般由嵌入式    4 个部分组成。

2、三级流水线包括      这三个过程。

3、小端存储方式是  存储在  , 存储在 

4、在多核处理器架构中,有两种处理中断的模型,分别是   

5、ARM 工作状态使用的汇编指令的机器码长度是  位。

6、管理模式中,      这三个寄存器是它独有的。

7、ARM 微处理器支持  种类型的堆栈工作方式(或堆栈寻址方式)。

 

8、ARM 的数据存取指令    是唯一用于寄存器和存储器之间进行数据传送的指令。

9、ARM 汇编器支持的伪指令包括 ADR、ADRL、  和 NOP 这四条。

10、Exynos4412 的 GPIO 常用寄存器分六类,分别是  、引脚数据寄存器、引脚上下拉设置寄存器、引脚驱动能力寄存器、低功耗模式引脚功能控制寄存器和低功耗引脚上下拉设置寄存器。

11、ARM 体系异常种类中包括复位异常、未定义指令异常、软中断异常、预取异常、数据异常、 和快速中断异常。

12、串行通信的种类中包括 和 

13、Exynos4412 中一共有  个 32 位的定时/计数器。

14、Cortex 分三个系列,分别是     

15、五级流水线包括         这五个过程。

16、大端存储方式是  存储在    存储在 

17、没有外接引脚的定时器是 

18、Thumb 工作状态使用的汇编指令的机器码长度是  位。

19、中止模式中,      这三个寄存器是它独有的。

20、ARM 微处理器支持  种类型的块复制工作方式(或寻址方式)。

21、程序状态寄存器与通用寄存器之间的传送指令分别是    

22、ARM 汇编器支持的伪指令包括 ADR、ADRL、LDR 和  这四条。

23、Exynos4412 的 GPIO 常用寄存器分六类,分别是引脚控制寄存器 、引脚上下拉设置寄存器、引脚驱动能力寄存器、低功耗模式引脚功能控制寄存器和低功耗引脚上下拉设置寄存器。

24、ARM 体系异常种类中包括复位异常、未定义指令异常、软中断异常、预取异常、数据异常、外部中断异常和 

25、异步串行通信方式的种类包括单工通信、   

26、具有死区功能的定时器是   

27、图形用户界面简称 GUI

28、cortexA9 架构的处理器状态共有指令集状态、执行状态、安全状态和调态。

29、cortexA9 架构提供了 4 种指令集状态,分别

是:       30 、cortexA9的通用寄存器共有13个。

31、Exynos4412 一共有 4 个串口通道

32、通过设置寄存器 ADCCON 可对 A/D 模块进行初始化

33、Exynos4412 一共有 4 个 A/D 转换器,采用 5MHZ 的转换时钟

34、Linux 下的设备一共分为 3 种,分别是字符设备、块设备和网络设备

35、存储器的访问指令主要有 LDR STR

36 指令  BX   BLX 在跳转的同时,还对状态进行切换。

37、在汇编中调用 C 的函数,需要在汇编中用关键字  import 声明对应的 C

函数,并且通过指令  BL 进行调用。

38、脉宽调制就是输出的PWM 中,(高电平)保持的时间与该 PWM 的(时钟周期)的时间比。

39、脉宽调制是利用处理器的(数字)模拟来控制。

40、PWM 定时器配置寄存器 0 的功能是于配置两个(8)位预分配器的值和死区长度。

41、PWM 定时器的输入频率的计算公式为:( PCLK(/ {预分频值+1}){/其中预分频值的取值范围为(1~255)。

填空题答案:

分频值} ),

1、嵌入式微处理器;外围硬件设备;底层系统软件;用户应用软件

2、取指;译码;执行

3、数据的低位字节;低位地址;数据的高位字节;高位地址

4、1-N N-N

5、32 位

6、R13;R14;SPSR 或 R13_svc;R14_svc;SPSR_svc

7、4

8、LDR;STR

9、LDR

10、引脚控制寄存器

11、外部中断异常或中断异常

12、异步串行通信;同步串行通信

13、5

14、M;R;A

15、取指;译码;执行;缓冲/数据;回写

16、数据的低位字节;高位地址;数据的高位字节;低位地址

17、定时器 4

18、16 位

19、R13;R14;SPSR 或 R13_abt;R14_abt;SPSR_abt

20、4

21、MSR;MRS

22、NOP

23、引脚数据寄存器

24、快速中断异常

25、半双工通信;全双工通信

26、定时器 0 和定时器 1

四、程序题:

1.使用汇编语言编程实现下列的流程图的功能。

你只需要使用 CMP、SUB 和 B 指令,充分使用条件执行!

注:条件码 EQ:相等 NE:不相等 GT:带符号数大于 LT:带符号数小于

 

.global _start

_start:

MOV r0, #9

MOV r1, #15

Loop:

@你的代码段cmp r0, r1 beq stop

subgt r0, r0, r1 sublt r1, r1, r0 b loop

stop:

B stop

.end

2、用 C 语言编写程序实现按键 K1-K4 控制 LED1-LED4,K1 按下全亮、K2 按下依次熄灭、K3 按下依次点亮、K4 全灭。其电路连接方式如下:

GND---K1---GPX1_2

GND---K2---GPX1_3

GND---K3---GPX1_4

GND---K4---GPX1_5

VCC---LED1---GPM4_0

VCC---LED2---GPM4_1

VCC---LED3---GPM4_2

VCC---LED4---GPM4_3

 

#define GPM4CON (*(volatile unsigned int *)0X110002E0) #define GPM4DAT (*(volatile unsigned int *)0X110002E4) #define GPX1CON (*(volatile unsigned int *)0X11000C60) #define GPX1DAT (*(volatile unsigned int *)0X11000C64) unsigned int k;

void delay(unsigned count)

{volatile unsigned long i=count;while(i--);} void IO_init() //i/o初始化程序

{

GPM4CON&=~((0xf<<0)|(0xf<<4)|(0xf<<8)|(0xf<<12)); GPM4CON|=((0x1<<0)|(0x1<<4)|(0x1<<8)|(0x1<<12));

 

GPX1CON&=~((0xf<<20)|(0xf<<16)|(0xf<<8)|(0xf<<12)); GPM4DAT=GPM4DAT&~(0xf);

}

void LEDyiciON() //依次点亮

{

/点亮LED1

GPM4DAT &= ~(0x1 <<0);

delay (500);

 

//点亮LED2

GPM4DAT &= ~(0x1 <<1);

delay (500);

//点亮LED3

GPM4DAT &= ~(0x1 <<2);

delay (500);

//点亮LED4

GPM4DAT &= ~(0x1 <<3);

delay (500);

 

}

 

void LEDyici_off() //依次熄灭

{

/ 点 亮 LED1 GPM4DAT|= 0x1 <<0;

delay (500);

 

// 点 亮 LED2 GPM4DAT|= 0x1 <<1;

delay (500);

//点亮LED3

GPM4DAT |= 0x1 <<2;

delay (500);

//点亮LED4

GPM4DAT |= 0x1 <<3;

delay (500);

}

void LED_all_ON() //全亮

{ GPM4DAT&=~OXF

delay(100)

}

void LED_all_OFF() //全灭

{

 

GPM4DAT|=OXF

delay(100)

}

 

 

 

void main()

{

IO_init();

 

while(1)

{ switch(key())

 

{

case 1: LED_all_ON();break;

case 2: LEDyici_off();break;

case 3: LEDyiciON();break;

case 4: LED_all_OFF();break; default:

}

 

 

 

}

 

3、用汇编语言编程实现将数据区 DAT 开始连续 13 个 32 位数据复制到地址 0x38000000 开始的寄存器组。

LDR R1,=DAT

LDR R2,=0x38000000 MOV R3,#4*13

ADD R3,R3,R1 LOOP

LDR R4,[R1],#4

STR R4,[R2],#4 CMP R1,R3

BNE LOOP MOV PC,LR

注意:ADD 中 R3 和哪个寄存器相加,最后 CMP 就比较哪个寄存器和 R3

 

4、汇编编程实现LED 灯的点亮,之后连续闪烁,其中 LED1 和led2 灯一侧接地,另一侧分别接接 GPX1_0 和 GPX1_1

 

5、用 C 语言编程实现 LED 灯的点亮,之后连续闪烁,其中 LED1 和led2 灯一侧接地,另一侧分别接接GPX1_0 和GPX1_1

 

6、

已知串口工作时钟为 120MHZ,计算出 UBRDIV 和UFRACVAL 中需写入的值(要求由计算机过程)。如果该串口是 GPA0_0 和 GPA0_1,写出相关的设置语句

 

7、已知 32 位有符号数 X 存放在存储器的地址 0x90010 中,要求实现:

 

其中 Y 值存放在 0x90010 中AREA EX4_42,CODE,READONLY

ENTRY CODE32

START

LDR R1,=0x90010

;加载变量 X 的地址->R1

 

MOV R0,#0

;0->R0

 

LDR R2,[R1]

;将 X 的值加载到 R2

 

CMP R2,#0

;X 与 0 比较 , 影响标志位

 

SUBLT R2,R0,R2

;X<0 执行该语句 , 提到-X

 

STR R2,[R1]

;保存结果

 

B START

 

 

END

 

 

8、请使用 ARM 指令集的汇编语言,实现由 R3R2R1R0(其中 R3 到 R0 是由高到低存储的)这四个寄存器存储的 128 位二进制无符号数减去由 R6R5R4(其中 R6 到R4 是由高到低存储的)这三个寄存器存储的 96 位二进制无符号数的子程序。

 

9、用汇编语言实现 1+2+3+…+N CMP R2,#1

BEQ SUM_END ; 若 N 的值为 1,则返回。MOV R1,#1 ; 初始化计数器 R1=1

MOV R0,#0 ; 初始化结果寄存器 R0=0 SUM_L1 ADD R0,R0,R1 ; R0 = R0 + R1

BCS SUM_ERR ; 结果溢出,跳转到 SUM_ERR CMP R1,R2 ; 将计数器的值与 N 比较

BHS SUM_END ; 若计数器的值≥N,则运算结束ADD R1,R1,#1

B SUM_L1

SUM_END

 

 

9、写出提取中断向量号的标准过程 P125

上一篇:【汇编】给学妹写单片机汇编题:十六进制数组转ASCII码


下一篇:ARM启动流程及启动代码分析