文档库 最新最全的文档下载
当前位置:文档库 › 华清arm体系结构试题

华清arm体系结构试题

华清arm体系结构试题
华清arm体系结构试题

嵌入式ARM体系结构试题(时间:60分钟)

一、单项选择题(每题2分,共40分)

1.在三级存储结构中,CPU不能直接访问的存储器是(C)

A.高速缓存(cache)

B.主存(内存)

C.辅助存储器(硬盘)

2.在三级流水线机制下,一条指令的执行的顺序是(A)

A.取指-译码-执行

B.取指-执行-译码

C.取指-译码-回写

指令集中每条指令都是(C)位宽度

指令在存储器中存储时必须是(C)字节对齐

处理器复位后,处理器处于(B)模式

协议中规定,栈使用(D)栈

A.空增

B.空减

C.满增

D.满减

7.假如想对r4-r7寄存器进行压栈处理,下列指令正确的是(D)

sp,{r4-r7} r11,{r4-r7} sp,{r4-r7} sp!,{r4-r7}

寄存器中,控制ARM处理器处于ARM状态还是THUMB状态的是(C)位

9.当处理器在执行ARM指令集时,处理器每执行完一条指令后PC的值自增(C)

处理器属于(A)处理器

A.精简指令集

B.复杂指令集

11.小端对其是指多字节的数据在存储器中存储时是(A)

A.低地址存储低有效位

B.低地址存储高有效位

12.在8中模式中哪种模式属于非特权模式(A)

13.在IRQ模式下,当前程序的运行状态是由哪个寄存器来决定(B)

模式下的SPSR 模式下的SPSR

14.在CPSR中当ALU中产生运算结果为0的时候,哪一位自动置1(B)

A.N

15.在UART中,波特率是指的(A)

A.每秒钟传送的二进制位的个数

B.每秒钟传送的字节数

C.每秒钟传送的帧的个数

16.在PWM中,占空比指的是(B)

A.每个周期中高电平与低电平时间的比例 B.高电平时间与整个周期的比例

C.低电平时间与整个周期的比例

可将模拟的电压量化成二进制编码,ADC转换的二进制编码的位数越高其(B)越高

A.转换速度

B.转换精度

C.测量的电压范围

的异常源中优先级别最高的异常源是(D)

19.在串行异步通信中(UART),发送一方的TXD要和接收一方的(B)相连

A.TXD

总线的通信方式属于(B)

A.单工

B.半双工

C.全双工

二、简答题(每题10分,共60分)

1.编程题

(1)如下程序模拟了一个在MAIN中调用FUNC子程序的过程,在其中涉及到跳转问题,在跳转到FUNC后需要对之前的寄存器进行压栈保护处理(使用满减栈),且程序返回时需要出栈恢复现场,按照如下要求补全以下程序

MAIN:

MOV R1, #1

MOV R2, #2

(a)跳转到FUNC子程序执行

ADD R3, R1, R2

B STOP

FUNC:

(b)压栈保护现场

MOV R1, #10

MOV R2, #20

ADD R3, R1, R2

(c)出栈恢复现场

(d)程序调用返回

STOP:

B STOP

答:

(a) BL FUNC

(b) STMFD SP!,{R1,R2}

(c) LDMFD SP!,{R1,R2}

(d) MOV PC,LR

(2)假如现在处理器处于刚刚上电的状态,编写汇编程序实现将CPSR的模式修改为USER模式并将其FIQ与IRQ两个中断打开

答:

mrs r0, cpsr

bic r0, r0, #0xc3

msr cpsr_c, r0

2.简述C语言中关键字volatile和static的作用。

答:

1)static关键字有三个常见的使用场合,即可以用来修饰局部变量、全局变量和函数

a)被static修饰的局部变量,只会被初始化一次,且变量存储在全局数据段中而不是栈,所以其生命期会一直持续到程序退出,即每次使用时其值都保持上一次使用的值。

b) 被static修饰的全局变量只能在其所定义的文件中使用,不能被其他文件引用

c) 被static修饰的函数只能在其所定义的文件中使用,不能被其他文件引用

2)volatile修饰的变量就是告诉编译器这个变量的值可能会被意想不到地改变,这样编译器就不会去假设这个变量的值了。确切的说,编译器在用到这个变量时必须每次都从其所在地址中重新读取这个变量的值,而不是使用保存在寄存器里的备份。

3.简述ARM处理器在发生IRQ中断时,ARM处理器会自动完成哪些事情,处理完中断后我们需要做哪些事情。

答:

遇到IRQ异常后ARM处理器会自动完成:

1)拷贝CPSR的值到IRQ模式下的SPSR

2)修改CPSR寄存器的值

a)改变处理器的状态进入ARM状态

b)改变处理器的模式进入IRQ模式

c)设置中断禁止位禁止IRQ中断

3)保存返回地址(即PC-4)到IRQ模式下的LR

4)设置PC的值为异常向量表中IRQ异常对应的地址

异常返回时我们需要做的是:

1)将IRQ模式下SPSR中的值恢复到CPSR使程序恢复到之前的状态

2)将LR中保存的返回地址减4再恢复到PC实现程序的返回

4.简述FIQ中断响应比IRQ快的几点原因。

1)FIQ的异常优先级高于IRQ当两个中断同时产生时先响应FIQ,FIQ可以打断IRQ而IRQ不能打断FIQ

2)FIQ在异常向量表中的位置处于最末,这样在异常向量表之后可以直接写异常处理程序而不需要在异常向量表中进行跳转

3)FIQ模式下有自己私有的寄存器r8-r12这样在处理异常之前不需要对之前的寄存器(r8-r12)进行压栈处理而可以直接处理异常

5.简述在exynos4412处理器中中断管理器的作用,并简要说明处理器在处理中断时是如何知道这个中断信号是由哪个外设产生的。

答:

中断管理器的作用一方面能检测外设产生的中断信号并将其进行统一的管理,另一方面中断管理器又能将中断信号通过处理器接口送到指定的处理器并选择一个中断类型去处理,比如:

1)当多个中断同时产生时中断管理器可以选择一个高优先级的先处理,其他排队等候

2)当一个中断正在处理的同时另一个中断产生,其可以在中断管理器中挂起等待

3)为中断选择一个目标CPU

4)为中断选择一个中断类型

5)为每个中断分配一个优先级

6)通知处理器当前中断的中断号

当处理器在响应中断时处理器不知道当前的中断是由哪个外设产生的,处理器可以通过读中断管理器中对应的寄存器得到当前产生中断的外设的中断号从而得到是哪个外设产生的,这样处理的时候就可以加以区分

6.假如现有一处理器,在处理器的GPA0_3引脚上外接了一个LED(当GPA0_3引脚为高电平时LED点亮为低电平时LED熄灭),将寄存器GPA0CON(地址为0x)的bit[11:9]设置为“100”可将GPA0_3引脚设置为输出功能,将寄存器GPA0DAT(地址为0x)的bit[3]设置为“1”GPA0_3引脚输出高电平,设置为“0”GPA0_3引脚输出低电平,现不提供头文件,编程实现LED闪烁(C语言)

答:

void Delay(unsigned int Time)

{

unsigned int i,j;

for(i=0;i

for(j=0;j<2500;j++);

}

int main()

{

unsigned int * GPA0CON = (unsigned int *)0x;

unsigned int * GPA0DAT = (unsigned int *)0x;

*GPA0CON = *GPA0CON & (~(0x7 << 9)) | (0x4 << 9);

while(1)

{

* GPA0DAT |= (1 << 3);

Delay(100);

* GPA0DAT &= (~(1 << 3));

Delay(100);

}

}

相关文档