当前位置:   article > 正文

三个多月的秋招战线,嵌入式秋招面经总结_uboot面经

uboot面经


从秋招7月份的提前批,到8月份的为正式秋招做的准备,再转入9,10月份的正式批的无硝烟战场,其中的酸甜苦辣都尝尽了,真真正正体会到没有一件事是容易的。
遂位于武汉的小出租房中,记录一下三个多月的秋招历程。

提前批

提前批直投了两个:一个乐鑫、一个诺瓦科技,皆卒

  • 乐鑫
    乐鑫没有好记录的,7月16做的笔试(笔试挂),三道算法题(内心对算法是抗拒的),也是在此看到了算法的重要性,也是后续复习算法的动力来源。
  • 诺瓦科技(一面过,二面凉凉)
    到现在为止,我依旧认为诺瓦科技是我面试公司中问的最全面的一家公司
    1、笔试
    笔试和其他公司笔试比较相同了,嵌入式选择题(C,C++,linux,嵌入式基础),可以在牛客网上刷一下,原题挺多,一道编程:链表,结构体相关的操作,两道问答题。
    2、一面(52min)
    (1)自我介绍:我是xxx,就读于xxx,…
    (2)通信协议了解过吗(SPI,I2C,UART)?选一个你熟悉的说一下,我选的是I2C协议(必须要真的懂时序)。
    (3)I2C协议你是用到哪里的,代码怎么实现的?
    (4)Linux下I2C驱动编程:I2C核心层、I2C总线层、I2C驱动层
    (5)platform 与 设备树的区别
    (6)linux 下怎么获取到设备树中硬件(板级)的信息
    (7)TCP,UDP的不同之处,socket套接字编程了解吗,TCP服务器端的编程步骤,UDP和TCP socket编程哪里不同
    (8)I/O复用,select、epoll,poll的区别
    (9)linux字符设备驱动程序的设计流程,file_operations 中read write,应用程序怎么读取到字符设备中的数据;
    (10)系统调用的过程?platform 总线驱动的设计?mmap函数?
    (11)UART串口有时钟线吗,他是怎么保证数据发完之后对方知道你发完的,UART怎么保证数据的准确性;
    (12)多个进程访问同一个文件时,文件描述符是一样的吗?
    (13)uboot的启动流程了解吗;stage1 和 stage2 。uboot源码看过吗,其中的数组?(uboot代码必须理解)
    (14)添加过uboot中的命令吗?linux文件系统的格式.
    (15)多线程通信
    (16)共享内存,进程间通信方式, 共享内存如果发生泄漏,怎么查看?ipcs -m?
    (17)创建的设备文件 /dev/下的,读取时文件描述符一样吗?
    (18)算法相关:反转链表,链表的头插和尾插法;
    (19)画过原理图吗,用什么软件画的,AD? 那在AD软件中在如果根据原理图上的器件快速选中PCB图上的器件
    (20)了解Makefile吗,Makefile语法格式?
    (21)struct结构体的大小,字节对齐、数组 sizeof()大小;
    3、二面(22min,凉凉)
    全程聊项目和职业规划,扣项目细节部分

正式批

  • 物联安全开科技(技术面+HR面)
    (1)自我介绍
    (2)问项目,还是那些项目,但是由于技术官对单片机了解不多,因此问的不够深入
    (3)然后问用过linux吗
    (4)TCP协议、UDP协议,TCP三次握手四次分手,TCP与UDP的区别
    (5)利用UDP的优点,加强UDP的可靠性怎么改进
    (6)I/O复用了解吗(poll、select、epoll区别以及用法)
    (7)然后面试官介绍公司做的东西:偏linux应用层编程,驱动层和内核层用的不多
    (8)对应用层感兴趣吗,知道进程间通信吗,方法,共享内存了解吗
    然后HR问的几个问题:
    (9)大学/研究生期间做的比较好的决定是什么?(加入工作室。。。。。。。。)
    (10)我看你写过博客,还挺多的,我也去看了一下,都是你自己写的吗?
    (11)什么时间可以实习?实验室规定,不可以,,,,,,,,

  • 国光电器
    1、一面(群面)
    (1)常规的自我介绍
    (2)大学里面学的比较好的课程?
    (3)你所理解的设备驱动程序的设计流程是什么?
    (4)I2C协议介绍一下;
    还有几个不是技术的问题,家庭情况,为什么想来广州,之类的
    1、二面(技术面)
    (1)给定一个字符数组,求它的 sizeof 的大小,字节对齐之类的;
    (2)linux内核源码看过吗?linux内核启动流程,叙述一下;
    (3)uboot源码看过吗?uboot的加载引导过程;
    (4)linux内核移植做过吗,当时做的是哪一块的移植?
    (5)linux文件系统有哪些?
    (6)linux内核目录结构,linux查看内存的命令。
    (7)自旋锁和互斥量的区别;
    (8)还有一些比较简单的C语言知识,冒泡排序之类的
    (9)在linux内核里怎么分配动态内存(kmalloc,内核中怎么创建线程:kthread_create)

  • 大华
    1、一面
    (1)自我介绍时候提到了linux下字符设备驱动程序的编写,然后面试官第一个问题就是字符设备驱动程序的编程流程,里面重要的 file_operations 结构;
    (2)进程间和线程间的通信方式;
    (3)TCP/UDP协议了解吗?介绍一下两者区别(然后就背起来了),linux下的TCP编程实现过吗?(然后就接着介绍socket编程);
    (4)平时开发用的是C还是C++呢?写的代码量有多少行?(这个我哪里记得,粗略说了一下)
    (5)大学时候学的比较好的课程是什么呢?数学好吗?
    (6)平时有看过什么专业的书籍没有?(有啊,巴拉巴拉巴拉…)
    (7)然后我这么问的差不多了,你那边还有什么问题吗?
    得到面试官认可,面试官也很nice
    1、二面
    (1)自我介绍
    (2)我看你简历里有学过自动控制原理,讲一下自控学的主要内容(我真是全部记得了,都还给老师了,就把还有点影响的PID控制讲了一下),然后面试官追着问:如果给你一个温度控制系统,怎么控制温度在变化不大呢,怎么降低超调量呢?还有动态响应什么的。然后还有其他大学和研究生课程的问题(内心:一度怀疑自己是不是投错简历了)
    (3)跟面试官说,我主要学的是C/C++,linux系统之类的,C语言终于开问了:数组链表的区别,数组链表插入的时间复杂度;
    (4)结构体和字符数组的sizeof;
    (4)uboot移植做过吗?介绍一下你做的吧
    (5)多线程编程会吗?(了解的比较少)
    本来以为凉凉,大概一周之后接到HR面谈薪资

  • 中科曙光
    技术面:
    (1)linux内核空间和用户空间的通信;
    (2)linux进程间通信方式:共享内存自己实现过吗;
    (3)串口协议懂吗,我说我了解,但是用的比较多的还是I2C协议,然后把I2C协议讲了一下,还有linux下I2C编程介绍了一下;
    (4)uboot的相关知识,uboot流程(stage1和stage2),uboot移植做了哪些测试,除了字符设备驱动程序,你还做过什么驱动程序:块设备,网卡设备
    (5)然后问项目:mqtt协议介绍一下,你在项目中负责什么,你都做了什么工作,项目中的难点问题;
    (6)c语言中动态分配内存,怎么避免内存泄漏呢?
    (7)然后针对研究生期间的论文问了一些,介绍一下K-Means算法,你都是怎么进行算法改进的呢?
    (8)你有什么问题问我们吗?
    后来在两天之后,收到HR面的消息,谈薪资待遇;

  • 博观智能
    笔试做完之后,三轮面试,(一轮技术面,两轮HR面吧,三天时间,效率很快),拿到offer,在济南,薪资待遇还可以,因为个人原因拒了
    1、一面
    (1)万年不变的自我介绍
    (2)C语言中内存分配几种方式(局部、全局、静态、动态?)
    (3)栈和队列
    (4)给定一个结构体,求 sizeof (考虑字节对齐);
    (5)大端小端通过程序判断(联合体,指针)
    (6)C++学过吗,智能指针的作用并且介绍一下;
    (7)STL了解过吗,vector容器和list容器的优缺点;
    (8)linux系统了解吗,介绍一下你知道的命令(把我能想到的全都说了),后来面试官问了一个网络命令,不记得了,尴尬
    (9)uboot命令介绍一下
    2、二面和三面都是HR面,基本都是容易回答的HR问题,还有就是谈薪资

  • 天融信
    1、一面(技术面)
    (1)自我介绍
    (2)linux内核启动流程(start_kernel 函数里面的内容)
    (3)在linux系统中查找文件主要有什么命令(find,whereis,whichis,locate,grep等)
    (4)TCP/UDP协议会吗?两者区别,linux下的 tcp 编程实践过吗(简单的介绍了下socket 编程:创建socket,bind,listen等之类的),然后有问客户端连接服务器,三次握手发生在什么函数中。I/O 多路复ni用了解吗?(poll,epoll和select)
    (5)算法:怎么判断链表中有环,并且计算出中间环的个数(剑指offer原题):我按剑指offer上的思路说了一下:快慢指针,面试官说有没有时间复杂度更小的计算方法,思考了一下回答:还是两个指针,只要有指向同样的地址说明是有环的,然后面试官把这个思路也告诉了我一下,就是指向同样的地址空间。
    (6)单向链表会吗,那写一个双向链表和循环链表的数据结构;
    (7)gdb用过吗,用过(真的只是用过,列举了一些gdb调试命令),然后面试官问:怎么调试多线程呢? (对不起,这个我真的不记得了)
    (8)你有什么问题问我?(工作内容。。。。)
    2、二面(技术面)
    二面全程围绕项目:mqtt 协议解释一下吧,你是怎么用 C 实现的,你在项目中有遇到过最大的困难是什么?怎么解决的?
    我看你研究生期间做的是算法,那你解释一下这个K-Means是怎么实现文本聚类的呢?你的论文是基于什么项目呢?还有如果给你一堆协议,你怎么通过机器学习算法去识别出哪个是mqtt协议的数据报文呢?
    给我的感觉就是天融信二面就是深挖项目,看你是不是真的懂你做的东西,所以呢,写在简历上的东西是一定要负责任的!
    3、三面(HR)
    聊工作地点,薪资情况

  • 六方云科技
    1、一面(技术面)
    (1)常规性自我介绍
    (2)我看你项目做的嵌入式单片机的比较多,linux下的编程了解吗?了解
    (3)linux 下TCP编程说一下吧(这个问题真的遇到好多次)
    (4)linux网关配置怎么操作呢(可以用命令,也可以在配置文件中写)
    (5)还问了linux下的其他命令,时间太久记不得了
    (6)继续问第一个项目中 mqtt 协议(我发现只要问项目,第一个问的一定是这个问题:mqtt 协议)
    (6)C语言功底怎么样?答:还行(内心祈祷,别问算法),然后问了一下一道 struct 结构体(成员变量包含位域)的 sizeof 是多少,还好当时有复习到。
    (7)我看你之前用过BP神经网络,现在有这样一个问题:你不是懂 mqtt 协议吗,现在有别的协议的数据包和 mqtt 协议包混在一起,你怎么用BP神经网络进行区分呢?还有在好多好多数据报文中,你怎么找到包含攻击类型的网络报文呢?可以用你懂的别的机器学习算法做。(然后我就按BP神经网络的原理去做分类了,开放性的题目,有合理的理由就行)
    (8)你有什么问题要问我的吗?(工作内容。。。)
    2、二面(HR面)
    (1)为什么要来北京?(真的是北漂情怀驱使的我)
    (2)家庭情况
    (3)大学/研究生期间最有意义的一件事,最后悔的一件事。
    (4)自己的优缺点是什么

9月经历的事情很多,大概自己十一之前面试了这么几家公司,也做的其他公司的笔试,十一之前的一周很忙,基本上每天都有笔试、面试(当时真真正正的体会到原来笔试面试多了也会那么烦躁),当时自己也一直在思考还要不要去武汉,但是后来也算是不让自己后悔吧,算是给自己一个交代吧,毅然决然在10月6号,带着要坐一次南湖大道的538到终点站南湖大道茶山刘的愿望(但是在写这篇秋招记录博客之前,依旧还是没有去坐538,原来实现自己文艺的愿望还真是难啊)坐上了去武汉的飞机,来到了自己心心念念的英雄武汉

正式批的线下(武汉—武汉理工校招)

武汉—
在武汉的正式秋招,应该是8号或者9号正式开始的,全部是在武汉理工的校招

  • 拓邦股份
    1、一面(技术面,群面)
    一共6个人,不同的岗位
    (1)常规性的自我介绍
    (2)linux内核启动流程知道吗(总是相似的问题)
    (3)linux下的字符设备驱动程序编程(申请设备号,注册,实现 file_operation 结构体(read,write,open,ioctl等))
    (4)函数指针和指针函数
    (5)c语言熟练吗?知道string库函数里的部分函数吗,字符串拼接函数,字符串查找函数,字符串拷贝函数之类的
    (6)在C语言中,动态分配内存用的是malloc函数,释放内存用free,一般在使用时候释放完内存还应该做什么?(我回答的是把指针指向为空,为了防止出现野指针)
    (7)其他人有面试JAVA开发的,就记得两个问题:协程和线程池
    2、二面(HR,群面)
    (1)家庭情况
    (2)为什么要来深圳
    (3)自己的优缺点
    (4)大学期间做过比较满意的事情
    (5)导师时怎么评价你的(优点和缺点)
    (6)手里的offer情况
    还有一些常规性的HR问题,都比较容易回答,总体面试体验

  • 深圳奋达科技(就一面技术面)
    当时就随便去听了一下宣讲会,莫名其妙就去面试了,面的是软件开发,我还是想做驱动
    (1)没有自我介绍
    (2)你编程用的C多还是C++多呢,回答C。那用C语言实现一个把一个寄存器的bit3位置1,算是比较容易
    (3)开始问项目,气象检测板,mqtt 协议,I2C协议之类的
    (4)成绩咋样,四六级过了吗?

  • 武汉恒为科技
    这个面试完真的是自我感觉都凉凉了,后来很快就收到感谢信了,我是去的他们公司,现场做笔试然后直接面试
    (1)自我介绍
    (2)针对笔试题,用户空间和内核空间的通信
    (3)数据库会吗(了解过,不深入,确实没学过)
    (4)计算机网络咋样(我只是有点基础),TCP报文是怎么组成的?
    (5)linux系统懂吗(还行),那怎么判断一个linux系统是32位还是64位的呢

   查看linux系统是64位的还是32系统:
   getconf LONG_BIT
   uname -a
   cat /proc/cpuinfo
   c语言编写函数,输出指针大小,为4则是32位,为8则是64
  • 1
  • 2
  • 3
  • 4
  • 5

这是面试完百度的,当时只想到一种方法
(6)给定一个超大的文本文件,有很多行,怎么用C语言实现把这个文件按行倒序输出呢?(当时想的是栈,后来被面试官否定)
(7)给定四张扑克牌,怎么通过四则运算得到值24呢,判断可以不可以,然后输出任意一个结果(当时想的是用回溯,但是还是没有做出来)
(8)你还有什么问题问我的吗?

  • 湖南神锋电子
    (1)自我介绍
    (2)了解大小端吗?讲一下原理,然后怎么判断一个机器是大端还是小端呢?(联合体或者指针)
    (3)然后聊项目,几个项目都讲了一边,主要问的还是mqtt协议和自己写的论文,相关的机器学习算法;
    (4)I2C协议,SPI协议懂吗?介绍
    (5)还有C语言中的一些 字符数组 strlen 和 sizeof 的大小长度,还有 strlen 和 sizeof 分别是在程序运行的哪个期间计算值的?
    (6)然后问了一个算法:给定两个递增排序好的数组,然后把数组合并成一个也是递增的数组(我说的是用递归)
    (7)然后问了一个非编程题:给定一个天平,10瓶药,但是10瓶药中有两瓶一个90g一个110g,其他的都是10g,怎么一次就可以找到这两瓶不同的药呢?(当时想了比较久,没答出来)
    (8)然后面试官开始介绍公司,他那边给的是一个客户技术支持的岗位。

  • 杰发科技
    1、一面(技术面)
    (1)自我介绍
    (2)介绍一下你的项目,气象检测板,mqtt 协议,板子是怎么和阿里云平台进行通信的,你在项目过程中遇到的什么困难,怎么解决的,一面主要问的就是项目的问题,这是我遇到的对项目挖的最细的一个公司吧。
    (3)然后另一个女生面试官问:TCP,UDP协议的区别,三次握手和四次分手的过程;linux下的TCP以及UDP编程;TCP客户端和服务器传数据用到的什么函数(read,write);
    (4)你有什么要问我们的,一面主要问的是项目,单片机类型以及单片机最小系统这块的。

1、二面(技术面,也算是+HR面)
(1)自我介绍
(2)用到的编程语言是C吗,那C++了解吗(了解一点),然后开始问C++的一些基础知识;
(3)C++中类和结构体的区别
(4)动态绑定是什么?
(5)virtual关键字的作用是什么?(我开始听错了,听成volatile了,英语不好的尴尬)
(6)虚函数定义以及作用?
(7)vector容器和list容器优缺点?
(8)我看你的项目上基本上都是裸机开发的,你用过操作系统吗?用的什么开发板?
(9)另一个面试官:你能讲一下K-Means算法吗,你是怎么对他进行优化的呢,文本聚类是怎么实现的呢,感觉这个面试官比较对论文感兴趣。
(10)还有一些HR常问的问题:家庭情况,抗压能力,自己的优缺点,爱好,期望薪资之类的。

  • 深圳开立医疗
    三轮面试一共1个半小时左右
    1、一面(技术面)
    (1)自我介绍
    (2)面试官直接说我会针对你的以下几个方面进行问问题:C语言,数据结构,操作系统,计算机网络,没问题吧?(内心慌得一批,强颜欢笑:没问题)
    (3)C语言各种 sizeof 求值(数组,结构体),包括位域,字节对齐相关
    (4)了解排序算法吗?讲一下或者给你笔写一下冒泡排序和快速排序的代码吧(还好我之前都自己实现过)
    (5)C语言中动态分配应该注意什么(内存泄漏什么的)
    (5)数组和链表的区别,单链表?双向链表?循环链表?具体实现呢?二叉树?
    (6)linux操作系统的启动过程(我把从bootloader到加载内核到加载文件系统做了一个简单的描述)
    (7)看过linux内核代码吗?(只看过start_kernel函数,还有driver目录下的部分驱动代码)
    (8)做过内核移植和uboot移植吗?
    (9)TCP和UDP的区别,linux下TCP编程,都是常规的TCP问题
    (10)你有什么问题问我呢?(工作内容)
    2、二面(综合技术面)
    (1)自我介绍
    (2)介绍以下做过的项目,然后还是针对mqtt协议的一些问题,协议内容,协议的实现之类的
    (3)做过带linux操作系统的驱动开发吗(介绍了以下linux字符设备驱动程序的开发流程),在做项目的过程中遇到过什么问题?怎么解决的?(确实遇到过,主要是内存映射这块的,物理地址和虚拟地址的映射,还有MMU的作用之类的,看芯片手册找到对应的寄存器物理地址去解决)
    (4)做过linux内核移植吗?
    (5)有什么问题问我的?(员工培养机制)
    3、三面(HR面)
    (1)来深圳的理由
    (2)家庭情况
    (3)大学期间做的比较好的事情,有什么后悔的吗?
    (4)期望薪资
    还有一些其他HR常问的问题,记不起来了。

中间也有其他面试,也可能有的问题记不起来了,都怪当时有些公司没做记录,问的问题感觉都比较相似,排版很丑,以后学一学如何排版。

结尾

  • 春招和秋招,毕业生不得不面对的一个问题,花时间准备和不花时间准备也会有很大的差别,当然,可能也有一定的运气成分。
  • 回望这三个多月的过程,好像全都刚刚发生一样,历历在目。三个月中酸甜苦辣都有了,只是还差时间去研磨。浓郁的茶香细细的品,沿途的风景慢慢的看。
  • 大多数人不快乐人,都是对自己的现状不满,又无法改变自己现状。其实,不快乐的往往不是欠缺改变现状的能力,几乎都是因为懒和怕,所以就混和等。结果常常是一辈子都笑不出来。
    时间会给你最好的答案!
    在这里插入图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小舞很执着/article/detail/1018376
推荐阅读
相关标签
  

闽ICP备14008679号