【嵌入式未来】嵌入式软件开发最强攻略一篇就够了!《嵌入式软件开发笔试与面试手册》:https://blog.nowcoder.net/zhuanlan/jvN8gj《嵌入式软件笔试-2023年真题汇总》专栏:https://blog.nowcoder.net/zhuanlan/0oDWVm以下是诺瓦科技/诺瓦星云嵌入式面经汇总👇👇👇一一面挂,问的MCU底层比较多,比如C语言向一个内存地址写值,申请释放内存,tcp通信,会不会写makefile(只看得懂,不怎么会写),socket的I/O复用(select,poll,epoll)   当时觉得大部分问题其实回答上来了,但还是准备不够充分。二让你给一个Char*指针赋值“hello world”  我:用数组 数组首地址就是指向字符串的首地址的。   #define 定义add(a,b) 我详细的解释了括号的使用,以及容易犯的错 (你会的 就多说点,时间不就过去了嘛 哈哈哈)   Stycpy()   Sizeof  strlen的区别         ,strlen包含’\0’吗?   笔试题中的链表,航班信息 顾客注册,说我没有做,是不是因为时间问题?现在有思路吗?(他是拿着笔试的哪个再问,前期,还好问的我不是特别难)   内存的分配 分配的所在的地方(堆 栈 静态/常量自由存储区 全局)   上面的也我也回答了malloc 和new这两个分配的地方   malloc分配的知识:分配的长度、分配的类型   最关键的是:sizeof分配的空间,需要初始化嘛?我犹豫了,一半都是分配了直接用,好像没有初始化啊,我后面补加了,最好用memset库函数给他初始化一下,这样子更安全   Tcp和udp的区别,   Udp如果发送8000个包,在下层转发的时候,会分多少个包?(我用过wiresharke 不是很熟悉 他建议我多用用 哈哈 )   Makefile的编写:问我写过没有,怎么个流程,如何引入库,如何引入模块?我有点没有搭上来,在这个点上,还是问了点东西,做嵌入式,makefile是一定要懂的   嵌入式linux的调试方式?我说了两种 printf打印参数 和gdb调试(用的不是特别熟悉)   Linux中有没有遇到崩溃?他说他遇到过很多 哈哈哈 ,我在linux下面确实没有怎么遇到过,在window中vs很多奔溃   Qt的信号与槽 解释一下,我用一个按钮给他解释的 还好没有问其他深入的,哈哈 我是表皮懂   我说到自己搞过驱动编译的,他问这个流程,后面流程问完了,问你了解过驱动是怎么插入的那种底层问题?我说不是很熟悉,问我这个过程中是对代码进行改动还是参数的配置,我选择的是参数配置   我项目设计视频编解码(也是我回答的项目的难点),我使用的是arm e9 开发板,问我板子的gup这些又了解嘛?使用的是硬件编解码还是软件编解码?都不是很了解三自我介绍(2-3分钟),这个个人感觉比较重要,关于自我介绍有几点我们可以动手去做。1.1 准备两个版本的自我介绍,一个比较详细,一个比较粗略,详细的再5-6分钟,简短的在2-3分钟,如果面试官明确说了时间要求,请按照面试官的要求做自我介绍,不要因为想展示自己说的太多,会引起面试官的反感,第一印象不好,想展示面试过程中找机会。我被面试官说了,说自我介绍太长了,哭唧唧 项目2.1 项目的应用场景和形态。这个因为我们是通用型采集仪,项目场景会很多,我又说了一大堆,不是面试官想听的直接被打断了,下来意识到一个问题,说的太少不行,太多了不行,重点又两个,一个是Get到面试官的点,一个是自己能表达清楚。2.2 外包装结构怎么设计的?2.3 PCB设计, 用什么软件、几层板? 安装现场设备时自己上吗?现场安装设备是导师带着去还是自己去?2.4 遇到的比较大的挑战。2.4.1  怎么定位到的问题、怎么解决的问题。 (这都是套路,可以直接上模板了)2.5 自己总结出来的通用型的学习方法,这两种方法在实践过程中感觉怎么样?(回答思路:不能光说好,要继续深挖!)2.6 什么时候开始接触这个嵌入式的。2.7 最有成就感的地方!要注意是最有成就感,而不是什么让你有成就感,一定要有实例支撑,这样方便面试官往下挖。 目前有没有其他的offer。 自己的职业规划。 岗位的方向怎么选择。 反问四一面聊项目,找一个项目具体说嵌入式 IIC 和SPI具体使用,以及相关的配置。IIC的上拉电阻?(两个作用,高电平,开漏输出)进程间通信Linux系统如何使用,交叉编译器使用过吗?linux驱动没有写过是吧C/C++的基本问题(一些常见的八股文,整体上从C/C++对照着说)malloc和newC/C++static关键字C/C++内存布局,malloc和new的关系两个栈实现队列数组和链表的关系(从内存、性能、操作复杂度上来说)反问具体的问题部门多少人深圳?具体的业务?能力提升的地方?IIC上拉电阻的另一个作用五面试问到的问题有:内存对齐、常量指针和指针常量、什么是大端存储和小端存储、堆和栈的区别、什么是内存泄漏、野指针、网段和路由的概念、初始化一个链表、链表和数组的区别、TCP和UDP的区别、TCP传输怎么保证可靠性、解释一下什么是二叉树的高度、Linux gcc编译命令。六单片机型号用到哪些外设spi(多少根线,时序等)iic(多少根线,时序等)dma(什么是dma,配置有哪些)adc配置有哪些有没有用过示波器,逻辑分析仪遇到过什么困难ps:一直问我单片机项目,最后告诉我深圳没有Linux方向的岗位。TOP/UDP的区别TCP如何保证可靠性说一下server端网络编程的步骤用到了哪些其他函数或者接口static,const,volatile关键字static关键字在c语言中和c++中有何不同问了一个结构体问占用内存大小,如何改变内存大小(更改成员变量位置,或者取消结构体对齐)栈和队列的区别链表学过嘛?反转链表有几种方法指针用过吧?什么是野指针?为什么会产生野指针?编译完的程序在内存中的分布如果申请堆如果大量频繁的申请堆空间会发生什么?最后问我有没有回到单片机方向的意愿,我说暂时应该没有,我就是单片机转过来的。让我别急说不定跟二面的面试官交流后说不定就会有其他想法了。诺瓦科技二面:20分钟介绍一下你映像最深刻的项目随便象征性的问了点问题职业规划学习方法对工作地点有什么要求手里有几个offer他们开的什么薪资待遇对xxx(手里待遇最高offer的公司)了解吗你有什么问题问我?七1.IO复用 slecet用法2.线程间通信方式,进程间通行,方式,消息队列,共享内存的函数。3.数据结构,反转链表4.linux内核,TCP/IP中源socket怎么回事,三种socket报文模式5.spi i2c同步异步问题6.用户态,和内核态的问题7.mv命令,top命令,8.字符驱动框架,锁互斥问题9.问单片机外设的问题,没有交代清楚,还有就是说项目的时候,没有把管理分配任务方面讲进去。10.C需要的一些基础性问题,自己给忘了11.字节对齐八一面是技术面,面试官围绕着项目问问题,可能会就某一个他感兴趣的点深挖,问我用的是什么文件系统,什么Linux内核版本,以及如何写驱动程序,问我应用程序是如何与内核通信,还问了我为什么不去大城市,我感觉西安挺好离家近,一面总体来说感觉还可以,因为项目是自己做的,所以基本没有多少被问住的,面试结束两小时后就收到了二面的通知。   二面是综合面,只问了很少的关于项目的问题,其他就是闲聊,问我有没有女朋友,问我想成为一个什么样的人,问我有什么优点和缺点,问我给自己的项目打几分少的那几分是什么,问我面试前都做了哪些准备,问我对他们公司有什么了解,幸好我早有准备,把他们公司介绍基本背下来了,然而结果还是挂了,可能是因为英语成绩不达标吧,或许是表达能力欠佳。九自我介绍~   说一下项目   (讲了本科参加的一些竞赛和研究生的课题)   针对ADC,数据的处理?有没有做什么滤波?针对什么干扰?均值滤波、滑动滤波的适用场合?正弦信号的毛刺怎么滤除?   是否是竞赛的队长?这个项目硬件上的各个部分?   简历上说到一些串口通信,你用过哪些?   处理器UART数据线的和232接口的连接?   SCI串口通信时序?哪些关键参数?串口通讯时的数据收发怎么实现?怎么实现下位机上位机的指令交互?   SPI通信的数据线有几根?你用的什么设备?如果要去除一根数据线,可以删去哪一根?   除了SCI/SPI还用过或者了解哪些通信接口?   网络通信有没有了解?TCP、以太网?   笔试题上矩阵键盘怎么加了上拉电阻?怎么实现键盘扫描?   有没有做过按键的消抖?   笔试题里面DMA相关的,在项目里面的应用,内存地址要不要增加,如果不增加怎么实现?   操作系统有没有用过?   关于多进程与多线程?   简历里面有说python,用过吗?   做上位机用的Qt和PyQt的区别?   上位机的界面是代码写的还是控件操作?   文件存取的操作?十一面  1.c语言中的关键字static的作用 2.一个变量的作用域  3.在switch里面可以 有浮点数的吗   4.float类型是如何存储的   5.谈谈堆和栈的理解   6.结构体中的内存对齐问题   7.野指针问题   8.内存拷贝函数,字符串拷贝函数   9.数据结构有哪些  链表反转 说说思路   10.linux常用命令   11.什么是进程,用什么命令查看他   12.进程间的通信和线程间的通信,共享内存的函数是什么   13.SPI  IIC  的一些问题   14.项目的一些问题   二面   聊项目和人生   项目中遇到的问题,如何解决的。   当在做一个项目中,你和另一个人发生了意见不一致时,怎么解决的。   你的人生规划是什么。十一1.makfile 基本语法2.GDB调试指令3.杀掉某一个进程 命令4.如果查找某一个指定文件 明令5.管道讲一讲6.多个进程往一个管道写,一个进程读可不可以 为什么7.用户态和内核态区别 分别做什么事,怎么转换的8.http响应报文包含什么9.post和put区别10.进程间通信方式11.为什么用IO多路复用12 epoll和select 和poll区别13.如何测试上万条并发量的14.如果一万个客户端连接上,同时请求图片,其中有客户端随机挂掉,服务器如何回收资源15.多进程编程了解么16.linux底层 内核相关17.交叉编译讲一讲18.交叉编译接口怎么实现的19.互斥锁和信号量底层和区别20*p++,(*p)++,++*p,*++p 区别21 #define SRT(X) (#X)十二因为我做的好几个项目是与单片机相关的.中间或多或少都穿插了单片机,所以面试官:串口中断注意事项\什么是串口的溢出中断用过STM32的什么外设高级外设用过多少,简单说一下.大小端是什么C语言相关数组和指针的区别函数指针有用过吗?谈谈你的理解static作用结构体的字节对齐排序算法.说说冒泡排序(我都用自己的话说,被面试官说不够专业)网络OSL七层模型(忘了....)TCP UDP数据结构链表反转Linux 相关的查看tty设备方法常用Linux指令有没有了解过内核内核中的链表实现(不会)vim常用操作十三嵌入式方向一面技术面,自我介绍之后先问了比赛的项目,由于我第一次面试没啥经验,就草草的说了一遍,接下来问了           1.通信协议用过哪些,IIC通讯协议的时序?;           2.数组和指针的区别;           3.float长度;           4.int与float的混合运算;           5.Linux了解多少;           6.RTOS用过吗,好处和坏处?;
点赞 46
评论 6
全部评论

相关推荐

09-01 10:50
已编辑
东华大学 C++
PDD校招_内推:拼多多意向和开奖一般都比较晚,可能10月11月才出意向
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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