大华嵌入式一面复盘
面试主要围绕我的自我介绍展开,核心覆盖C/C++、嵌入式底层、RTOS、通信协议及项目实操等模块。
一面为线上视频形式,时长约40分钟,面试官给我的感觉是不错的。
一、面试流程回顾
首先是3分钟自我介绍,我重点梳理了自己的学历背景、核心技能栈(STM32、FreeRTOS、C/C++底层开发),并聚焦1个嵌入式项目展开,突出了自己在项目中的技术选型、难点解决及优化贡献,这也成为了后续面试官追问的核心方向。
随后是30分钟左右的核心提问环节,面试官每题会结合我的回答深入追问1-2个细节,不局限于理论记忆,更侧重知识的实际应用。最后预留5分钟反问环节,我询问了岗位核心业务(聚焦大华安防设备方向)、团队技术栈及新人培养体系,既展现了求职诚意,也进一步了解了岗位适配度。
二、面试的问题
- const与volatile关键字的作用的是什么?我在嵌入式开发项目中有没有实际用到过,具体场景是什么?
- 指针和引用的核心区别,从内存占用、初始化要求及实际使用场景三个方面,结合我做过的项目说明。
- 我熟悉的STM32中断优先级分组机制是怎样的?抢占优先级和响应优先级有什么差异,实际项目中如何配置?
- 平时常用FreeRTOS,它的任务调度算法是什么?任务切换的触发条件有哪些?
- SPI与I2C通信协议在总线结构、传输速率、抗干扰性上有何差异?我在项目中是如何选择这两种协议的?
- 嵌入式系统中内存泄漏的常见场景有哪些?我在裸机或RTOS开发中,有没有遇到过内存泄漏问题,如何排查?
- GPIO推挽输出与开漏输出的区别是什么?结合我做过的外设驱动开发,说明各自的适用场景。
- FreeRTOS中队列与互斥量的核心区别是什么?我在多任务开发中,如何避免任务死锁问题?
- UART通信中,波特率、校验位的作用是什么?项目中遇到UART接收丢包问题时,我是如何解决的?
- static关键字在函数内、函数外的作用差异,嵌入式开发中用它来解决过什么问题?
- Flash与RAM的核心区别,在我做的项目中,代码和数据分别存储在哪个区域,为什么?
- FreeRTOS的定时器有哪两种类型?各自的特点是什么,我在项目中用过哪种?
- ADC采样的基本原理是什么?我在项目中如何提高ADC采样的精度和稳定性?
- malloc和new的区别是什么?我在嵌入式裸机开发中,是否使用过new,原因是什么?
- 结合我简历中的核心项目,说明开发过程中遇到的最大技术难点是什么,如何分析并解决的?
像这些题目的答案,在这个专栏里面我都找到了,强烈推荐大家订阅学习:
嵌入式八股文专栏:https://www.nowcoder.com/creation/manager/columnDetail/mPZ4kk
三、面试复盘感悟
这次面试其实大部分还是基础考察,并不会说太难,毕竟我也就是一个应届生的水平而已。总体感觉自己回答的不错。
