您的位置:首页 > 运维架构 > Linux

嵌入式linux面试题解析(一)——ARM部分一

2016-07-28 17:45 344 查看

嵌入式linux面试题解析(一)——ARM部分一

1、FIQ比IRQ快的原因:A、FIQ模式的R8--R14寄存器是独有的,FIQ处理程序可以不必执行保存和恢复中断现场的指令。B、FIQ可以将ISR直接放在FIQ后面的地址空间,不需要跳转。
2、中断与异常有何区别 异常在处理的时候必须考虑与处理器的时钟同步,实际上异常也称为同步中断,在处理器执行到因编译错误而导致的错误指令时,或者在执行期间出现特殊错误,必须靠内核处理的时候,处理器就会产生一个异常;所谓中断是指外部硬件产生的一个电信号从CPU的中断引脚进入,打断CPU的运行。所谓异常是指软件运行过程中发生了一些必须作出处理的事件,CPU自动产生一个陷入来打断CPU的运行。

3、在ARM系统中,在函数调用的时候,参数是通过哪种方式传递的当参数小于等于4的时候是通过r0-r3寄存器来进行传递的,当参数大于4的时候是通过压栈的方式进行传递。
4、简述SPI,UART,I2C三种传输方式 SPI:高速同步串行口,首发独立,可同步进行
SPI接口主要应用在EEPROM,Flash,实时时钟,A/D转化器,数字信号处理,是一种全双工同步通讯总线,该接口一般使用四条线:串行时钟线(sck),主出从入线,主入从出线,低电平有效地的从机选择线。
I2C协议:是单片机与其他芯片进行通讯的协议:
A、只要求两条总线线路,一条是串行时钟线,一条是串行数据线; B、通过软件设定地址 C、是一个多主机总线,如果两个或更多主机同时初始化数据传送可通过冲突检测和仲裁防止数据破坏; D、I2C总线传输的是数据的总高位 UART:主要是由一个modem(调制解调器),可以将模拟信号量转化成数字信号量。

5、嵌入式系统中断服务子程序(ISR) 中断是嵌入式系统中重要的组成部分,导致了很多编译开发商提供一种扩展—让标准C支持中断。具体代表是,产生了一个新的关键字 __interrupt。下面的代码就使用了__interrupt关键字去定义了一个中断服务子程序(ISR),请评论一下这段代码的。
__interrupt double compute_area (double radius)
{
double area = PI * radius * radius;
printf("Area = %f", area);
return area;
}
A、ISR 不能返回一个值。
B、ISR 不能传递参数。
C、在许多的处理器/编译器中,浮点一般都是不可重入的。有些处理器/编译器需要让额处的寄存器入栈,有些处理器/编译器就是不允许在ISR中做浮点运算。此外,ISR应该是短而有效率的,在ISR中做浮点运算是不明智的。
D、printf()经常有重入和性能上的问题。

6、在ARM的汇编程序中,有如下几种伪指令:_____、______、______、______、______。 答案:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令、其他伪指令

7、协处理器主要控制:______、______、______。 答案:片内的MMU、指令和数据缓存(IDC)、写缓冲(Write Buffer)

8、当一个异常出现以后,ARM微处理器会执行哪几步操作? 答:当一个异常出现以后,ARM微处理器会执行以下几步操作。
A、将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,则LR寄存器中保存 的是下一条指令的地址(当前PC+4或PC+8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常 处理程序就不需要确定异常是从何种状态进入的。例如:在软件中断异常SWI,指令 MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。 B、将CPSR复制到相应的SPSR中。 C、根据异常类型,强制设置CPSR的运行模式位。 D、强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。
9、ARM微处理器在较新的体系结构中支持两种指令集:______、______。 答案:ARM指令集、Thumb指令集

10、ARM处理器有9种基本寻址方式,分别是:______、______、______、______、______、______、______、______、______。 答案:寄存器寻址、立即寻址、寄存器偏移寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、块拷贝寻址、相对寻址

11、ARM指令集可以分为6类,分别是:______、______、______、______、______、______。 答案:跳转指令、数据处理指令、程序状态寄存器(PSR)传输指令、Load/Store指令、协处理器指令、异常中断产生指令

12、表示递增和递减的满堆栈和空堆栈有哪几种组合,请比较它们的特点。 答:有4种类型的堆栈,表示递增和递减的满堆栈和空堆栈的各种组合。
满递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向内含有效数据项的最高地址。指令如LDMFA,STMFA等。
空递增:堆栈通过增大存储器的地址向上增长,堆栈指针指向堆栈上的第一个空地址。指令如LDMEA,STMEA等。
满递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向内含有效数据项的最低地址。指令如LDMFD,STMFD等。
空递减:堆栈通过减小存储器的地址向下增长,堆栈指针指向堆栈下的第一个空地址。指令如LDMED,STMED等。

13、ARM协处理器指令包括哪3类,请描述它们的功能。 答:ARM协处理器指令包括以下3类:
用于ARM处理器初始化ARM协处理器的数据处理操作。
用于ARM处理器的寄存器和ARM协处理器的寄存器间的数据传送操作。
用于在ARM协处理器的寄存器和内存单元之间传送数据。

14、可执行映像文件通常由几部分构成,它们有什么特点? 答:可执行映像文件通常由以下几部分构成。
一个或多个代码段,代码段的属性为只读。
零个或多个包含初始化数据的数据段,数据段的属性为可读写。
零个或多个不包含初始化数据的数据段,数据段的属性为可读写。

15、ARM嵌入式系统主要由______、______和______构成。 答案:嵌入式处理器、相关支撑硬件、嵌入式软件系统

16、总线通常包括______、______和______。 答案:数据总线、地址总线、控制总线

17、复位后,ARM处理器处于(B)模式,(D)状态
A、user B、SVC C、system D、ARM E、Thumb
18、ARM9 处理器总共有(E)个寄存器,system模式下使用(A)个寄存器,SVC模式下使用(B)个寄存器
A、17 B、18 C、32 D、36 E、37

19、ARM处理器中优先级别最高的异常为(E)
A、FIQ B、SWI C、IRQ D、SVC E、RESET

20、ARM出局处理指令中有效的立即数是(ACEGH)
A、0x00AB0000 B、0x0000FFFF C、0xF000000F D、0x08000012
E、0x00001F80 F、0xFFFFFFFF G、0 H、0xFF000000

21、ATPCS规定中,推荐子函数参数最大为(D)个
A、1 B、2 C、3 D、4

22、ATPCS规定中,栈是(B)
A、满加 B、满减 C、空加 D、空减

23、ARM汇编编程中,通常PC是指(D),LR是指(C),SP是指(B) A、R12 B、R13 C、R14 D、R15
24、CPU复位后执行MOV R0,PC指令后,R0寄存器的值为(C) A、0x0 B、0x4 C、0x8 D、0xC
25、ARM中可以访问状态寄存器的指令是(D),能够访问内存的指令是(B) A、MOV B、LDR C、MCR D、MRS
26、ARM7TDMI使用3级流水线,分3个阶段,分别为取指、译码和 执行。
27、 ARM9的五级流水线分别是取指、译码、执行、缓冲数据、回写。
28、ARM的异常类型有复位异常、未定义指令异常、软件中断、指令预取中止、数据中止异常、IRQ、FIQ
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  嵌入式 面试题 linux