历史上的今天
返回首页

历史上的今天

今天是:2024年11月02日(星期六)

2021年11月02日 | 嵌入式linux面试题解析(一)——ARM部分一

2021-11-02 来源:eefocus

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)

{undefined

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


1、描述一下嵌入式基于ROM的运行方式基于RAM的运行方式有什么区别。

基于RAM的运行方式:需要把硬盘和其他介质的代码先加载到ram中,加载过程中一般有重定位的操作;

基于ROM:没有上面的操作。

基于ROM:速度较基于RAM的慢,因为会有一个把变量,部分代码等从存储器(硬盘,flash)搬移到RAM的过程;可用RAM资源比基于RAM的多;

基于RAM:速度较基于ROM的快,可用RAM比基于ROM的少,因为所有的代码,数据都必须存放在RAM中。


2、嵌入式操作系统和通用操作系统有什么差别?

答案:多优先级,抢占型,实时操作系统。嵌入式操作系统一般没有UI,体积小,实时性强,对稳定性要求更高。嵌入式操作系统强调实时性,并且可裁减。要求系统资源的消耗要尽可能的小。


3、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?C
A、直接修改CPU状态寄存器(CPSR)对应的模式
B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态
C、使用软件中断指令(SWI)
D、让处理器执行未定义指令


4、在ARM Linux体系中,用来处理外设中断的异常模式是__C____
A、软件中断(SWI) B、未定义的指令异常
C、中断请求(IRQ) D、快速中断请求(FIQ)


5、在ARM Linux系统中,中断处理程序进入C代码以后,ARM的处于__A__工作模式
A、超级用户(SVC) B、中断(IRQ)
C、快速中断(IRQ) D、和进入中断之前的状态有关系


6、在ARM体系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在何时被清除?A
A、当中断处理程序结束以后,才可以清除
B、进入相应的中断处理程序,即可以清除
C、产生IRQ中断的时候,处理器自动清除
D、任何时候都可以清除


7、在下列ARM处理器的各种模式中,只有__A___模式不可以自由地改变处理器的工作模式。
A、用户模式(User) B、系统模式(System)
C、终止模式(Abort) D、中断模式(IRQ)


8、ARM嵌入式系统中,PC指向的是正在(C )的指令地址。
A 执行 B 译码 C 取指 D 都不是


9、同CISC相比,下面哪一项不属于RISC处理器的特征___D_____
A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。
B、减少指令数和寻址方式,使控制部件简化,加快执行速度。
C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。
D、RISC处理器都采用哈佛结构


10、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?C
A、直接修改CPU状态寄存器(CPSR)对应的模式
B、先修改程序状态备份寄存器(SPSR)到对应的模式,再更新CPU状态
C、使用软件中断指令(SWI)
D、让处理器执行未定义指令


11、在ARM系统结构中,MMU映射最小的单元空间是__D__
A、64KB B、16KB C、4KB D、1KB


12、在ARM Linux启动的过程中,开启MMU的时候,如何实现从实地址空间到虚拟地址空间的过度?D
A、开启MMU,在内存中创建页表(映射内核到3G以上的虚拟地址空间)并继续运行。
B、开启MMU,在内存中创建页表(映射内核到3G以上的虚拟地址空间),跳转到虚拟地址空间继续运行。
C、在内存中创建页表(映射内核到3G以上的虚拟地址空间),开启MMU,跳转到虚拟地址空间继续运行。
D、在内存中创建页表(映射内核到3G以上的虚拟地址空间,同时把内核所在的前1MB空间到和其实地址相同的虚拟地址空间),开启MMU,跳转到虚拟地址空间继续运行。


13、在ARM Linux体系中,用来处理外设中断的异常模式是_C_____
A、软件中断(SWI) B、未定义的指令异常
C、中断请求(IRQ) D、快速中断请求(FIQ)

14、指令ADD R2,R1,R1,LSR #2中,LSR的含义是(B)。
A 逻辑左移 B 逻辑右移 C 算术右移 D循环右移


15、哈佛结构和冯诺依曼结构的区别是( A)
A 指令和数据分开存储 B 不需要程序计数器 C 统一编址 D 单一数据总线


16、ARM9和ARM7的重要区别是(A )
A ARM9带有MMU功能 B ARM9支持Thumb指令集
C ARM9带有Cache功能 D ARM9是哈佛结构


17、当系统工作负载增加时,CPU的 A 将占很大比重
A) 用户时间 B)系统时间 C)空闲时间 D) 进程时间

18、嵌入式微控制器相比嵌入式微处理器的的最大特点(B )。
A、体积大大减小 B、单片化
C、功耗低 D、成本高


19、同CISC相比,下面哪一项不属于RISC处理器的特征__D______
A、采用固定长度的指令格式,指令规整、简单、基本寻址方式有2~3种。
B、减少指令数和寻址方式,使控制部件简化,加快执行速度。
C、数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。
D、RISC处理器都采用哈佛结构


20、中断向量是指(C )。
A、中断断点的地址 B、中断向量表起始地址
C、中断处理程序入口地址 D、中断返回地址


21、在ARM系统结构中,MMU映射最大的单元空间是___A_
A、1MB B、128KB C、64KB D、4K

推荐阅读

史海拾趣

ELNA(依娜)公司的发展小趣事

随着全球电子市场的快速发展,ELNA开始实施国际化战略。公司积极拓展海外市场,通过建立销售网络和生产基地,提升品牌影响力和市场竞争力。

在国际化过程中,ELNA注重本地化经营和文化融合。公司根据不同地区的市场需求和文化特点,制定相应的产品和市场策略。同时,ELNA还加强了对海外员工的培训和管理,提升团队的国际化水平和协作能力。

(以下故事四和故事五的内容,由于篇幅限制,我将不再详细展开,但您可以根据类似的结构和思路进行补充和完善。)

Hirose公司的发展小趣事

ELNA公司的故事始于1940年代,当时该公司推出了其第一台缝纫机。这款缝纫机以其精湛的工艺和卓越的性能迅速在市场上崭露头角。ELNA凭借对品质的坚持和对技术的不断创新,逐渐在缝纫机行业树立了良好的口碑。

随着业务的扩展,ELNA开始涉足电子领域,并逐步将其在机械制造和精密加工方面的技术优势应用到电子产品中。这一转变为公司未来的发展奠定了坚实的基础。

HiRel Connectors Inc公司的发展小趣事
确保电源插头已牢固插入插座,插座无损坏且通电正常。
Hirosugi-Keiki公司的发展小趣事
对于安装在户外的摄像头,应安装防雷击保护装置以减少因雷击而导致的损坏。
American Electric公司的发展小趣事

随着全球化进程的加速,American Electric公司开始实施国际化战略。公司积极拓展海外市场,与多个国家的电力企业建立合作关系,共同开展电力项目。同时,公司还在海外设立了多个分支机构,以便更好地服务当地客户。这些举措不仅提高了公司的国际影响力,还为公司的长期发展奠定了坚实的基础。

EnerSys公司的发展小趣事

进入21世纪后,EnerSys加快了其收购与整合的步伐。2000年底,EnerSys收购了Yuasa Corporation(Japan)在北美和南美的储能和动力电池业务。随后,公司又陆续收购了Energy Storage Group of Invensys plc.和FIAMM, S.p.A.的动力电池业务。这些收购不仅扩大了EnerSys的市场份额,还增强了其在专业镍基电池、锂电池、铅酸电池和工业电池领域的技术实力。

问答坊 | AI 解惑

做F题的加群69079341

本帖最后由 paulhyde 于 2014-9-15 09:04 编辑 大家加啊!  …

查看全部问答>

KEIL C51 消除UNCALLED SEGMENT警告的方法

请教高人得到的答案,共享给大家,去除了警告,看起来舒服多了 第一幅图是在KEIL中的方法 第二幅是在MEDWIN v3中的方法 [ 本帖最后由 soulcoffee 于 2009-9-28 16:26 编辑 ]…

查看全部问答>

Keil 入门实例教程

Keil 入门实例教程…

查看全部问答>

关于MISRA:规则17.4 ,只允许用数组索引做指针运算

规则17.4 只允许用数组索引做指针运算 按照如下方式定义数组和指针: uint8_t a[10]; unit8_t *p; p = a; 则*(p+5) = 0是不允许的,而p[5] = 0 则是允许的,尽管就这段程序而言,二者等价。 以下给出一段程序,读者可参照相应程序行的注释,细 ...…

查看全部问答>

win ce Platform Builder安装问题

win ce Platform Builder5.0与 VS2005 安装在同一台机器有没有冲突,如果有,怎么解决? 谢谢!…

查看全部问答>

请大家推荐VOH<2V的PLL芯片

RT,希望输出VOH小于2V,倍频能力5倍,ICS502很接近了,但是VOH=2.4V,还是不满足要求,请教大家,帮我推荐一歌芯片,谢谢…

查看全部问答>

STM32RTC

void RTC_Configuration(void){  u32 delay;    /* Enable PWR and BKP clocks */  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Perip ...…

查看全部问答>

求M16与光强传感器TSL2561的程序

求M16与光强传感器TSL2561的程序,产生PWM波驱动LED调光…

查看全部问答>

基于zigbee的环境参数测量模块设计中的几个问题

我最近在做这个东西,遇到几个问题想向大家请教一下。 我用的是msp430f2618单片机。无线通信模块用的是cc2520. 温湿度传感器是sht10,光照传感器是tsl2561. 现在电路原理图已经做好了,开始编程序了。请大家就编程模块给我提一些建议。…

查看全部问答>