影石嵌入式暑期实习面经
影石Insta360作为全球领先的全景相机品牌,其嵌入式软件开发岗位主要负责相机固件开发、图像处理算法优化、硬件驱动开发等核心工作。暑期实习岗位对候选人的要求较高,需要扎实的C/C++基础、熟悉常见通信协议(I2C、SPI、UART等)、了解Linux系统和RTOS实时操作系统。
影石的面试风格偏重基础知识考察,会深挖每个知识点的原理和实际应用场景。整个面试流程一般包括一面技术面、二面项目面和HR面,一面主要考察基础知识的广度和深度。
最近刚参加完影石的嵌入式软件暑期实习一面,整理了15道核心题目,涵盖C/C++、通信协议、Linux和RTOS等方向,分享给大家作为参考。
面试题目:
1、volatile关键字的作用和使用场景是什么?
2、如何检测单链表中是否存在环?
3、const指针、指针常量和常量指针有什么区别?
4、什么是字节对齐?为什么需要字节对齐?
5、UART串口通信的工作原理是什么?
6、SPI通信中片选信号的作用是什么?
7、如何通过示波器分析I2C通信时序?
8、CAN总线的仲裁机制是如何实现的?
9、如果UART通信出现乱码,应该从哪些方面排查?
10、说说Linux内核态和用户态的区别?
11、Linux进程间通信有哪些方式?各有什么特点?
12、有没有实际使用过Makefile编译项目?
13、什么是中断优先级?如何配置中断优先级?
14、中断服务函数中可以调用哪些函数?有什么限制?
15、FreeRTOS任务调度算法是什么?如何实现任务切换?
更多嵌入式大厂面试经验和题目以及基础八股文资料都放在专栏了:
https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk
(oppo,vivo,海康威视,小米等大厂面经)
暑期实习准备攻略:
1、基础知识要扎实:C/C++的指针、内存管理、多线程等核心概念必须掌握透彻,这是面试的重中之重。
2、通信协议要理解原理:不要只停留在会用的层面,要深入理解I2C、SPI、UART、CAN等协议的时序图、电气特性和应用场景。
3、Linux和RTOS要有实践:建议在开发板上实际跑过项目,了解驱动开发、进程通信、任务调度等实际应用。
4、项目经历要准备充分:把简历上的项目吃透,能清晰讲出技术选型、遇到的问题和解决方案。
八股文复习方法:
1、系统化复习:按照C/C++基础、数据结构、操作系统、通信协议、RTOS等模块分类整理知识点,建立知识体系。
2、理解为主,背诵为辅:不要死记硬背,要理解每个知识点的原理和应用场景,面试官很容易通过追问发现你是否真正理解。
3、刷题+总结:LeetCode刷链表、树、排序等经典题目,每道题都要总结时间复杂度和空间复杂度。
4、模拟面试:找同学或朋友进行模拟面试,锻炼表达能力和临场反应。
5、关注实际应用:嵌入式面试很看重实践能力,复习时多思考知识点在实际项目中的应用场景。
查看6道真题和解析