字节 嵌入式软件开发一面 被连环追问拷打了一个小时

一面约在下午三点,面试官上来自我介绍了一下,说是做底层驱动和系统方向的,然后直接开始问。

整体节奏很快,基本上每个问题答完他都会继续追问,没有给你喘息的机会。八股问得不算多,但每道都往深里挖,答浅了他会直接说"你再想想"或者"还有呢"。项目聊了大概十五分钟,他对细节很感兴趣,问了不少实现层面的东西。最后手撕一道算法,难度中等,给了二十分钟。

面完整个人是麻的。

题目

  1. 中断处理函数里能不能用 printf,为什么?如果一定要在中断里输出调试信息怎么办?
  2. volatile 和 const volatile 分别在什么场景下使用?volatile 能保证线程安全吗?
  3. 讲一下 DMA 的工作原理,传输过程中 CPU 在做什么?DMA 和 Cache 之间会有什么一致性问题,怎么解决?
  4. I2C 通信中从设备没有响应 ACK,可能是哪些原因?你会怎么排查?
  5. 程序上电后到执行 main 之前经历了哪些步骤?.data 段和 .bss 段分别是怎么处理的?
  6. 嵌入式设备在现场偶发性死机,没有调试器连接,你会怎么定位问题?
  7. 讲一下优先级反转,FreeRTOS 里是怎么解决的?互斥锁和二值信号量在这个问题上有什么本质区别?
  8. 裸机开发和带 RTOS 开发最本质的区别是什么?什么情况下裸机反而比 RTOS 更合适?
  9. 你了解哪些低功耗优化手段?从硬件和软件两个角度分别说说。
  10. memcpy 和 memmove 的区别是什么?什么情况下用错了会出问题?
  11. 讲一下你理解的堆和栈的区别,嵌入式里栈溢出会有什么现象,怎么检测?
  12. 定时器除了计时还能做什么?PWM 输出的原理是什么,占空比怎么控制?
  13. SPI 全双工通信时,主设备发送数据的同时从设备也在发数据,这个过程是怎么工作的?如果只想读数据不想发,应该发什么?
  14. 你在项目里有没有遇到过多任务访问同一个外设的情况,怎么处理的?如果在中断里也要访问这个外设,互斥锁还能用吗?
  15. 手撕:给你一个已排序的整数数组和一个目标值 target,数组中的元素可以重复使用,找出所有加起来等于 target 的组合,结果不能有重复组合。

核心嵌入式面试八股文总结:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk

总结

面试官技术很扎实,问的问题都很实际,不是纯背书能过的那种。项目部分他会顺着你说的细节继续挖,比如你说用了 DMA,他就会问 Cache 一致性的问题;你说用了 FreeRTOS,他就会问优先级反转。所以项目里用过什么最好真的搞清楚原理,不然很容易被追问到哑口无言。

手撕题难度不算高,但要注意剪枝和去重的处理,写完他会让你分析时间复杂度。

整体体验还不错,面试官没有刁难的意思,就是问题密度比较高,节奏快,需要反应快一点。等结果中。

全部评论

相关推荐

今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,也有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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