嵌入式开发工程师笔试面试指南-面试题目整理(1)
1 ARM 有多少32位寄存器 ?⭐⭐⭐⭐
在 ARM 架构中,通常有 37 个 32 位寄存器,包括:
通用寄存器:
R0 - R15:这 16 个寄存器是最常用的通用寄存器。其中 R0 - R3 通常用于传递函数参数和返回值,R4 - R11 用于保存局部变量等,R12 一般作为子程序内部的临时寄存器,R13 通常作为栈指针(SP),R14 为链接寄存器(LR),用于保存子程序的返回地址,R15 是程序计数器(PC),指向当前正在执行的指令地址的下一条指令地址。
特殊寄存器:
CPSR:当前程序状态寄存器(Current Program Status Register),用于保存程序当前的运行状态,包括条件标志位、中断使能位、处理器模式等信息。
SPSR:备份程序状态寄存器(Saved Program Status Register),在异常发生时,用于保存 CPSR 的当前值,以便在异常处理结束后恢复原来的程序状态。
协处理器寄存器:ARM 架构支持协处理器,有多个协处理器寄存器用于特定的功能,如浮点运算等。
程序状态保存寄存器:用于在异常处理等情况下保存和恢复程序状态。
此外,在不同的 ARM 处理器版本和应用场景下,寄存器的数量和用途可能会略有差异,但一般来说都是在这个基础上进行扩展或调整。
2 CPU、MPU、MCU、SOC、SOPC联系和区别⭐⭐⭐
CPU、MPU、MCU、SoC、SOPC 的联系和区别如下:
联系
它们都是集成电路芯片,是电子系统的核心部件,都可以处理数字信号,实现各种逻辑运算、数据处理等功能,且在架构和原理上有一定的相似性,都包含运算器、控制器等基本组成部分。
高级的 MCU、SoC、SOPC 通常会集成 CPU 作为核心处理单元,以实现更复杂的系统功能。
区别
CPU:即中央处理器,是计算机系统的运算和控制核心,主要进行算术逻辑运算、控制指令执行等,不包含内存、外设等,需搭配内存、主板芯片组等其他硬件才能构成完整系统,常见于电脑等。
MPU:即微处理器,是高性能的 CPU,强调运算和处理能力,有复杂指令集或高性能的精简指令集,用于对处理能力要求高的设备,如智能手机、平板电脑等。
MCU:即微控制器,把 CPU、存储器、定时器、计数器、多种接口等集成在一个芯片上,面向控制领域,对成本、功耗、可靠性要求高,用于家电、工业控制、汽车电子等。
SoC:即片上系统,将 CPU、GPU、内存、各种接口、通信模块等集成在一个芯片上,形成完整系统,注重系统集成和协同工作,用于手机、智能穿戴设备等。
SOPC:即可编程片上系统,基于可编程逻辑器件(FPGA)实现,可根据需求动态配置硬件电路,将软核 CPU 或硬核 CPU 与其他逻辑模块集成,灵活性高,用于科研、定制化产品开发等。
3 上拉、下拉、高阻态介绍⭐⭐⭐⭐
上拉、下拉和高阻态是数字电路中常见的概念,以下是它们的介绍:
上拉
定义:通过一个电阻将不确定的信号连接到高电平,使信号在默认状态下为高电平。
作用:确保在没有其他驱动信号时,信号引脚处于确定的高电平状态,防止信号悬空而产生不稳定或误触发的情况,常用于输入引脚,提高电路的抗干扰能力。
下拉
定义:与上拉相反,是通过电阻将信号连接到低电平,让信号在默认情况下为低电平。
作用:使信号引脚在无驱动时处于低电平,同样可避免信号悬空带来的问题,在一些电路中用于设定初始状态或确定特定的逻辑条件。
高阻态
定义:指电路中的某个节点或引脚既不呈现高电平也不呈现低电平,相当于该节点与其他电路部分断开连接,处于一种悬浮的高阻抗状态。
作用:常用于三态门电路等,实现多个设备共享总线等资源,当设备处于高阻态时,不会对总线上的信号产生影响,允许其他设备在总线上进行数据传输等操作。
4 串口协议讲一讲⭐⭐⭐⭐
串口协议即串行通信协议,是指数据一位一位地顺序传输的通信协议,常见的有 UART、RS-232、RS-485 等,以下是对串口协议的简要介绍:
UART:通用异步收发传输器,数据以帧为单位传输,一帧数据包含起始位、数据位、奇偶校验位和停止位。不使用时钟信号,靠双方约定的波特率来保证数据同步,适用于短距离、低速通信,如主板与外设通信。
RS-232:是 UART 的一种电气标准,规定了信号的电平、接口形状等。采用负逻辑,逻辑 “1” 为 - 3V 至 - 15V,逻辑 “0” 为 + 3V 至 + 15V,通信距离一般在 15 米以内,常用于计算机与调制解调器等设备连接。
RS-485:基于 UART,采用差分信号传输,抗干扰能力强,传输距离可达 1200 米左右,支持多节点通信,总线上可挂接多个设备,常用于工业控制、安防监控等领域的远距离、多设备通信。
5 IIC、SPI、UART、CAN协议区别⭐⭐⭐⭐⭐
IIC、SPI、UART、CAN 协议的区别主要体现在以下几个方面:
通信方式
IIC:半双工通信,同一时刻只能进行发送或接收操作,通过 SDA(数据线)和 SCL(时钟线)两根线进行通信。
SPI:全双工通信,可同时进行数据的发送和接收,通常有四根线,分别是 MOSI(主出从入)、MISO(主入从出)、SCK(时钟线)和 SS(片选线)。
UART:半双工或全双工,常用的是异步通信,通过两根线,即 TXD(发送线)和 RXD(接收线)进行数据传输。
CAN:半双工通信,使用两根线 CAN_H 和 CAN_L,通过差分信号传输数据。
通信速率
IIC:标准模式下可达 100kbps,快速模式可达 400kbps,高速模式可达 3.4Mbps。
SPI:通信速率较高,可达到几十 Mbps,具体取决于设备和时钟频率。
UART:速率相对较低,常见的有 9600bps、115200bps 等。
CAN:速率根据不同的应用场景有所不同,最高可达 1Mbps。
应用场景
IIC:常用于连接低速的外围设备,如 EEPROM、传感器等,适合近距离、多设备的通信场景。
SPI:适用于需要高速数据传输的设备,如 Flash 存储器、ADC、DAC 等,常用于主设备与从设备之间的短距离通信。
UART:主要用于点对点的通信,如计算机与串口设备之间的通信,像调试串口、蓝牙模块通信等。
CAN:广泛应用于汽车电子、工业自动化等对可靠性和实时性要求较高的领域,用于多个节点之间的通信。
6 锁有哪些?有什么注意事项⭐⭐⭐⭐
常见的锁
互斥:用于保护共享资源,确保同一时刻只有一个线程或进程能够访问该资源,避免数据冲突和不一致。
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
#承诺提供免费技术答疑# 本专栏主要是介绍嵌入式开发岗位相关知识和学习攻略。“C/C++软件开发岗位”也可以参考。 该专栏覆盖了嵌入式求职过程中99%常见面试题,详细讲解了嵌入式软件开发岗位、学习攻略、项目经验分享、面试心得,从技术面,HR面,主管面,谈薪一站式服务。订阅即赠送简历模板、内推机会,需要的同学点击我头像私信即可!