嵌入式校招常考面试题总结

最近整理嵌入式校招的过程中常考的面试题。不同公司面试的侧重点会有所不同,但整体来看,考察范围基本集中在几个核心方向:C语言基础、单片机原理、RTOS以及Linux嵌入式。很多问题表面看起来比较基础,但面试官往往会不断深入追问细节和底层原理。

为了方便复习和查漏补缺,我把一些比较典型的面试题整理了出来。

一、C语言基础

  1. 如何理解 constvolatile 关键字?它们分别在什么场景下使用?
  2. static 关键字在函数内部、函数外部以及修饰变量时分别有什么作用?
  3. 指针和数组在本质上有什么区别?在函数参数传递时有什么不同?
  4. sizeofstrlen 的区别是什么?它们分别在什么时候计算?
  5. 结构体为什么会产生内存对齐?如何计算结构体的实际大小?
  6. 什么是野指针?常见的野指针产生场景有哪些?
  7. 堆和栈的区别是什么?各自适合什么样的内存分配场景?
  8. 宏定义和 inline 函数有什么区别?各自的优缺点是什么?
  9. C语言函数调用时,参数是如何压栈的?函数返回时栈又是如何恢复的?
  10. volatile 为什么在嵌入式开发中经常用于中断变量或硬件寄存器?

二、单片机基础

  1. 如何理解单片机中的中断机制?中断响应的基本流程是什么?
  2. 中断服务函数中为什么不建议执行复杂逻辑?
  3. 什么是GPIO?输入模式和输出模式有什么区别?
  4. 定时器在单片机中通常有哪些用途?
  5. UART、SPI、I2C 这三种通信接口分别有什么特点和使用场景?
  6. 什么是DMA?DMA相比CPU直接搬运数据有什么优势?
  7. 单片机启动后程序是从哪里开始执行的?启动流程是怎样的?
  8. 什么是看门狗?为什么在嵌入式系统中经常使用看门狗?
  9. 单片机程序如果出现跑飞,一般有哪些可能原因?
  10. 什么是寄存器映射?单片机是如何通过寄存器控制外设的?

三、RTOS

  1. RTOS 与裸机系统相比最大的区别是什么?
  2. RTOS 中任务调度的基本原理是什么?
  3. 什么是任务优先级?优先级对任务调度有什么影响?
  4. 什么是任务切换(Context Switch)?任务切换时系统会保存哪些信息?
  5. RTOS 中任务通常有哪些状态?它们之间如何转换?
  6. 什么是信号量?信号量在什么场景下使用?
  7. 互斥锁和信号量有什么区别?
  8. 什么是优先级反转?一般有哪些解决方案?
  9. RTOS 中为什么需要 Tick 中断?Tick 中断通常用来做什么?
  10. 如果系统中存在多个周期任务(例如1ms、10ms、100ms),我应该如何设计任务调度结构?

四、Linux嵌入式

  1. 如何理解 Linux 的用户态和内核态?两者有什么区别?
  2. 进程和线程有什么区别?在 Linux 中如何创建进程和线程?
  3. Linux 中进程间通信有哪些方式?各自适用于什么场景?
  4. 什么是虚拟内存?Linux 为什么需要虚拟内存机制?
  5. 什么是文件描述符?为什么 Linux 中很多资源都通过文件描述符访问?
  6. fork() 调用之后会发生什么?父子进程有什么区别?
  7. 什么是系统调用?应用程序是如何进入内核执行系统调用的?
  8. 什么是设备驱动?Linux 驱动程序在系统中的作用是什么?
  9. 什么是设备树?为什么嵌入式 Linux 中需要设备树?
  10. 交叉编译是什么?为什么嵌入式开发通常需要交叉编译?

全网最全面的嵌入式八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

结尾

嵌入式校招面试虽然涉及的知识范围比较广,但核心内容其实相对固定,主要集中在 C语言基础、硬件理解、RTOS原理以及Linux系统基础。很多面试题都会从简单问题开始,然后逐步深入到实现细节,因此在准备过程中不仅要记住概念,更重要的是理解其背后的原理。

通过系统整理和复习这些高频问题,可以帮助我们更清晰地梳理知识体系,在面试时也更容易从容应对面试官的深入追问。

全部评论
mark收藏了
点赞 回复 分享
发布于 今天 14:35 四川

相关推荐

当年从央企离职,随手写了人生不得志,可被嘲笑惨了呢。23年的离职时发了个帖子,其中内容“打底写了六百万行代码”,“有自己的硬件公司,底下都是国赛选手”引起了舆论呢。都觉得天方夜谭,可只有经过单片机竞赛每天二套题,每套从0 code到7000行的同道中人才知道。经过竞赛集训的码农么才知道这一点不夸张。但是哪怕今年26年,这一点我还是要为竞赛生正名。我们大家都是高傲的群体,我们大家都觉得自己很强。我也一样,但是庆幸如今我拿到结果了,我曾经的技术栈已为如今的我服务成内业头部。曾经大专创业的时候外包硬件开发没日没夜给人家写毕设写课设,从20年刚专转本入大学,短视频做创业型博主、做MCN资源整合、做快手小游戏,扩展到了很多不一样的渠道,所以先动起来,慢慢就有路可走,短视频初期我15天就赚到了四位数。但是由于家庭原因,觉得业务都存在生存周期短不稳定的特性,不喜欢赚快钱,自己还是大四的时候选择硬件转软件,最终进了央企核心部门做开发,在父母眼里是荣光,工作一年我就发现这永远得不到我想要的。 选择大于努力这句话在进一步升华!!辞职后在校外聘了差不多两年,2次入编失败,技能竞赛大改革,这点咎由自取,拿了2年的3000+,时间也算自由,但是废人,代码都碰得少了。副业一直在发展,今年转成主业了。曾经的我国十保送而不选,硬件软件开发小能手转后端开发从头再战,央企裸辞回校想再创辉煌。经过币圈爆仓,考编失败等各种因素,现在也算是人生又反弹了一波,曾经看不起的业务,现在撑起了我的所有。好在积累,现在的业务所需要的软硬件,全都依旧能自己手搓,有了AI更庆幸自己从技术转向了业务。那现在你们嘲笑的“打底写了六百万行代码”的吹牛逼哥,时隔这么多年不碰单片机了依靠肌肉记忆到现在依旧能手搓。自己开发了全屋安防(软硬全套自研),开发了X光机,这还只是为业务而服务的小分支,主营业务就不方便透露了,已是行业头部。不知曾经的那几位如何了呢,三年了你们过得好么。在此也鼓励同道中人,少年不得志,咱们就做好积累,少分享,没成功之前一切都是废话。强者从不觉得孤独,前路是你领路,花香蝶自来。永远记得你的对手只有自己。不断迭代!记住前进的路上被嘲笑被谩骂是必然的,现在回头看看年轻的时候争辩是多么幼稚。人只能活在自己的固有认知,咱们也该自省,接受世界的多样性,一切皆合理,世间无对错。此贴深夜无事,突然想起曾经嘲笑和鼓励我的兄弟们,随便写一点,过几年再回来看看曾经的自己。兄弟们几年后再见,看看几年后我会成长到哪一步。现在我能时刻陪着我妈,我老婆,时间自由,收入还算过得去。我很知足,但我永远不会停下。------2026.2.21 02:30
如果再来一次,你还会选择...
点赞 评论 收藏
分享
03-12 15:35
嘉应学院 Python
M_地球online...:真“boss直聘”
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务