影石Insta360 嵌入式系统工程师 面经

1.简历自我介绍
2.技术面(面试官全程1h问的都是实操经验,没有八股文,问题比较开放-因人而异)
●离职原因?为何没有骑驴找马?
(行业低迷下寻求个人进一步发展+家人生病的时机)
●iic协议时序是怎么样的?是如何启动的,如何结束,如何确定ACK和NACK?
(scl高时,sda由高变低; scl高时 sda由低变高;第九个时钟-拉低sda即为ACK,拉高则为NACK)
●是如何仲裁的?(比如多个从机的仲裁)--这个我说不出来--慌的一批!!
(现在想是不是线与逻辑?)
●在linux操作系统和MCU上,如何查找内存故障相关的问题?
(MCU讲了如何JLINK调试工具+寄存器打印和保存+栈回溯,LINUX上讲了如何gdb+coredump,后面也提及了strace工具)
(他问了gdb如何去执行和调试coredump和使用过程?我记不起来了...顿时感觉药丸了)
●用过哪些操作系统(UCOS,LINUX,NUTTX,RTT),在实时操作系统上用过或者做过哪些工具?
(我说到了单片机上用示波器去拉低拉高io查看耗时情况,然后自己对应的位置设立flag查看调用情况,第三方工具没用过---感觉不是对方想听到的答案)
●阅读过内核哪一部分的代码?
(我说我-以前看内核视频的适合,每个部分都看过源码,现在有点久远了)
●如何解决程序瓶颈问题?
(我讲到了top,free指令,还有perf工具)
●如何解决内存溢出类似的内存问题
(我提到了人工检查--释放和申请成对,mcu利用调试工具和栈回溯,然后Linux上的valgrind工具);
●描述下最有印象的一次项目经历?
(讲了一下给别人解决bug的一次项目经历)
●自己感觉比较擅长或希望哪一个方向?
(我说-按照公司方向走,反说公司开发得看看自己怎么选择?我mcu或者linux方向的应用开发皆可-如果两者还有选择的话,我选linux方向-希望在这方面更加深入成长--后来感觉给自己埋了一个雷)
说一下内核那几个子系统--内存管理,进程管理,网络管理,文件系统,进程间通信,驱动等对哪个比较熟悉?
(我选了网络--因为开发的时候有用到了
●有无linux开机优化的经验-讲一讲?
(我说有过将47s开机启动完善到20内的经历:说了几个比如ssh的优化,rcS内复位的优化,将很多内核操作后置的行为-●比如加载文件系统、ko模块,启动UI的优化等等)
●如何优化开机启动-比如给任务优化到5s--给思路!
(属实没有研究过内核启动的必要条件,说不太出来---面试官安慰说-没关系。)
●网络传输如果发生丢帧或者延时和卡顿,怎么办--给解决思路?
(我提及了这个接入交换机或者路由器-通过抓包工具来查,提及了两个工具wireshark和tcpdump,来分析到底是网络风暴/拥塞,发送方发出数据帧慢了还是错了,还是接收方收的慢还是收错了还是他应答的慢了,来定位)
●网络的可调参数有哪些?
(这真的到了盲区了,我一开始说的是TCP的socket,bind,listen函数里面的参数,他说不是这个,我有点懵,后来反应了--应该是TCP流程的那一套参数:比如
建立连接的参数-SYN Retry(SYN 重传次数)、SYN Timeout(SYN 超时时间)
数据传输参数:TCP Window Size(TCP 窗口大小)、Max Segment Size(MSS,最大段大小)、TCP Congestion Control Algorithm(TCP 拥塞控制算法)
 连接关闭参数:FIN Wait Time(FIN 等待时间)、Time - Wait State Duration(TIME - WAIT 状态持续时间)、Keepalive Time(保活时间)
 只有这个收发缓存是我用过的:Receive Buffer Size(接收缓冲区大小) 和 Send Buffer Size(发送缓冲区大小)
 我后来AI查的,但是没想到。。。药丸的感觉越来越重)
●最后问了下:MTU的含义?
即最大传输单元(Maximum Transmission Unit)
●●反问阶段:我想问下这个岗位的定位是怎么样的?
说是给其他团队兜底的存在!其他团队解决不了的他们来解决!所以不需要懂得太广,要懂得深刻!

沉默了--没其他问题了!

上述应该是80%+的问题,可能有个别遗漏,全程一个小时,语速和节奏中等偏快!

●--面完总体感觉:我回答的不够深入,感觉不够完美,难过!--
全部评论
太强了佬
2 回复 分享
发布于 06-15 02:49 广东
哈哈,你挑什么不好从子系统里挑了个最难的网络子系统
点赞 回复 分享
发布于 07-28 13:02 广东
今天刚面完 一半项目 一半八股+情景延伸
点赞 回复 分享
发布于 07-26 00:15 重庆
好高的强度啊,这是校招吗,还是实习
点赞 回复 分享
发布于 07-23 18:13 广东
都看不懂
点赞 回复 分享
发布于 07-20 22:43 北京
这强度,厉害
点赞 回复 分享
发布于 07-02 16:56 广东
卧槽太牛了
点赞 回复 分享
发布于 06-24 16:48 日本
wok,好多都看不懂,这不是校招吧
点赞 回复 分享
发布于 06-24 14:04 广东

相关推荐

一、前言 以下为个人建议,仅供参考。当你还没有收到面试通知的时候,你就应该先做好准备,多模拟几次面试,找人一对一演练也好;对着镜子自己练习也好,一定要去做这个动作,而不是靠想。因为想要临场超常发挥,那还是想想算了。那应该提前准备一些什么呢?其实就是预测面试官的问题。一般来讲,嵌入式软件面试的流程为自我介绍、根据简历中个人技能及项目进行提问、八股文、反问等,接下来分别说一下各个环节该如何应对。二、自我介绍这一环节是大多数面试的开场白(也不是所有面试官都会让你做自我介绍,但概率极低!)。面试官需要在你进行自我介绍的过程中,再次扫一下你的简历(虽然面试官在对你进行面试之前,已经对你简历进行过分析了)。因此,在这种情况下,你的自我介绍不要再按照简历上的说,更需要突出一些简历上没有的信息或者是与你投的岗位匹配相关度高的信息。个人建议是:先介绍自己的名字➕学校专业;其次、说你与该公司行业、该岗位的匹配度(因此去面试之前需要查看公司简介、了解公司是做什么的)。在该过程中,可以引出自己做的哪些项目与岗位jd是匹配的;最后、说一下求职意向,一定要表现出你就是想来这个岗位。举例:尊敬的面试官,您好!我叫xxx,来自xx大学xx专业,今天来应聘的岗位是嵌入式软件开发。我觉得个人与该岗位的匹配度表现在以下方面………首先是xxx,其次是xxx(一定要往岗位jd上靠拢)。最后,贵公司招聘的该岗位要求里边一些技能点和我的经历是比较匹配的,另外我对xxx方向很感兴趣,该岗位与我的职业方向也是比较吻合的,因此我投递了该岗位。希望贵公司能给我这个工作机会。以上就是我的自我介绍,谢谢。三、专业技能及项目问答这一环节主要是针对你简历上的项目以及专业技能进行提问,以验证你是不是水货!因此,你需要对自己简历上的专业技能、项目经历部分上的每一个字负责!一般来讲,会让你介绍一下你的项目,或者是问你项目中的某个功能怎么实现的,驱动代码怎么写(要能口述出来,所以不建议用cube生成代码,否则连驱动都不知道怎么写)等等。在这个过程中,可能会问到你不会的问题。这个时候不要紧张,更不要不懂装懂,老老实实说你不会,然后说想试着回答一下(尽量答一些相关的点),这样也是很加分的。不要一上来就语无伦次,或者是胡编乱造。遇上不会的很正常,毕竟你不是神,关键是别扣分!三、八股文这一环节快接近尾声了,面试官想要考察一下你的基础知识。一般来讲,包括c语言知识、stm32、内核架构、rtos等。这种八股文一般来讲都是有固定答案的。所以,你在去面试的前一天,你需要好好的回顾、准确来说是背诵这些知识!一定要去背!多背,记在脑子里。并且,个人建议自己整理一个八股文合集(你也不想每次面试之前还要东翻翻,西翻翻吧),这样既能方便记忆,又能节约之后面试的准备时间,非常方便。当然,如果你懒得整理,笔者已经整理好了一份嵌入式软件开发八股文合集,有需要的同学可以私信领取即可。四、其他及反问环节这里的其他指的是一些非技术上的,但又能影响你面试结果的问题。比如说,请你说一下对我们公司的了解?你生活中的优点和缺点?你的职业规划是什么?你能给公司带来什么价值?比较感兴趣的工作内容是什么?如何开展工作等等。上面我例举的都是常见的问题,请好好准备。此外,如果面大厂的话,一般来讲手撕是跑不了的,两道题。因此,需要你自己多花时间刷力扣、牛客等,基础和中等的coding题就足够。最后,来到最后一个环节:反问。这个环节不管你有没有问题,麻烦你一定要问好吗?你不问,那offer也不会问你。通常来讲,反问环节可问以下问题(举例,仅供参考):问进来以后会做什么业务产品?会在哪个部门?部门架构?承担的工作内容是什么?等等…最后的最后,本次分享内容就到这里,感谢观看!如果你能看到这里,相信你面试会通过的,祝大家秋招/春招上岸!如果有需要《嵌入式软件开发八股文合集》、个人开源的mcu➕rtos项目等资料,请私信笔者领取即可
点赞 评论 收藏
分享
评论
33
103
分享

创作者周榜

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