以下是一份嵌入式开发面试题库的中文版,涵盖基础理论、C语言、硬件接口、操作系统、驱动开发等核心知识点。适用于应届生及初中级工程师岗位面试准备。
一、C语言基础
-
指针与内存管理
- 指针和引用的区别?
const char* p、char* const p和const char* const p的区别?- 什么是野指针?如何避免?
malloc/free与new/delete的区别?嵌入式系统中如何检测内存泄漏?
-
数据结构与算法
- 用C语言实现单向链表的插入和反转。
- 什么是位域(Bit Field)?其内存对齐规则是什么?
- 如何用宏定义实现一个字节的高低4位交换?
-
编译器相关
volatile关键字的作用?举例说明使用场景(如寄存器访问、中断变量)。static关键字的三种作用(局部变量、全局变量、函数)。- 什么是代码重入(Reentrancy)?如何编写可重入函数?
二、计算机组成与硬件基础
-
体系结构
- 冯·诺依曼架构与哈佛架构的区别?ARM属于哪种?
- 大端序(Big-Endian)和小端序(Little-Endian)是什么?如何用代码检测当前系统的端序?
-
总线与接口
- I²C、SPI、UART协议的主要区别?
- I²C总线的起始条件、停止条件、ACK信号如何定义?
- SPI的4种工作模式(CPOL/CPHA)如何配置?
-
中断与时钟
- 什么是中断嵌套?如何实现?
- 看门狗(Watchdog)的作用及工作原理?
- 系统时钟源(如晶振、PLL)的作用?如何配置MCU时钟树?
三、操作系统(RTOS/Linux)
-
RTOS核心概念
- 任务(Task)与线程(Thread)的区别?任务状态有哪些(就绪/阻塞/运行)?
- 什么是优先级反转?如何解决(优先级继承/天花板协议)?
- 常用的同步机制:信号量(Semaphore)、互斥锁(Mutex)、消息队列(Message Queue)的应用场景?
-
Linux驱动开发
- 字符设备驱动的基本框架(
file_operations结构体的作用)? - 用户空间与内核空间通信的方式有哪些?
- 设备树(Device Tree)的作用?如何添加一个GPIO节点?
- 字符设备驱动的基本框架(
-
系统启动流程
- 嵌入式Linux启动流程:Bootloader → Kernel → RootFS → Init进程。
- Bootloader(如U-Boot)的两个阶段分别做了什么?
四、外设与驱动
-
常用外设编程
- GPIO的输入/输出模式(推挽、开漏)有什么区别?
- ADC的采样精度受哪些因素影响?如何提高精度?
- PWM的输出频率和占空比如何计算?
-
驱动开发实践
- 编写一个LED闪烁的驱动程序(需包含设备树配置和驱动代码框架)。
- 中断服务程序(ISR)的设计原则(为什么不能有耗时操作)?
- 如何实现阻塞型I/O操作(如
read等待数据可用)?
五、调试与优化
-
调试工具
- GDB调试远程嵌入式设备的步骤?
- 如何用J-Link/Olimex烧录固件?
printf调试的替代方案(如串口日志、SWO输出、Segger RTT)?
-
性能优化
- 如何减少中断延迟?
- 代码优化方法:使用查表法替代浮点运算、循环展开、内联汇编等。
- 如何测量代码执行时间(如使用DWT计数器)?
六、通信协议与网络
-
常用协议
- TCP与UDP在嵌入式场景的应用差异。
- MQTT/CoAP协议的特点及适用场景。
- CAN总线错误处理机制(错误帧、离线恢复)?
-
无线通信
- BLE的广播模式和连接模式区别?
- LoRa的扩频技术原理及传输距离影响因素?
七、系统设计综合题
- 设计一个低功耗温湿度采集系统(选择MCU、传感器、通信方式、功耗优化策略)。
- 如何实现OTA(空中升级)功能?设计安全校验流程。
- 多任务系统中共享资源(如串口)的访问冲突如何解决?
附:高频考点总结
- 必考知识点:指针、中断、RTOS任务调度、I²C/SPI时序、内存对齐、
volatile用法。 - 加分项:能手绘协议时序图、了解ARM Cortex-M内核机制(如NVIC、SysTick)、熟悉Git/GDB/Makefile工具链。
? 建议:针对目标岗位(如Linux驱动/RTOS应用)选择性深入准备,并结合实际项目经验回答设计类问题。
有具体方向需求(如STM32/ESP32/Linux驱动),可进一步提供专项题目!
嵌入式C语言面试题库 精选资料推荐
嵌入式开发—C语言面试题用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
cd340823
2021-07-19 07:21:46
嵌入式开发为什么选择C语言?
1、嵌入式开发为什么选择C语言?(面试题!!!)嵌入式开发中操作系统是核心,需要移植,并在上层和底层做开发,而操作系统的核心是内核,所有内核的开发都采用C语言,所以嵌入式开发选择C语言。(嵌入式开发
juju宇哥
2021-12-15 07:45:30
嵌入式软件面试资料大合集
、stm32)、freertos、MQTT,懂硬件。关于面试题首先,每一家的公司方式面试不一样, 前一晚先复习一些C语言基础,我面试的公司有十几家,出的题基本上是大同小异,参考下面的链接:嵌入式C语言基础(转载)STM32尝试(转载)上面两套题是好经典的,我面试了十几家公司,有三分之一都在里面出题.
tulin
2021-10-28 08:14:01
常见的MySQL高频面试题
在各类技术岗位面试中,似乎 MySQL 相关问题经常被问到。无论你面试开发岗位或运维岗位,总会问几道数据库问题。经常有小伙伴私信我,询问如何应对 MySQL 面试题。其实很多面试题都是大同小异的,提前做准备还是很有必要的。本篇文章简单说下几个常见的面试题,一起来学习下吧。
2021-02-08 16:05:00
嵌入式软件工程师面试题目大合集
嵌入式软件工程师面试题目整理(八)linux中内核空间及用户空间的区别?用户空间与内核通信方式有哪些linux中内存划分及如何使用?虚拟地址及物理地址的概念及彼此之间的转化,高端内存概念linux中
我不吃鱼
2021-12-24 06:23:43
嵌入式软件工程师笔试面试的相关资料分享
嵌入式软件笔试,嵌入式软件面试,程序员简历书写,Linux驱动工程师笔试,Linux驱动工程师面试,BSP工程师笔试,BSP工程师面试,应届生秋招,应届生春招,C/C++笔试题目,C/C++面试题目,C/C++程序员,BSP工程师
成长的小师弟
2021-12-24 07:46:19
嵌入式面试题目总结
在网上搜索,原来好多题都是嵌入式工程师的经典面试题目,很多网站上都可以找得到。现把他贴出来,附上网上的答案,跟大家分享,因为这些题实在太经典了。预处理器(Preprocessor)1 . 用预处理
简约之约
2019-10-29 09:01:55
操作系统的四十多道题面试题
我之前汇总了一下关于操作系统的面试题,最近又重新翻阅了一下发现不是很全,现在也到了面试季了,所以我又花了一周的时间修订整理了一下这份面试题,这份面试题可以吊打市面上所有的操作系统面试题了,不是我
2021-03-10 10:17:41
2021年低压电工考试题库及低压电工免费试题题库相关资料下载
2021年低压电工考试题库及低压电工免费试题题库来源:安全生产模拟考试一点通公众号小程序低压电工考试题库是安全生产模拟考试一点通总题库中随机出的一套低压电工免费试题,在公众号安全生产模拟考试一点通上
zhouxk
2021-09-10 07:45:03
嵌入式基于ROM的运行方式基于ram的运行方式有什么区别
上海某全球五百强面试题(嵌入式)1.static变量和static 函数各有什么特点?3.描述一下嵌入式基于ROM的运行方式基于ram的运行方式有什么区别。4.task 有几种状态?5.task 有
lotusp
2021-11-08 08:27:19
高压电工证模拟考试题库相关资料推荐
题库来源:安全生产模拟考试一点通公众号小程序2020年高压电工证模拟考试题库及高压电工理论考试试题是由公众号安全生产模拟考试一点通提供,高压电工证模拟考试题库是根据高压电工最新版教材,高压电
mingodong
2021-09-03 06:23:36
Linux系统的嵌入式开发是什么
嵌入式开发听起来很高大上,但其实它就在我们身边。 嵌入式开发是指将操作系统、应用程序或数据存储在嵌入式设备中,如手机、平板电脑、智能家居等。 随着物联网时代的到来,嵌入式开发越来越成为一种重要的技术手段。
2023-10-12 15:40:39
2021年高处作业安装拆除维护证考试题库解析资料分享
题库来源:特种作业模考题库小程序2021年安装拆除维护证考试题库及安装拆除维护试题解析是结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大纲随机出的安装拆除维护在线
YYXIAO
2021-07-12 08:12:38
2021年焊工(初级)考试题及焊工(初级)考试题库相关资料分享
题库来源:安全生产模拟考试一点通公众号小程序焊工(初级)考试题是安全生产模拟考试一点通总题库中随机出的一套焊工(初级)考试题库,在公众号安全生产模拟考试一点通上点击焊工(初级)作业手机同步练习
万物死
2021-07-09 06:37:35
嵌入式开发前景怎么样?
嵌入式开发前景非常广阔,这主要得益于物联网、人工智能、大数据等技术的快速发展,以及嵌入式系统在各个领域的广泛应用。以下是对嵌入式开发前景的详细分析
2024-07-10 09:00:29
如何看待Java开发和嵌入式开发
首先,Java开发和嵌入式开发都是目前IT行业内比较常见的开发岗位,也都有大量的从业人员,所以从就业的角度来看,学习Java开发和嵌入式开发都是不错的选择。
2019-06-15 10:33:46