乐鑫嵌入式Zigbee一面
从三月底开始投了十几个公司的实习,笔试也做了五六个了,拿到的第一个面试😂
四月底官网投的简历(嵌入式实习Matter/Zigbee/Thread),五一节发了笔试链接,三天内做完,主要是计算机基础,操作系统,计网,C语言那些,手撕两道模拟题,一道模拟分数化简,一道记不得了
五月十号左右加了乐鑫官方的HR微信(可以在公众号找到),咨询了进度,然后过了两天就发了面试通知,周一到周四选一天。
概况一下面试的方式,面试官人很好,会认真听讲项目,会给出适当的问题,回答不上来的问题会给你解释,我自己感觉有一半时间是我跟他回答,然后一半是他跟我讲知识😂
面试内容
- 自我介绍
- 介绍项目
- 项目问的很细,先介绍流程,然后问关键技术,概念,我项目里用的zigbee,问了组网,协调器和节点通信,簇,数据发送频率,信道数量等等
- 第二个项目是Wifi相关的,用到了ESP32,因为我是加了FreeRTOS,问了有几个任务,任务之间怎么同步,事件组,标志位
- 这部分应该是根据任务之间的复杂程度来判断工作量
- 从刚才的项目延申开始问FreeRTOS
- 因为项目里用到的RTOS的东西不多,所以其实有些问题的情况没有考虑到
- FreeRTOS的任务之间通信的方式
- 消息队列,信号量,互斥量,邮件,事件组这些
- 消息队列的API,发送接收,中断中能不能使用,如何判断当前消息队列已满,用哪个API
- 从这里开始感觉难度上来了,就是层层递进,前面的问题简单,后面问题如果没有用过,就要自己思考😂
- 信号量和互斥量,FreeRTOS中的二值信号量和互斥锁,有什么区别,优先级反转,什么方法解决优先级反转(优先级继承、优先级天花板),互斥量用来解决优先级反转(内部实现了该功能)
- 还是一样,基础的东西知道,再深一点就不会了,优先级反转我看过,面试的时候卡壳了,说了一半忘记了,面试官跟我讲了一下
- C语言基础
- static的作用
- 限制作用域,延长生命周期
- 通过全局变量,局部变量,函数解释
- static的存储
- 静态存储区
- 静态存储区包含哪些
- .bss和.data
- .bss和.data分别是存储哪些东西
- .bss段的作用
- static声明函数,在哪个时间报错:static修改链接属性,在链接阶段报错,找不到具体的
- 顺便问了下编译的过程:预处理,编译,汇编,链接
- 预处理的内容
- inline和define的区别
- 预处理阶段,替换宏定义,展开头文件,去除注释的先后顺序(没考虑过,但是思考了一下,在头文件之前要是有注释,如果不前去除,那就会复制很多次,而函数可能用到头文件包含的define,所以应该是:1.去除注释,2.展开头文件,3.替换宏定义)
- 手撕
- 一个子网划分的函数,顺便问了ipv4的长度,32位😂
- 博主的算法很菜,甚至不能在面试环境下好好思考,面试官一步一步教我写的,尴尬😂
- 结束
总结一下,我感觉也不是面试官问的问题,基础题能答上来七八十吧,开始不难,然后慢慢往深里挖,要考察你在学的过程中有没有自己思考过,有几个问题我确实是没有😂,FreeRTOS中用到了要对API也比较熟悉,怎么使用,使用场景,真的要实践一下才知道,下去再好好研究一下
快结束时,问了面试官,说乐鑫看重的是思维能力,其实项目用到了多少东西不是很重要,但是既然用到了,问你一些问题你要能答上来,说明你使用的时候思考了。面试官还说嵌入式算法不是很重要,也一般不会手撕哪些复杂的算法,我咋不信呢😂
接下来不打算投了,还是得加强一下自己的基础,秋招咱再战,共勉,各位😎😎
更新一下~
已收到感谢信,下阶段加油😾
#第一次面试##浅聊一下我实习的辛苦费#