秋招投递公司23家,简历被刷1家。笔试/测评挂掉3家。至今无消息的8家。获得Offer的公司有小米,兆易创新,全志科技,浙江大华,海格通信,京信通信,景嘉微电子,广州朗国电子,北京华大电子,中国长城科技集团。
文章目录
-
- 有面试
-
- 联发科北京(7.16)
-
- 一面(35min,8.5)
- 总结
- 广州朗国电子科技(8.24)
-
- 一面(60min,9.14)
- 二面(25min,9.16)
- 三面(40min,9.18)
- 总结
- 浙江大华股份(9.3)
-
- 一面(30min,9.10)
-
- 总结
- 二面(35min,9.12)
-
- 总结
- 三面(15min,9.14)
-
- 总结
- 兆易创新(9.3)
-
- 一面(50min,9.21)
- 二面(15min,9.25)
- 总结
- 景嘉微(9.13)
-
- 一面(35min,9.23)
- 二面(45min,9.23)
- 三面(30min,9.23)
- 总结
- 全志科技(9.15)
-
- 一面(20min,9.23)
- 二面(40min,9.26)
- HR面(20min 9.26)
- 小米(9.15)
-
- 一面(40min,9.21)
-
- 总结
- 二面 (50min,9.25)
- 三面(10min,10.15)
- 总结
- 中国长城科技集团(9.15)
-
- 总结
- CEC子公司-北京华大电子(9.15)
- 京信通信(9.16)
-
- 一面(10min,9.21)
- 二面(15min,10.19)
- 总结
- 海格通信(9.27)
-
- 一面(20min,9.27)
- 二面(25min,9.27)
- 三面(10min,9.28)
- 四面(15min,9.28)
- 总结
- 简历被刷
-
- oppo(8.23)
- 笔试/测评挂
-
- 海康威视(9.1)
- 乐鑫(8.18)
- CVTE(9.16)
- 没消息
-
- 寒武纪(9.3)
- 华为(9.10)
- BOE(8.25 & 9.12)
- 恩智浦(9.15)
- 瑞芯微(9.17)
- 紫光展锐(9.18)
- 联发科成都(9.18)
- 小马智行(9.18)
- 总结
??友情提示:公司名字后面的日期代表投递日期,面试批次后面的时间代表面试时长和面试日期。
有面试
联发科北京(7.16)
??20200805接到通知,0806早上九点半面试。邮件中写的是用Webex Meet,之前都没听过的一个软件, 上找了半天才找到,而且软件没有简体,只好调成繁体了。邮件中写的是等待通知后再连入,大概9.40的时候接到了电话,要我加入会议中。
面试官是个女的,首先让我自我介绍下,然后开始看我的简历。介绍完了直接问项目。
一面(35min,8.5)
你自己做了那部分不是在师兄师姐基础上做的/p>
??不是,师兄师姐之前主要做的是理论研究。我本人所做的是硬件的设计和软件代码的移植。
移植的开源代码,做了那些修改何修改的/p>
??主要修改的是硬件的管脚,时钟的配置,SPI总线的调试,芯片通信过程的调试。
上位机部分你说用了卡尔曼滤波,有没有调研过其他的滤波方式/p>
??没有考虑,当时请教了也做这个方向的一些人,他们给的建议就是用卡尔曼就可以。没有考虑其他方式。(其实最主要的是解决问题,能解决问题就可以)
??复盘:当时想到的第一个就是卡尔曼,因为卡尔曼在实际工程中应用比较广泛且成熟,效果也不错。当时就拿来试了下,定位精度得到了很好的提升。(定位漂移和抖动40cm左右。漂移和抖动的主要原因就是每次接收到的不止是多个信 叠加的结果,卡尔曼滤波主要是滤除除了首径信 以外的其他信 )
做的东西效果怎么样其他人做的对标了吗/p>
??定位效果还可以,每秒钟可以定位64个标签。
??复盘:业界的评判标准主要有几个方面。
整个工程文件有多少行代码/p>
??具体多少行不清楚,最后编译的hex文件为112k
代码移植过程中遇到什么问题,如何解决的/p>
??巴拉巴拉,通信过程有点复杂,估计面试官没听懂,就没往下问了(其实应该边画图边讲的)。
??复盘:解决的整个过程应该描述的再详细一些,重点突出关键部分,这个问题的三个部分都要讲清楚!
项目中实际写的代码量有多少
??没多少,主要是硬件的设计和调试,软件的移植,解决问题,修改。
??复盘:显然面试官嫌弃代码写少了,这个时候可以说微信小程序的代码自己写了很多,70%以上。从0到1.
项目代码中多线程,多进程是如何运行的
??没有用到多线程,多进程。
汇编,C++掌握怎么样/p>
??汇编自学过,可以看懂。C++基本没用过。
??复盘:汇编是自学的,C++和C的语法差不多,都可以看懂。
重写strcpy函数/p>
??写完了给面试官解释了下。写对了
将一个寄存器的第三位的值从0改成1
??写完了给解释下。写对了
你有什么想问我的/p>
??如果我有幸能进入贵公司,驱动主要负责那部分/p>
主要还是看你分到那个部门,camera,音视频,IO驱动都有在做的。
??什么时候能给到面试结果的答复/p>
不确定,要先把面试过程的记录交给HR。
总结
??1.我项目上做的是软件+硬件的一个实现,面试官全程在问软件,硬件一点没问。
??2.在简历中写了自己在写博客,放了一个链接,不知道面试官看没看。
??3.面试的岗位是Linux驱动开发,全程没有问一点像bootloader,Linux内核的输入子系统,总线设备驱动模型等偏底层的东西。
??4.女面试官可能都不太懂硬件程都是软件,而且自己的项目中写的代码不是太多,主要是修改。面试官还是侧重实际的写代码能力吧。感觉凉了。
??5.全程35分钟吧。
??6.总结下,项目考虑再深化下,如何讲解/p>
广州朗国电子科技(8.24)
一面(60min,9.14)
??无领导小组讨论。没有标准答案,上 搜索下无领导小组讨论的注意事项,想好自己要扮演什么角色。但是一定不要不说话,要有逻辑的表达自己的观点。
二面(25min,9.16)
??HR面,主要问了家庭情况,有没有女朋友,工作地点的问题,能不能接受加班,HR也很坦白的说,公司处在上升期。我们是标准的996。
三面(40min,9.18)
项目
??主要针对简历上写的内容来问,项目画原理图,流程图讲清楚,并进行公式推导。
什么是内核空间么是用户空间
内核空间和用户空间通信方式
为什么需要uboot用行不行/p>
??用uboot的目的是引导内核启动。
??我理解的,理论是可以的。把uboot中所做的一些工作写进内核里,板子也能启动。但是很少有人这么做,毕竟内核很庞大,大面积修改难度比较大。
volatile关键字
总结
??9.25 发来邮件,要先签两方协议。这家公司做Smart TV之类的显示设备的,安卓驱动和Linux驱动都有,也有嵌入式应用层的。零食甜点下午茶,10点以后打车 销,每个季度有奖金(0.5-1个月月薪),年终还有年终奖(据说可以拿到18薪),就是加班太多(据说996是标配,忙的时候9107),怕受不了。最后还是拒绝了。
浙江大华股份(9.3)
一面(30min,9.10)
??2020.9.8 做完笔试,9.10下午突然打电话来问是否方便,做个电话面试。
自我介绍
笔试题的建议
??笔试题好多关于C++的部分,个人是做嵌入式软件部分的(偏底层)。做起来C++部分有些吃力。希望笔试题可以分嵌入式上层和底层的部分。
项目
??问了好久,面试官对我做的项目很感兴趣。
static关键字
Arm有几个寄存器么是CPSR,SPSR么时候用到/p>
??37个寄存器。CPSR是当前程序状态寄存器,存储的是当前程序的状态,比如上下文的一些寄存器内容,程序运行的话就要用到CPSR。SPSR为备份的程序状态寄存器,主要是中断发生时用来存储CPSR的值的。
字符设备有哪些块设备有什么区别何写一个字符设备驱动/p>
??字符设备有键盘,鼠标等。字符设备和块设备的区别主要是访问方式不同,访问字符设备是以字符流的方式访问的,访问块设备是以块为单位,并且可以随机访问。
??以一个LED驱动为例,先定义一个file_operations结构体,接着编写init函数,在init函数中完成对管脚的映射,register_chrdev字符设备的注册,class_create类的注册,class_device_create在类下面注册一个设备。exit函数中完成字符设备的卸载,类的卸载,内存空间的释放。在open函数中完成硬件管脚的初始化,在write函数中完成点灯操作。
Uboot启动过程说下/p>
??没有难度。
堆和栈的区别/p>
??1.申请方式,栈的空间由操作系统自动分配,释放,堆上的空间手动分配,释放。2.申请大小,堆的可用空间比较大,栈的可用空间比较小,一般是2M。3.申请效率,栈申请速度比较慢,堆的申请速度比较快。
为什么栈的空间不连续
??不知道。
通用学科,你喜欢那个,学得好的。
??数学,英语。
数学的那个分支比较感兴趣
??矩阵理论。因为在许多问题的深入研究中,基本上50%以上的问题都会转化成矩阵来解决。所以这部分看的比较多。
除了课本学的数学之外,自己私下有没有看其他的关于数学的内容
??没有,自己看的比较多的是专业方面的书籍。
专业课中,那个课学的比较好
??C语言,操作系统,计算机组成原理,Arm体系和架构
除了课堂上学的之外,某个领域有没有深耕,自己研究过,私下看过
??Linux内核的源码,操作系统,计算机组成原理,私下都会去花时间去了解,学习
如何学习的什么样的方式
??我在学习Linux驱动的过程中,会想到一些问题,比如UBOOT的启动过程中为什么会关闭中断,关闭DCACHE,关闭MMU,关闭TLC等。遇到这些疑问我就会去查,解决问题的过程中会想到其他的一些问题,把这些问题记录下来,一一解决。
??像Linux内核的话我最近再看一本书,赵炯老师写的Linux0.12源码剖析,这个书以Linux0.12内核为基础,详细介绍了内核的各个部分,虽然看起来比较吃力,但是我也在坚持阅读。
??复盘:有条理更好。学习的形式主要分为两种:一种是在学习的过程中解决疑问,以解决问题为导向。比如,在移植UBOOT的过程中,我会想到为什么要关闭ICACHE,DCACHE等,关闭中断等(这里可以抛出这些问题,以防后面会问),遇到这些问题我就会记录下来,然后上 去查资料。在解决这些问题的过程中,可能会遇到其他的问题,继续查找相关资料,直到最后都搞清了。第二就是系统的学习,如果有比较充足的时间,我会去拿着像Arm体系和架构,操作系统,Linux源码剖析这些书去一点一点的读。去理解这些内容。以上就是我平时的一个学习方式。
C/C++那个更熟悉过开发吗/p>
??C更熟悉,做过开发,3000行代码的经验。
Linux操作系统熟悉吗/p>
??熟悉,常用的使用都是没问题的。
平时有空了做什么
??我会去学习一些新的知识,研究一些底层的东西,比如操作系统,计算机组成原理等。我到现在一直坚持的一个事情就是写博客。每周的话我都会把这周的疑问,这周学习的新的知识去做一个总结,每周都会要求自己去发布一篇博客,对本周的内容做一个总结。
??复盘:有空的话我更多的时间还是投入到对于技术的学习中,在学习的过程中我会通过写博客的方式来输出自己的想法。每周我都会去坚持写一篇博客,博客的主要内容就是这周的学习的新知识以及遗留的疑问的解决。
反问
??这个算第一次面试吗么时候会得到这次面试的结果次面试是否会提前通知/p>
??算第一次面试。结果的话这最近两三天会给到。因为人比较多,面试不会提前通知。
总结
??面试时间35min吧,整个面试过程还是很顺利的,问的问题基本都答了上来,唯一 一个关于栈的空间不连续的问题,确实是自己的知识盲区了,后面也补上了。
??回想起来。有些问题应该想好再说,注意条理性,问你什么答什么,不要有废话。
二面(35min,9.12)
自我介绍
进程和线程的区别
??1.进程是系统进行资源分配和调度的一个基本单位,线程是CPU调度和分配的基本单位。2.进程有自己的独立地址空间,线程是共享进程的内存空间的。3.进程切换的开销大,线程切换开销小。4.多线程程序只要有一个线程死掉,整个进程也跟着死掉了,多进程程序中的一个进程死掉并不会对另外一个进程造成影响。
死循环有几种方式来写
??for(;1;){},while(1){},do {} while(1);
看你写的熟悉内核的总线设备驱动模型,讲解下。总线设备驱动模型和字符设备有什么区别/p>
??总线设备驱动模型和字符设备驱动并不是一个平行的概念,总线设备驱动模型是在字符设备驱动模型的基础上套一个外壳,其实内部的驱动编写方式仍然和常规的字符设备驱动基本是一样的,这样做的目的为了隔离BSP和驱动,使得驱动具有更好的可扩展性。
Uboot如何引导内核启动的/p>
??uboot引导内核启动主要向内核传递三个参数R0,R1,R2,第一个参数R0,默认为0。第二个参数,R1,CPU ID,告诉内核板载CPU的型 。第三个参数R2,告诉内核映像文件存在什么地方,板子还剩多少内存空间。这些参数的传递都是以tag_list的方式传递的。
主要擅长的开发语言
??C语言最擅长
左值和右值
??左值可写,右值可读。通常,左值可以作为右值,但是右值不一定是左值。
数组名和指针区别
??数组名对应的是一块内存的地址,指针是指向一块内存地址。数组名对应的内存地址不可以修改,指针指向的内存地址可以修改,更加灵活。数组存放的是数据内容,指针存储的是地址。
平常像C++,python这种语言有涉及吗
??C++能看懂,会改。自己独立写一个大程序的话不太行。汇编的话是自己学过的,能看懂,会改。python语言没有涉及到。JS/HTML/CSS这些前端的语言是自己在项目中实际用过的,使用没问题。
??复盘:先抛出结论,C++ 汇编 JS/HTML/CSS这是我会的语言。然后再描述。
之前做的项目都是偏底层的实现,对吧。
??不是。能称得上是底层的就是第二个项目吧,移植uboot2012到2440的开发板。第一个项目的话是硬件软件的一个设计开发,没有涉及到底层的东西。
??复盘:如何清晰的描述第一个项目。第一个项目主要做的就是硬件的设计,软件代码的移植,是偏上层的,没有和底层相关的技术。
你自己考虑的话以后自己是偏向底层的开发对吧
??对的
是偏向系统呢,驱动呢,内核呢/p>
??我目前考虑的是做驱动开发
为什么是驱动开发呢
??我觉得做底层这一块比较有意思吧,像做驱动开发的话,我们知道像安卓的camera驱动,音视频驱动这些,都是独立的一块,每一块拿出来都值得研究,我个人也比较倾向于从事有挑战性的工作。目前考虑的是先做Linux驱动,以后如果有可能的话会去做安卓的驱动,再慢慢的到camera驱动,音视频驱动这些。这也算是我的一个职业规划吧
??复盘:回答的有点跑偏了,不过不要紧,还是向面试官表达出了自己做这个行业的一个规划。
??下次这样回答:因为我觉得做底层的话,可以更清楚的知道我们的程序是如何运行的,程序编译完成后是如何在内存里面排布的,我个人对于技术好奇心很重,经常会想一些问题,比如在uboot启动过程中可以把dcache,icache都关掉吗,Linux内核是如何知道我现在所处的环境(运行于那个cpu上,其实就是uboot和内核参数传递方式,故意说的不清楚,让面试官问你)等等。对于这些问题,我喜欢刨根问底都搞明白。因此我喜欢做驱动开发。
除了上课外,你会看一些什么样的内容呢/p>
??我最近在看的两本书是Linux内核源代码情景分析,赵炯老师的Linux0.12内核完全注释。昨晚我在看的是Linux内核的源代码情景分析中的数据结构部分,包括链表,队列,二叉树等是如何实现的。(很巧了,正好昨晚看了这部分)。此外,每周的话,我都会去学习一些新的知识,把自己的感悟和其他人对于这个问题的看法记录在博客里面。大概就在些把,做的最多的就是写博客,从输入到输出的一个反馈把。
??复盘:先抛出结论。先说,做的最多的就是写博客了,从输入到输出的反馈,巴拉巴拉。
??我每周做的最多的事情主要有两个。第一个是学习新的知识,学习一些自己感兴趣的内容,比如我最近在看的书。第二就是写博客,每周我都会写一篇博客,这篇博客的内容主要就是本周学习的知识的总结,或者是之前遗留的疑问的解决。
除了知识学习外,平常还有什么爱好
??每周都会跑步3次左右,每周最少打一次篮球。
看你写的博客,11个月,104篇,相当于每个月差不多10篇左右吧。
??这104篇中有好多是我在自学Linux驱动开发过程中的一些笔记,随笔。在学习的过程中就顺手记录下来了。其实到后面慢慢发现,一个月内想要产出一篇不错的文章的话,还是要花一点时间的。所以说,我现在对于我自己的一个要求就是每周一篇,保证质量。不像之前那样,以一种记笔记的形式。
这些文章中那些是访问量比较高的
??单链表的增删改查反转等操作,单链表的冒泡,快排,归并等排序,线索二叉树等。
数据结构也是自学的吗树熟悉吗下那些树,有什么特点
??满二叉树,所有根节点都会有两个子节点。平衡二叉树,根节点的左孩子比根节点的值要小,右孩子比根节点的值要大
??复盘:平衡二叉树都回答错了。
做驱动过程中,有没有针对某一个点的优化和改善/p>
??犹豫了半天,没有想起来。尴尬!
??复盘:最基本的按键驱动啊,由查询方式改为中断方式。Uboot的启动过程中,将重定位的程序靠前存放(链接脚本),保证在4K以内的代码能完成后面程序的复制。
反问
??我什么时候能得到二面的结果呢/p>
一周之内。后面会有HR联系你的。
??接下来还有几轮面试
应该还有一轮面试。HR面完了之后会综合评估,给出offer。
总结
??总体还行吧。70分。面试问的技术问题都是自己在资料中总结到的,二叉树的说错了,不知道面试官发觉没有。面试中很大一部分时间都在聊博客的事情,也算自己擅长的方向。
??最后一个问题 回答的不好,实在没想起来,现在想想,举一个差不多的例子就可以了。直接回答不会有点不好。
三面(15min,9.14)
面试完了有什么收获
??有些问题本可以回答的很好,但是由于没什么经验,答得不太好。
目前投了那些公司
??就投了两家,一家是XX,另一家就是大华,大华是面试进度最快的。(其实已经投了几家了)
家庭成员的情况。对工作地点有没有要求/p>
??如实回答就可以。
期望的工资
??我说,公司应该都有个统一的标准,按照标准来就好了。HR说你最好还是说一个吧,我说了XXX。
目前有那些OFFER
??当时怕压价,就说了有了XX和XXX的offer(实际上都没有啊)。其实这里说漏嘴了,之前说只投递了两家,哪里来的offer知道HR有没有意识到。(如果大华的同事看到了,不要打我啊,哈哈。)
反问
??什么时候有结果/p>
一周之内。
总结
??今天已经是9.21了。仍然没有结果。明天问下吧。
??最终的offer发出是在9.30 ,看了下也比较满意!
兆易创新(9.3)
一面(50min,9.21)
项目问了很久
??30min
字符设备如何写,框架
??资料总结的驱动框架里面有。很容易答了上来。
LCD驱动框架
??资料总结的驱动框架里面有。很容易答了上来。
uboot启动流程
??资料总结的驱动框架里面有。很容易答了上来。
SDRAM接口地址
??具体地址忘了,但是我知道他是接在bank6的
你是北方人,对工作地点有要求吗。
??我:没有。我主要看重我在公司做什么。
向你介绍下我们部门吧。巴拉巴拉说了很多工作内容后(当面试官说这个的时候,我觉得就有戏了),主要是做指纹芯片的,工作内容大多集中在在Android底层和hal层,给客户解决问题要占50%的时间。
??其实个人不太喜欢这个工作,主要是有点FAE的感觉。但是当时没说出来。
二面(15min,9.25)
如何了解到兆易创新的
??很多比赛都是兆易创新赞助或者以兆易创新的名字命名的,我也参加了兆易创新今年举办的研电赛,我们在研电赛中获得了全国三等奖。
目前手上的offer你开了多少/p>
??大华,全志。还没谈。(当时也是为了怕压价,说了手上有两个offer)
何时发三方拉进群
??10月底,11月初。
工作地点去深圳还是上海/p>
??再考虑下。
父母对于工作地点的要求
??没有。
打算在上海,深圳落户吗
??没有。
??直接拉进offer群里了,200+人,群里好多电科大,西电的,西交,西工大的,我在群里都不敢发言。
总结
??个人还是不太喜欢这个工作,主要是做Android底层和Hal层,还给客户解决问题,占用了50%的时间。其实30%的时间是可以接受的,50%有点多了。感谢兆易创新对我的认可,不好意思!
景嘉微(9.13)
??景嘉微的面试还是专业的。一天之内三面。每次面试都是两个面试官,二面还是一轮压力面。
一面(35min,9.23)
项目
??问的不详细,基本都是原理之类的,解释清楚就好。
看你学过数据结构,自学的吗了多少题个简单的吧
??自己学的。具体多少没算过吗,大概有200道左右吧。
??如何判断一个数是不是质数真不会,忘了质数的概念,想了半天,面试官说,估计你对质数概念不了解,算了。
自旋锁和信 量说下
??答对了。
二叉树什么时候会退化么是平衡二叉树/p>
??不知道什么时候会退化。平衡二叉树就是左右子树度的差值小于1.
uboot启动流程
??说了很多遍了。
Cache一致性
??不知道这个概念。但是我具体说了下读写Cache的一些注意问题,比如初始化的时候一定要清空Cache之类的。
如何写一个字符设备驱动
??init函数,exit函数,file_operation结构体之类的东西
uboot启动为什么要关闭中断,MMU,DCACHE之类的
??非必须关闭吧。uboot的目的就是引导内核启动,而且uboot启动的话只是把需要的打开了,其他非必须的都可以关闭。当然也可以打开。DCACHE之类的必须要关闭,因为SDRAM没有初始化,可能会取到错误的数据。
bin文件和elf文件区别
??不清楚。后来在自己总结的面试知识点中增加了这个内容。
什么时候用哈希希冲突如何解决/p>
??对时间要求比较高,对占用内存空间大小要求不高。开放地址法,再哈希法。
二面(45min,9.23)
项目原理的介绍
写博客的目的
??之前也考虑过这个问题,当时说了4点。1.随笔的形式,方便自己回顾。2.好的学习习惯 3.认识了很多业内前辈。4.习惯之后,坚持每周输出。
看你写了很多奖项,好多是校级的,有其他的吗/p>
??有一个国家级的,研电赛全国三等奖。
项目难点
??巴拉巴拉。
还有各种针对本人的问题,总之就是压力面,一直否定你这个人
??你简历上写了这么多奖学金,你觉得你是你们周围最优秀的吗什么和别人差在哪什么本科毕业不直接参加工作什么考研科期间都做了哪些事情了什么收获觉得你是最努力的吗前是不是没有努力什么在看C primer plus基础不好吗等这类的问题。(这种问题沉着冷静的如实回答就可以。不要让面试官觉得你人有问题)
三面(30min,9.23)
印象最深刻的人
自我介绍
介绍项目
最成功的项目
项目难点
如何克服和学习项目的难点
总结
??9.25发来Offer,国庆节后给答复。公司是在长沙,做显卡的,主要客户是部队。不是很想去,国庆节后上班第一天就给了景嘉微答复说不去。
全志科技(9.15)
一面(20min,9.23)
项目简单介绍
进程和线程区别
??问了很多遍了。
编程题:指针函数,函数的参数为int,返回值为字符指针
宏定义求最大数
uboot启动流程
??问了很多遍了。
二面(40min,9.26)
??一个酒店,和研发部总经理聊了聊受益匪浅。
为什么写博客/p>
??之前也考虑过这个问题,当时说了4点。1.随笔的形式,方便自己回顾。2.好的学习习惯 。3.认识了很多业内前辈。4.习惯之后,坚持每周输出。
项目原理,五分钟给我讲明白
??边画图边讲。
为什么学Linux的什么开发板时候买的少钱买的学的吗人引导吗了多久/p>
周围搞Linux的多不多/p>
操作系统会吗算机组成原理了解多少/p>
??了解一点,没有时间去完整的看。
为什么没有时间完整的看/p>
??白天忙导师安排的事情,还要写论文,改论文,写专利等等,晚上才有时间学习一些内容。当时紧接着又说虽然没时间完整的看,但是操作系统说基本的概念还是都理解的。
说下MMU。什么是MMU什么需要MMU龙去脉讲清楚
??大概讲的是这个里面的一些内容:
??S3C2410 MMU(存储器管理单元)详述
??物理地址到虚拟地址的映射,为了跑大型程序,操作更多的地址
是虚拟地址到物理地址的映射,你搞反了。
紧接着又说,我最看重的是操作系统和计算机组成原理的掌握程度,这些都是嵌入式的基础中的基础。
??这些都是放在我计划之中,不过我目前在看源码的框架。
先不要看源码,不懂操作系统和计算机组成原理,看源码会累死。我们之前一个项目要修改内核中的关于调度的程序,我研究进程调度这部分,研究了两周多才修改完。所以,有时间还是补下计算机基础。源码的内容别急着看。
??面试官确实很厉害。也和自己说了很多。所以接下来调整下战略思路,先看操作系统和计算机组成原理
在校期间,就要把基础打牢,好好看书。
??之前面试其他公司,面试官问的关于操作系统的一些内容能答上来,这里我有点膨胀了,居然和面试官说操作系统的基本概念都理解。一下就被面试官问倒了。所以,如果不是特别熟悉,不要和面试官说我精通XXX之类的话,否则,肯定会被面试官问到不会为止。吸取教训!
HR面(20min 9.26)
??最后去另一个房间和HR聊了聊待遇和薪资,待遇一般,而且工资组成里面还有20%的绩效,上下浮动。不打算去。而且,因为之前全志也闹过裁员风波,所以试探性问了下HR试用期会裁多少人R回答的是我们并不规定具体的指标。我接着又补充说到,那么我是否可以理解为没有上限也没有下限呢R说是的。所以,直接拒了。
??和HR聊完了,顺便问了下面试官的名字,HR说这是他们XX部门的研发总监。和这个面试官聊天,确实学到了很多,受益匪浅!
小米(9.15)
一面(40min,9.21)
自我介绍
??首先是自我介绍,本来准备的是三分钟的自我介绍,但是中途被面试官打断了,说面试时间有限,简短一点,要不后面没有时间写代码了。就介绍了下自己写博客的事情。接着面试官也很直接,上来就基础知识开始问。
进程和线程的区别
??答对了。
??进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,它是系统进行资源分配和调度的一个独立单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、IO设备等,然后该进程被放入到进程的就绪队列,进程调度程序选中它,为它分配CPU及其他相关资源,该进程就被运行起来。
??线程是进程的一个实体,是CPU调度和分配的基本单位,线程自己基本上不拥有系统资源,只拥有一些在运行中必不可少的资源(如程序计数器、一组寄存器和栈),但是,它可以与同属一个进程的其他的线程共享进程所拥有的全部资源。
??在没有实现线程的操作系统中,进程既是资源分配的基本单位,又是调度的基本单位,它是系统中并发执行的单元。而在实现了线程的操作系统中,进程是资源分配的基本单位而线程是调度的基本单位,是系统中并发执行的单元。
??不全。面试官又提醒了。进程间通信方式有那些,也回答上了。管道,FIFO,信 ,信 量,消息队列,共享内存(最快),套接字。
僵尸进程听过吗
??没有。
static 和 volatile
??答对了。
??static主要是改变函数和变量的作用域。volatile防止对寄存器进行优化,使得每条指令都要按照我们写的进行运行
两个Linux操作系统之间使用什么命令进行文件的传递/p>
??我不知道是什么命令,但是我可以说下我的想法,我觉得利用HTTPS协议可以进行传输。
不是命令,这是协议。
数据结构学过吗下你知道的排序算法/p>
??在校没有学过,但是我自己私下学过。排序算法:快排,选择排序,冒泡排序,插入排序,堆排序。
说下快排的过程,快排的时间复杂度
??巴拉巴拉,也答对了。
手撕代码
??反转字符串中的单词 I am a teacher -> rehcaet a ma I
??很基础的问题,A了出来。
最后反问
??什么时候有结果/p>
不确定,一周以后吧。
总结
??有好多基础知识没打上来。主要集中在操作系统相关的概念上。确实不知道,接下来要好好补充了!
二面 (50min,9.25)
项目问的很细
??20min,原理和流程图
typedef和 define有什么区别
??1.typedef在编译时处理,具有类型检查的功能;define在预编译时展开,不会进行错误的检查,只是字符的替换。2.define没有作用域的限制,typedef有自己的作用域。3.typedef定义指针的别名时,别名可以连续定义两个指针变量。define定义指针的别名时,使用这个别名连续定义两个指针变量会 错。
数组下标可以为负数吗
??没见过,应该可以吧。
不能用 sizeof()函数,如何判断操作系统是16位,还是32位
??16位系统中,int变量的范围-32768到+32767,32767+1变为-32768。可以利用这个特性来判断。
IIC如何发送一个数据IC时序图画下。IIC芯片有哪些/p>
??回答的还可以。
用户栈和内核栈是同一个区域吗什么区别/p>
??不是。用户栈和内核栈是两个独立的区域。内核栈保存的是内核态程序运行的时候相关寄存器信息,用户栈保存的是用户态的内容。
用户空间和内核空间的通信方式/p>
??1.API函数,Copy_from_user,get_user等。2.proc文件系统 3.mmap系统调用 4.使用文件
中断的响应执行流程过顶半部和底半部吗讲
??cpu接受中断->保存中断上下文跳转到中断处理历程->执行中断上半部->执行中断下半部->恢复中断上下文。
??顶半部执行一般都是比较紧急的任务,比如清中断。下半部执行的是一些不太紧急的任务,可以节省中断处理的时间。
写过那些驱动下LCD驱动如何编写/p>
??巴拉巴拉,问了很多遍了。
手撕代码
??给定一个数组,找出和为s的数字。二分查找,A了。
反问
??如果有幸进公司,主要负责那些方面/p>
IO驱动,音视频驱动,内核的优化移植都有。看个人兴趣和过往经历的匹配程度。
??多久出结果呢/p>
月底前应该会给
三面(10min,10.15)
家庭情况
期望薪资
有没有女朋友作地点是北京还是深圳/p>
??北京。
总结
??发下offer已经是10.20 了,太晚了,三方早已经寄走了,综合考虑,感觉性价比不是很高。如果冲着小米的平台去,确实还不错。其实心里有点小后悔。不过也就这样了,注定与小米无缘。
中国长城科技集团(9.15)
项目
??15min。
你知道的Linux指令有那些
??ls,ps,rm,cat,mv。
busybox是什么/p>
??缩小版的unix系统常用命令工具箱。主要包含了一些常用的Linux指令,环境等。
什么是根文件系统
??根文件系统上是内核启动时所挂载的第一个文件系统,内核代码映像文件保存在根文件系统中。
为什么写博客/p>
??之前回答过了,四点。
反问
??这个岗位主要负责什么/p>
你的岗位是Linux系统工程师,主要是负责操作系统的优化和移植。
总结
??9.25 微信告诉我面试通过了,问我是否签约,综合考虑了下,拒绝了,抱歉!公司其实还不错,在长沙,一年保底16薪,包食宿,长沙人去蛮适合的。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!