✅作者简介:大家好我是 xxx,是一名嵌入式工程师,希望一起努力,一起进步!
📃参照主页:嵌入式基地
🔥系列专栏:硬件基础知识——单片机 习题专栏
💬网上关于嵌入式的面试练习网站很少,这里给大家推荐一款Verilog 在线刷题神器,从基础到大厂面试题👉点击跳转刷题网站进行注册学习
1)SCON的中文含义是:B
A.串行接口 | 串口,COM接口,数据按位顺序传输
B.串行口控制寄存器 | Serial Control Register
C.RS-232接口
D.串行口缓冲器 | serial data buffer, SBUF
2)下列基于Cortex-M3和Cortex-M4的systick描述,不正确的是:D
A.systick是单间的向下计数的24位计数器
B.systick通常用来给OS产生一个周期性的中断,来触发进行任务的上下文切换
C.systick中有一个重载寄存器,当定时器计数为0时,使用重载寄存器中的值进行重载
D.systick和定时器一样,均属于外设
题解:虽然systick可以当做定时器使用,但由于systick是在CPU核内部实现的,从而与
MCU外设没有关系,增加了代码的可移植性
3)51系列单片机定时器T0的溢出标志TF0,在CPU响应中断后:D
A.由软件清零
B.由硬件清零
C.随机状态
D.A和B都可以
4)在8051单片机中,当RS1和RS0的值为01B时工作寄存器位于内部RAM的 区域内:B
A.00-07H
B.08H-0FH
C.10H-17H
D.18H-1FH
5)下列寄存器中,_____不能用数据传送类指令修改其值:B
A.PSW Program Status Word,程序状态寄存器,用于0S在管态和目态之间的转换
B.PC 专用寄存器,用来存储下一条指令的地址
C.SP streaming processor,最基本处理单元
D.SBUF
6)对于Cortex-M系类,下列哪一项不是启动流程中必须的:C
A.设置中断向量表
B.初始化时钟
C.初始化 systick
D.初始化堆栈
题解:当使用RTOS时,在RTOS启动时会进行滴答时钟systick的初始化设置,但
systick不属于MCU启动的必须设置项
7)下列指令不是变址寻址方式的是:C
A. JMP @A+DPTR
B. MOVC A,@A+PC
C. MOVX A,@DPTR
D. MOVC A,@A+DPTR
题解:间接寻址寄存器提供的基地址+指令给出的"偏移量"
8)下列单片机中具有4K ROM的是 :B
A.8751
B.8051
C.8032
D.89C52
9)针对Cortex-M3和Cortex-M4来说,其处理器提供了两个用于进入休眠模式的指令,下列关于这两个指令的描述,不正确的是:D
A. 进入休眠的指令分别是WFI和WFE
B. WFE方式进入休眠时,系统可以通过事件输入的方式唤醒,比如输入信号脉冲
C. WFI或者WFE方式进入休眠,均可以通过中断请求来唤醒
D.WFE和WFI方式进入休眠后,均可以通过事件输入方式唤醒
题解:
WFI(Wait for interrupt)等待中断唤醒
WFE(Wait for event) 等待事件唤醒
10)下列指令中,对标志位CY有影响的指令是:A
A. ADD A,B
B. INC A
C. MOV A,#30H
D. ANL 30H,A
题解:程序状态字寄存器PSW的最高位Cy为最高位标志位。当运算结果最高位产生进位时,置1
所以任何能影响进位的都是ADD、ADDC、ANL、CJNE、DA、DIV、MUL、ORL、RLC、RRC、SUBB
11)当T0向51系列单片机的CPU发出中断请求时,若CPU允许并接受中断时,程序计数器PC的内容将被自动修改为:B
A. 0003H
B. 000BH
C. 0013H
D. 001BH
12)MCS-51单片机复位后SBUF=:D
A. 00H
B. 0FFH
C. 80H
D. 不确定
13)MCS-51单片机的最小时序定时单位是:A
A. 节拍
B. 状态
C. 机器周期
D. 指令周期
题解:4个时序单元:节拍,状态周期,机器周期,指令周期
14)下列对于FreeRTOS任务调度的描述,不正确的是:D
A. FreeRTOS 支持时间片轮序和优先级抢占的任务调度方式
B. 对于同优先级任务,系统根据时间片调度,给予每个任务相同的运行时间片,保证每个任务都能获得CPU
C. 无论是哪个调度,其最终都需要挂死PendSV异常,在该异常服务程序中完成任务切换
D. SYSTICK和SVC,PendSV三种异常分别在其适当的时候进行任务切换
题解:
选项A:大多数开发可能不会关注任务调度,认为有时间片控制,当时间片到时后,系统会自动切换任务,但当有特殊任务,需要其一旦其准备还就要进行调度,优先级抢占的任务调度方式就是为了满足这类需求的
选项B:描述的是基本的基于时间片进行任务调度,是正确的
选项C:系统中可以有多个触发任务调度的方式和时机,但任务上下文切换只有在PendSV异常中进行处理,因此该选项也是正确的
选项D:该描述是错误的,SYSTICK和SVC,PendSV三种异常都有各自的分工,其中SYSTICK和SVC属于服务中挂起PendSV,然后PendSV异常进行任务上下文切换
15)针对Cortex-M3和Cortex-M4的PSR的描述,正确的是:ABCD
A. PSR共包含三个,分别是应用PSR(APSR),执行PSR(EPSR),中断PSR(IPSR)
B. PSR寄存器包含三个,这三个可以单独访问,也可以独立访问
C. IPSR为只读的
D. 其APSR中的每一个bit代表不同的意思,N是负标志,Z是0标志,C是进位或者借位标志,V是溢出标志,Q是饱和标志
————————————————————————
1)对于8051单片机,当其引脚EA接低电平时,可扩展的外部程序存储器最大为___k字节:C
A. 32
B. 60
C. 64
D. 128
题解:EA=0,直接访问片外程序存储空间,最大64KB;EA=1,先读取片内4K,再转到读取片外60K的程序存储空间
2)单片机中的ADC的转化精度由_______来决定的(采用内部参考电压):C
A. 参考电压
B. 时钟
C. 转化后的数据位数
D. 转换过程所消耗的时间,时间越久,精度越高
题解:考察ADC的工作原理,其精度= (正参考电压 - 负参考电压)/ (2^转化位数),通常参考电压由硬件设计决定,因此其精度与转化位数相关
3)按照8051单片机的自然优先级,中断优先级别最低的是:B
A. INT0 外部中断0
B. 串行口 串口
C. T0 定时器
D. INT1 外部中断1
题解:8051单片机可以设置2个中断优先级,同一级别优先顺序由高到低:
INT0 、 T0 、 INT1 、T1 、COM(串口)
4)下列特殊功能寄存器中可以位寻址的是 :D
A. SP(81H)
B. DPH(83H)
C. TH0(8CH)
D. SCON(98H)
题解:地址以0和8结尾的都可以位寻址
5)下列关于STM32中RTC的描述,不正确的是:C
A. 当电源VDD无法供电时,他们仍然由VBAT维持供电
B. RCT用来储存时钟的是一个32位寄存器
C. 因系统掉电时,RTC停止工作,所以每一次系统启动后,都需要进行RTC的校准
D. 系统进行复位操作时,RTC不会被复位
题解:
选项A的描述是正确的,通常可以看到我们购买的开发板上会有一个纽扣电池,该电池就是当VDD无法供电时,其纽扣电池会继续维持其供电
选项B的描述是正确的,具体的使用需要查看对应芯片手册
选项C的描述是错误的,选项A中已经提到VBAT的作用,就是为了防止C中的现象
选项D的描述是正确的,若RTC会被复位,则复位后RTC中记录的时间会与实际时间不相符
6)下列哪项不是freertos和ucos的区别:C
A. freertos免费,ucos在商业上使用时是需要付费的
B. 任务间通讯freertos只支持队列, 信号量, 互斥量。 ucos除这些外,还支持事件标志组,邮箱
C. freertos支持的任务数量同ucos相同
D. freertos只支持TCP/IP, ucos则有大量外延支持,比如FS, USB, GUI, CAN等的支持
题解:freertos可以支持超过64个任务,ucos不能超过64个
7)8051单片机的P2口除作为输入/输出接口使用外,还可以作为_____使用:B
A. 低8位地址总线
B. 高8位地址总线
C. 数据总线
D. 控制总线
- 下列是基于cortex-M,使用keil工具的部分代码段,该代码中设置的堆大小是多少字节:A
Heap_Size EQU 0x00000200
AREA HEAP, NOINIT, READWRITE, ALIGN = 3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
A. 0x00000200
B. 0x00000200 * 3
C. 0x00000200 * 4
D. 0x00000200 * 8
题解:本题考察对汇编语言的了解,通常在使用keil工具创建工程时,会进行堆栈的默认配置
该题中,汇编语句Heap_Size EQU 0x00000200定义了堆的大小为 0x00000200字节
9)针对Cortex-M3和Cortex-M4系列的错误异常问题,下列描述中正确的是:A
A. 可以对处理器进行设置,使能非对齐传输异常,这样当出现非对其传输时触发异常
B. 处理器默认捕获非字节对齐异常
C. 处理器默认捕获除0操作异常
D. HardFault错误使用前需要进行使能操作
题解:本题主要考察了Cortex-M3和Cortex-M4错误异常,错误异常有很多种,存储器管理错误(比如访问未在MPU中定义的存储器位置),总线错误(比如压栈出栈错误),使用错误(比如未定义的浮点指令),HardFault(对应的处理函数是void HardFault_Handler(void))
选项A:非对齐的异常,默认是不进行捕获的,要想捕获该异常,需要设置
SCB->CCR |= SCB_CCR_UNALIGN_TRP_MsK
在Cortex-M3和Cortex-M4的存储系统中,有一块区域为系统控制快,即SCB区域,该区域是用来控制处理器行为的一组寄存器,并可以提供状态信息
选项B和C:非字节对齐异常和除0异常默认都不进行捕获,需要进行设置,设置方法相同
选项D:HardFault错误无须使能,他总是可用的,且具有固定的异常优先级-1,存储器管理错误,总线错误和使用错误需要进行使能且可以通过函数NVIC_SetPriority来设置优先级
若代码中有大量的指针操作,且存在除法的操作,建议使能非字节对齐异常和除0异常
10)MCS-51单片机复位后P0~P3口的状态是:B
A. 00H
B. 0FFH
C. 07H
D. 7FH
题解:上电复位后都是高电平
11)MCS-51单片机执行MOV SP,#53H和PUSH PSW后,(SP)= :D
A. 51H
B. 52H
C. 53H
D. 54H
题解:堆栈指针向上增长,psw是一个八位的寄存器
12)当串行口2向MCS-51系列单片机的CPU发出中断请求时,若CPU允许并接受中断时,程序计数器PC的内容将被自动修改为:D
A. 0003H
B. 000BH
C. 0013H
D. 0023H
题解:
外中断0:0003H
定时器0:000BH
外中断1:0013H
定时器1:001BH
串口 :0023H
13)P0、P1口做输入用途之前必须:A
A. 相应端口先置1
B. 相应端口先置0
C. 外接高电平
D. 外接上拉电阻
题解:P0~P3在进行读操作之前必须写1,这样才能关断输出驱动的FET管。因为P0口作一般
I/O口时上拉场效应管一直截止,所以如果不置1,下拉场效应管会导通,永远只能读到0。
于是要先对外管脚只有一个弱上拉作用,管脚上的高低电平才能被正确读到;否则,FET管
导通的状况下,不论外部信号是高电平还是低电平,都会被导通的FET管拉低的。
14)下述关于IIC信号的描述,正确的是:ABC
A. 开始信号:SCL 为高电平时,SDA 由高电平向低电平跳变,开始传送数据
B. 结束信号:SCL 为高电平时,SDA 由低电平向高电平跳变,结束传送数据
C. 应答信号:接收数据的 IC 在接收到 8bit 数据后,向发送数据的 IC 发出特定的低电平脉冲,表示已收到数据
D. IIC存在两个数据信号线,一个时钟信号线
题解:画图即可