2026新版嵌入式春招面试题

春招拉开帷幕。 无论是初出茅庐的应届生,还是寻求突破的职场老兵,面对竞争日益激烈的嵌入式岗位,你是否做好了充足的准备?

嵌入式开发是一个对综合能力要求极高 的领域,既需要扎实的C语言功底,又需要对硬件底层的深刻理解,还要熟悉操作系统和各种通信协议。为了帮助大家在面试中脱颖而出,我们精心整理了这份面试题库。

本文不仅涵盖了经典的必考题 ,还融入了2026年行业关注的热点方向。建议收藏,反复研读,祝大家都能拿到心仪的Offer!

1. 进程和线程的区别?

进程是程序的一次执行实例,拥有独立的地址空间和系统资源;

线程是进程内的执行单元,多个线程共享所属进程的资源,但各自拥有独立的栈和寄存器状态。

区别:进程间隔离性强、开销大;线程轻量、通信高效,但需同步机制保障安全。

2. 什么是死锁?如何预防?

死锁是多个进程/线程互相等待对方释放资源。

预防:按固定顺序加锁、避免持有并等待、使用超时机制。

3. STM32的GPIO有哪几种工作模式?

输入(浮空/上拉/下拉)、输出(推挽/开漏)、复用功能、模拟模式。

4. volatile关键字作用?

告诉编译器该变量可能被外部(如硬件、中断)修改,禁止优化,每次必须从内存读取。

5. 堆和栈的区别?

栈由系统自动管理,速度快但容量小;

堆需手动分配(malloc/new),灵活但易泄漏、速度慢。

6. TCP和UDP区别?

TCP面向连接、可靠、有序;

UDP无连接、不可靠、低延迟,适用于音视频等实时场景。

7. 什么是三次握手?

Client发SYN → Server回SYN+ACK → Client发ACK,建立可靠连接,防止历史请求干扰。

8. I2C和SPI的区别?

I2C:两线(SDA/SCL)、半双工、多主多从、速度慢;SPI:四线(MOSI/MISO/SCLK/CS)、全双工、主从结构、速度快。

9. 为什么析构函数要声明为虚函数?

确保通过基类指针删除派生类对象时,能正确调用派生类析构函数,避免资源泄漏。

10. new 和 malloc 的区别?

new 是C++操作符,调用构造函数、类型安全;malloc 是C函数,只分配内存,返回void*。

11. 什么是看门狗?作用?

看门狗是硬件定时器,程序需定期"喂狗",否则超时复位,用于防止系统死锁。

12. RTOS的任务调度方式?

优先级调度(高优先执行)、时间片轮转(同优先级轮流执行),支持抢占。

13. Linux设备节点在哪?

在 /dev 目录下,如 /dev/ttyS0、/dev/mmcblk0。

14. 常量存储在哪个内存区?

字符串字面量等常量存放在只读数据段(常量区),程序结束由系统回收。

15. 硬链接和软链接区别?

硬链接共享inode,不能跨文件系统;

软链接是独立文件,指向路径,可跨文件系统。

16. 中断和异常的区别?

中断来自外部硬件(异步),异常由CPU内部错误或指令触发(同步)。

17. C程序编译四阶段?

预处理 → 编译 → 汇编 → 链接。

18. static的作用?

限制作用域(文件内)或延长生命周期(局部静态变量),类中表示共享成员。

19. 大小端是什么?网络用哪种?

大端:高位存低地址;

小端:低位存低地址。网络字节序为大端。

20.如何查看Linux系统性能?

用 top、htop、free -h、iostat、vmstat 等命令监控CPU、内存、IO等。

21.C/C++程序内存分布情况,常量所在的区

C/C++程序内存分为五区:栈(局部变量)、堆(动态分配)、全局/静态区(全局和static变量)、常量区(字符串字面量、const全局/静态变量,只读)、代码区(函数机器指令)。

其中常量(如 "hello"、const char* p = "..." 中的字符串)存储在常量区,程序结束时由系统释放。

22.linux查看系统性能命令

Linux中常用top(实时进程与CPU/内存)、htop(增强版top)、vmstat(虚拟内存统计)、iostat(磁盘I/O)、free -h(内存使用)、df -h(磁盘空间)、uptime(负载均值)等命令快速查看系统性能

23.linux7种文件设备类型,硬盘属于哪种设备?

Linux中文件类型有7种:普通文件(-)、目录(d)、符号链接(l)、字符设备(c)、块设备(b)、管道(p)、套接字(s)。

硬盘属于块设备(b),因其以固定大小的数据块为单位进行读写。

24.驱动设备节点保存在哪个目录?

Linux中驱动设备节点通常保存在 /dev 目录下,由内核或udev动态创建,用于用户空间与设备驱动交互。

25.介绍一下STM32 GPIO

STM32的GPIO(通用输入输出)引脚可配置为输入(浮空、上拉、下拉)、输出(推挽、开漏)、复用功能(如UART、I2C)或模拟模式,支持设置输出速度、上下拉电阻,并可通过寄存器或HAL库进行高效控制,是连接外设的基础接口。

26.什么是内存映射?MCU的地址空间通常包含哪些部分?

将Flash,SRAM,外设寄存器等映射到统一的线性地址空间。包含:代码区(Flash),数据区(SRAM),外设寄存器区,位带别名区,系统控制块等。

27.NVIC是什么?它的主要功能?

嵌套向量中断控制器。功能:管理所有中断的使能/禁用,优先级配置,中断挂起和响应。

28.FPU是什么?有什么优势?

浮点运算单元。优势:大幅提升单精度/双精度浮点数运算速度,降低功耗。

29.什么是位带(Bit-Banding)功能?它有什么用?

将特定内存区和外设区的每个位(bit)映射到别名区的一个字(word)。

通过读写别名区的字,就能实现原子性的位操作,无需"读-改-写"三步。

30.MPU在嵌入式系统中起什么作用?

内存保护单元。可为不同任务(在RTOS中)分配不同的内存访问权限(只读,只执行等),防止任务间非法内存访问,提升系统鲁棒性。

...

更多嵌入式学习资料:

相关推荐
应该会好起来的1 小时前
基于定时器中断的多任务轮询架构
嵌入式
切糕师学AI17 小时前
NuttX RTOS是什么?
嵌入式·rtos
冤大头编程之路1 天前
FreeRTOS/RT-Thread双教程:嵌入式开发者入门到实战(2025版)
嵌入式
大聪明-PLUS1 天前
一个简单高效的 C++ 监控程序,带有一个通用的 Makefile
linux·嵌入式·arm·smarc
hk11242 天前
【Hardware/Robotics】2026年度多态硬件重构与自主机器人内核基准索引 (Benchmark Index)
开发语言·数据库·机器人·嵌入式·硬件开发
乔碧萝成都分萝2 天前
二十、设备树
linux·驱动开发·嵌入式
大聪明-PLUS2 天前
Unix 工作实战。第二部分:软件
linux·嵌入式·arm·smarc
切糕师学AI2 天前
C/C++ 中的 __asm volatile 函数
c语言·c++·嵌入式
Molesidy3 天前
【STM32】【USB】USB通讯方式的学习笔记以及基于CubeMX HAL库的例程验证
stm32·单片机·嵌入式·usb