关于c:2020年秋招联发科小米等20家公司面经总结

34次阅读

共计 16116 个字符,预计需要花费 41 分钟才能阅读完成。

秋招投递公司 23 家,简历被刷 1 家。口试 / 测评挂掉 3 家。至今无音讯的 8 家。取得 Offer 的公司有小米,兆易翻新,全志科技,浙江大华,海格通信,京信通信,景嘉微电子,广州朗国电子,北京华大电子,中国长科技团体。已签约浙江大华。

@[toc]
  情谊提醒:公司名字前面的日期代表投递日期,面试批次前面的工夫代表面试时长和面试日期。

有面试

联发科北京(7.16)

  20200805 接到告诉,0806 早上九点半面试。邮件中写的是用 Webex Meet,之前都没听过的一个软件,网上找了半天才找到,而且软件没有简体,只好调成繁体了。邮件中写的是期待告诉后再连入,大略 9.40 的时候接到了电话,要我退出会议中。
面试官是个女的,首先让我自我介绍下,而后开始看我的简历。介绍完了间接问我的项目。

一面(35min,8.5)

你本人做了那局部?是不是在师兄师姐根底上做的?

  不是,师兄师姐之前次要做的是实践钻研。我自己所做的是硬件的设计和软件代码的移植。

移植的开源代码,做了那些批改?如何批改的?

  次要批改的是硬件的管脚,时钟的配置,SPI 总线的调试,芯片通信过程的调试。

上位机局部你说用了卡尔曼滤波,有没有调研过其余的滤波形式?

  没有思考,过后求教了也做这个方向的一些人,他们给的倡议就是用卡尔曼就能够。没有思考其余形式。(其实最次要的是解决问题,能解决问题就能够)

  复盘:过后想到的第一个就是卡尔曼,因为卡尔曼在理论工程中利用比拟宽泛且成熟,成果也不错。过后就拿来试了下,定位精度失去了很好的晋升。(定位漂移和抖动 40cm 左右。漂移和抖动的次要起因就是每次接管到的不止是多个信号叠加的后果,卡尔曼滤波次要是滤除除了首径信号以外的其余信号)

做的货色成果怎么样?和其他人做的对标了吗?

  定位成果还能够,每秒钟能够定位 64 个标签。

  复盘:业界的评判规范次要有几个方面。

整个工程文件有多少行代码?

  具体多少行不分明,最初编译的 hex 文件为 112k

代码移植过程中遇到什么问题,如何解决的?

  巴拉巴拉,通信过程有点简单,预计面试官没听懂,就没往下问了(其实应该边画图边讲的)。

  复盘:解决的整个过程应该形容的再具体一些,重点突出要害局部,这个问题的三个局部都要讲清楚!

我的项目中理论写的代码量有多少

  没多少,次要是硬件的设计和调试,软件的移植,解决问题,批改。

  复盘:显然面试官厌弃代码写少了,这个时候能够说微信小程序的代码本人写了很多,70% 以上。从 0 到 1.

我的项目代码中多线程,多过程是如何运行的

  没有用到多线程,多过程。

汇编,C++ 把握怎么样?

  汇编自学过,能够看懂。C++ 根本没用过。

  复盘:汇编是自学的,C++ 和 C 的语法差不多,都能够看懂。

重写 strcpy 函数?

  写完了给面试官解释了下。写对了

将一个寄存器的第三位的值从 0 改成 1

  写完了给解释下。写对了

你有什么想问我的?

  如果我有幸能进入贵公司,驱动次要负责那局部?

次要还是看你分到那个部门,camera,音视频,IO 驱动都有在做的。

  什么时候能给到面试后果的回答?

不确定,要先把面试过程的记录交给 HR。

总结

  1. 我我的项目上做的是软件 + 硬件的一个实现,面试官全程在问软件,硬件一点没问。

  2. 在简历中写了本人在写博客,放了一个链接,不晓得面试官看没看。

  3. 面试的岗位是 Linux 驱动开发,全程没有问一点像 bootloader,Linux 内核的输出子系统,总线设施驱动模型等偏底层的货色。

  4. 女面试官可能都不太懂硬件?全程都是软件,而且本人的我的项目中写的代码不是太多,次要是批改。面试官还是偏重理论的写代码能力吧。感觉凉了。

  5. 全程 35 分钟吧。

  6. 总结下,我的项目思考再深入下,如何解说?

广州朗国电子科技(8.24)

一面(60min,9.14)

  无领导小组讨论。没有标准答案,上网搜寻下无领导小组讨论的注意事项,想好本人要表演什么角色。然而肯定不要不谈话,要有逻辑的表白本人的观点。

二面(25min,9.16)

  HR 面,次要问了家庭状况,有没有女朋友,工作地点的问题,能不能承受加班,HR 也很坦率的说,公司处在上升期。咱们是规范的 996。

三面(40min,9.18)

我的项目

  次要针对简历上写的内容来问,我的项目画原理图,流程图讲清楚,并进行公式推导。

什么是内核空间?什么是用户空间

内核空间和用户空间通信形式

为什么须要 uboot?不必行不行?

  用 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?什么时候用到?

  37 个寄存器。CPSR 是以后程序状态寄存器,存储的是以后程序的状态,比方上下文的一些寄存器内容,程序运行的话就要用到 CPSR。SPSR 为备份的程序状态寄存器,次要是中断产生时用来存储 CPSR 的值的。

字符设施有哪些?和块设施有什么区别?如何写一个字符设施驱动?

  字符设施有键盘,鼠标等。字符设施和块设施的区别次要是拜访形式不同,拜访字符设施是以字符流的形式拜访的,拜访块设施是以块为单位,并且能够随机拜访。

  以一个 LED 驱动为例,先定义一个 file_operations 构造体,接着编写 init 函数,在 init 函数中实现对管脚的映射,register_chrdev 字符设施的注册,class_create 类的注册,class_device_create 在类上面注册一个设施。exit 函数中实现字符设施的卸载,类的卸载,内存空间的开释。在 open 函数中实现硬件管脚的初始化,在 write 函数中实现点灯操作。

Uboot 启动过程说下?

  没有难度。

堆和栈的区别?

  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++ 那个更相熟?做过开发吗?

  C 更相熟,做过开发,3000 行代码的教训。

Linux 操作系统相熟吗?

  相熟,罕用的应用都是没问题的。

平时有空了做什么

  我会去学习一些新的常识,钻研一些底层的货色,比方操作系统,计算机组成原理等。我到当初始终保持的一个事件就是写博客。每周的话我都会把这周的疑难,这周学习的新的常识去做一个总结,每周都会要求本人去公布一篇博客,对本周的内容做一个总结。

  复盘:有空的话我更多的工夫还是投入到对于技术的学习中,在学习的过程中我会通过写博客的形式来输入本人的想法。每周我都会去保持写一篇博客,博客的次要内容就是这周的学习的新常识以及遗留的疑难的解决。

反诘

  这个算第一次面试吗?什么时候会失去这次面试的后果?下次面试是否会提前告诉?

  算第一次面试。后果的话这最近两三天会给到。因为人比拟多,面试不会提前告诉。

总结

  面试工夫 35min 吧,整个面试过程还是很顺利的,问的问题根本都答了上来,惟一 一个对于栈的空间不间断的问题,的确是本人的常识盲区了,前面也补上了。

  回想起来。有些问题应该想好再说,留神条理性,问你什么答什么,不要有废话。

二面(35min,9.12)

自我介绍

过程和线程的区别

  1. 过程是零碎进行资源分配和调度的一个根本单位,线程是 CPU 调度和调配的根本单位。2. 过程有本人的独立地址空间,线程是共享过程的内存空间的。3. 过程切换的开销大,线程切换开销小。4. 多线程程序只有有一个线程死掉,整个过程也跟着死掉了,多过程程序中的一个过程死掉并不会对另外一个过程造成影响。

死循环有几种形式来写

  for(;1;){},while(1){},do {} while(1);

看你写的相熟内核的总线设施驱动模型,解说下。总线设施驱动模型和字符设施有什么区别?

  总线设施驱动模型和字符设施驱动并不是一个平行的概念,总线设施驱动模型是在字符设施驱动模型的根底上套一个外壳,其实外部的驱动编写形式依然和惯例的字符设施驱动根本是一样的,这样做的目标为了隔离 BSP 和驱动,使得驱动具备更好的可扩展性。

Uboot 如何疏导内核启动的?

  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 的开发板。第一个我的项目的话是硬件软件的一个设计开发,没有波及到底层的货色。

  复盘:如何清晰的形容第一个我的项目。第一个我的项目次要做的就是硬件的设计,软件代码的移植,是偏下层的,没有和底层相干的技术。

你本人思考的话当前本人是偏差底层的开发对吧

  对的

是偏差零碎呢,驱动呢,内核呢?

  我目前思考的是做驱动开发

为什么是驱动开发呢

  我感觉做底层这一块比拟有意思吧,像做驱动开发的话,咱们晓得像安卓的 camera 驱动,音视频驱动这些,都是独立的一块,每一块拿进去都值得钻研,我集体也比拟偏向于从事有挑战性的工作。目前思考的是先做 Linux 驱动,当前如果有可能的话会去做安卓的驱动,再缓缓的到 camera 驱动,音视频驱动这些。这也算是我的一个职业规划吧

  复盘:答复的有点跑偏了,不过不要紧,还是向面试官表白出了本人做这个行业的一个布局。

  下次这样答复:因为我感觉做底层的话,能够更分明的晓得咱们的程序是如何运行的,程序编译实现后是如何在内存外面排布的,我集体对于技术好奇心很重,常常会想一些问题,比方在 uboot 启动过程中能够把 dcache,icache 都关掉吗,Linux 内核是如何晓得我当初所处的环境(运行于那个 cpu 上,其实就是 uboot 和内核参数传递形式,成心说的不分明,让面试官问你)等等。对于这些问题,我喜爱刨根问底都搞明确。因而我喜爱做驱动开发。

除了上课外,你会看一些什么样的内容呢?

  我最近在看的两本书是 Linux 内核源代码情景剖析,赵炯老师的 Linux0.12 内核齐全正文。昨晚我在看的是 Linux 内核的源代码情景剖析中的数据结构局部,包含链表,队列,二叉树等是如何实现的。(很巧了,正好昨晚看了这部分)。此外,每周的话,我都会去学习一些新的常识,把本人的感悟和其他人对于这个问题的认识记录在博客外面。大略就在些把,做的最多的就是写博客,从输出到输入的一个反馈把。

  复盘:先抛出论断。先说,做的最多的就是写博客了,从输出到输入的反馈,巴拉巴拉。

  我每周做的最多的事件次要有两个。第一个是学习新的常识,学习一些本人感兴趣的内容,比方我最近在看的书。第二就是写博客,每周我都会写一篇博客,这篇博客的内容次要就是本周学习的常识的总结,或者是之前遗留的疑难的解决。

除了常识学习外,平时还有什么喜好

  每周都会跑步 3 次左右,每周起码打一次篮球。

看你写的博客,11 个月,104 篇,相当于每个月差不多 10 篇左右吧。

  这 104 篇中有好多是我在自学 Linux 驱动开发过程中的一些笔记,随笔。在学习的过程中就棘手记录下来了。其实到前面缓缓发现,一个月内想要产出一篇不错的文章的话,还是要花一点工夫的。所以说,我当初对于我本人的一个要求就是每周一篇,保证质量。不像之前那样,以一种记笔记的模式。

这些文章中那些是访问量比拟高的

  单链表的增删改查反转等操作,单链表的冒泡,快排,归并等排序,线索二叉树等。

数据结构也是自学的吗?对树相熟吗?说下那些树,有什么特点

  满二叉树,所有根节点都会有两个子节点。均衡二叉树,根节点的左孩子比根节点的值要小,右孩子比根节点的值要大

  复盘:均衡二叉树都答复错了。

做驱动过程中,有没有针对某一个点的优化和改善?

  犹豫了半天,没有想起来。难堪!

  复盘:最根本的按键驱动啊,由查问形式改为中断形式。Uboot 的启动过程中,将重定位的程序靠前寄存(链接脚本),保障在 4K 以内的代码能实现前面程序的复制。

反诘

  我什么时候能失去二面的后果呢?

一周之内。前面会有 HR 分割你的。

  接下来还有几轮面试

应该还有一轮面试。HR 面完了之后会综合评估,给出 offer。

总结

  总体还行吧。70 分。面试问的技术问题都是本人在材料中总结到的,二叉树的说错了,不晓得面试官察觉没有。面试中很大一部分工夫都在聊博客的事件,也算本人善于的方向。

  最初一个问题 答复的不好,切实没想起来,当初想想,举一个差不多的例子就能够了。间接答复不会有点不好。

三面(15min,9.14)

面试完了有什么播种

  有些问题本能够答复的很好,然而因为没什么教训,答得不太好。

目前投了那些公司

  就投了两家,一家是 XX,另一家就是大华,大华是面试进度最快的。(其实曾经投了几家了)

家庭成员的状况。对工作地点有没有要求?

  如实答复就能够。

冀望的工资

  我说,公司应该都有个对立的规范,依照规范来就好了。HR 说你最好还是说一个吧,我说了 XXX。

目前有那些 OFFER

  过后怕压价,就说了有了 XX 和 XXX 的 offer(实际上都没有啊)。其实这里说漏嘴了,之前说只投递了两家,哪里来的 offer?不晓得 HR 有没有意识到。(如果大华的共事看到了,不要打我啊, 哈哈。)

反诘

  什么时候有后果?

一周之内。

总结

  明天曾经是 9.21 了。依然没有后果。今天问下吧。

  最终的 offer 收回是在 9.30 号,看了下也比较满意!

兆易翻新(9.3)

一面(50min,9.21)

我的项目问了很久

  30min

字符设施如何写,框架

  材料总结的驱动框架外面有。很容易答了上来。

LCD 驱动框架

  材料总结的驱动框架外面有。很容易答了上来。

uboot 启动流程

  材料总结的驱动框架外面有。很容易答了上来。

SDRAM 接口地址

  具体地址忘了,然而我晓得他是接在 bank6 的

你是南方人,对工作地点有要求吗。

  我:没有。我次要看重我在公司做什么。

向你介绍下咱们部门吧。巴拉巴拉说了很多工作内容后(当面试官说这个的时候,我感觉就有戏了),次要是做指纹芯片的,工作内容大多集中在在 Android 底层和 hal 层,给客户解决问题要占 50% 的工夫。

  其实集体不太喜爱这个工作,次要是有点 FAE 的感觉。然而过后没说进去。

二面(15min,9.25)

如何理解到兆易翻新的

  很多较量都是兆易翻新资助或者以兆易翻新的名字命名的,我也加入了兆易翻新往年举办的研电赛,咱们在研电赛中取得了全国三等奖。

目前手上的 offer?给你开了多少?

  大华,全志。还没谈。(过后也是为了怕压价,说了手上有两个 offer)

何时发三方?先拉进群

  10 月底,11 月初。

工作地点去深圳还是上海?

  再思考下。

父母对于工作地点的要求

  没有。

打算在上海,深圳落户吗

  没有。

  间接拉进 offer 群里了,200+ 人,群里好多电科大,西电的,西交,西工大的,我在群里都不敢发言。

总结

  集体还是不太喜爱这个工作,次要是做 Android 底层和 Hal 层,还给客户解决问题,占用了 50% 的工夫。其实 30% 的工夫是能够承受的,50% 有点多了。感激兆易翻新对我的认可,不好意思!

景嘉微(9.13)

  景嘉微的面试还是业余的。一天之内三面。每次面试都是两个面试官,二面还是一轮压力面。

一面(35min,9.23)

我的项目

  问的不具体,根本都是原理之类的,解释分明就好。

看你学过数据结构,自学的吗?刷了多少题?问个简略的吧

  本人学的。具体多少没算过吗,大略有 200 道左右吧。

  如何判断一个数是不是质数??真不会,忘了质数的概念,想了半天,面试官说,预计你对质数概念不理解,算了。

自旋锁和信号量说下

  答对了。

二叉树什么时候会进化?什么是均衡二叉树?

  不晓得什么时候会进化。均衡二叉树就是左右子树度的差值小于 1.

uboot 启动流程

  说了很多遍了。

Cache 一致性

  不晓得这个概念。然而我具体说了下读写 Cache 的一些留神问题,比方初始化的时候肯定要清空 Cache 之类的。

如何写一个字符设施驱动

  init 函数,exit 函数,file_operation 构造体之类的货色

uboot 启动为什么要敞开中断,MMU,DCACHE 之类的

  非必须敞开吧。uboot 的目标就是疏导内核启动,而且 uboot 启动的话只是把须要的关上了,其余非必须的都能够敞开。当然也能够关上。DCACHE 之类的必须要敞开,因为 SDRAM 没有初始化,可能会取到谬误的数据。

bin 文件和 elf 文件区别

  不分明。起初在本人总结的面试知识点中减少了这个内容。

什么时候用哈希?哈希抵触如何解决?

  对工夫要求比拟高,对占用内存空间大小要求不高。凋谢地址法,再哈希法。

二面(45min,9.23)

我的项目原理的介绍

写博客的目标

  之前也思考过这个问题,过后说了 4 点。1. 随笔的模式,不便本人回顾。2. 好的学习习惯 3. 意识了很多业内前辈。4. 习惯之后,保持每周输入。

看你写了很多奖项,好多是校级的,有其余的吗?

  有一个国家级的,研电赛全国三等奖。

我的项目难点

  巴拉巴拉。

还有各种针对自己的问题,总之就是压力面,始终否定你这个人

  你简历上写了这么多奖学金,你感觉你是你们四周最优良的吗?为什么?你和他人差在哪?为什么本科毕业不间接加入工作?为什么考研?本科期间都做了哪些事件了?有什么播种?你感觉你是最致力的吗?以前是不是没有致力?为什么在看 C primer plus?是根底不好吗?等等这类的问题。(这种问题从容沉着的如实答复就能够。不要让面试官感觉你人有问题)

三面(30min,9.23)

印象最粗浅的人

自我介绍

介绍我的项目

最胜利的我的项目

我的项目难点

如何克服和学习我的项目的难点

如果一笔订单须要你的下级审核,然而下级很忙,你会怎么办?

  如果这个客户是和咱们第一次交易并且工夫又很紧急,那么能够思考找上上一级领导。如果这个客户曾经和咱们有过屡次交易并且上级领导切实没工夫,那么我也能够审核。

  复盘; 反思了下,这里其实不该答复“本人也能够审核“这些话的。一般来讲,公司必定有应答措施的。依照公司的流程走就好了。

总结

  9.25 发来 Offer,国庆节后给回答。公司是在长沙,做显卡的,次要客户是部队。不是很想去,国庆节后下班第一天就给了景嘉微回答说不去。

全志科技(9.15)

一面(20min,9.23)

我的项目简略介绍

过程和线程区别

  问了很多遍了。

编程题:指针函数,函数的参数为int,返回值为字符指针

char *((*p)(int))

宏定义求最大数

​ #define  MAX(a,b) (a)>(b)?a:b

uboot 启动流程

  问了很多遍了。

二面(40min,9.26)

  一个酒店,和研发部总经理聊了聊受益匪浅。

为什么写博客?

  之前也思考过这个问题,过后说了 4 点。1. 随笔的模式,不便本人回顾。2. 好的学习习惯。3. 意识了很多业内前辈。4. 习惯之后,保持每周输入。

我的项目原理,五分钟给我讲明确

  边画图边讲。

为什么学 Linux?用的什么开发板?啥时候买的?多少钱买的?自学的吗?有人疏导吗?学了多久?

四周搞 Linux 的多不多?

操作系统会吗?计算机组成原理理解多少?

  理解一点,没有工夫去残缺的看。

为什么没有工夫残缺的看?

  白天忙导师安顿的事件,还要写论文,改论文,写专利等等,早晨才有工夫学习一些内容。过后紧接着又说尽管没工夫残缺的看,然而操作系统说根本的概念还是都了解的。

说下 MMU。什么是 MMU?为什么须要 MMU?前因后果讲清楚

  大略讲的是这个外面的一些内容:

  S3C2410 MMU(存储器治理单元)详述
  物理地址到虚拟地址的映射,为了跑大型程序,操作更多的地址

是虚拟地址到物理地址的映射,你搞反了。

紧接着又说,我最看重的是操作系统和计算机组成原理的把握水平,这些都是嵌入式的根底中的根底。

  这些都是放在我打算之中,不过我目前在看源码的框架。

先不要看源码,不懂操作系统和计算机组成原理,看源码会累死。咱们之前一个我的项目要批改内核中的对于调度的程序,我钻研过程调度这部分,钻研了两周多才批改完。所以,有工夫还是补下计算机根底。源码的内容别急着看。

  面试官的确很厉害。也和本人说了很多。所以接下来调整下策略思路,先看操作系统和计算机组成原理

在校期间,就要把根底打牢,好好看书。

  之前面试其余公司,面试官问的对于操作系统的一些内容能答上来,这里我有点收缩了,竟然和面试官说操作系统的基本概念都了解。一下就被面试官问倒了。所以,如果不是特地相熟,不要和面试官说我精通 XXX 之类的话,否则,必定会被面试官问到不会为止。吸取教训!

HR 面(20min 9.26)

  最初去另一个房间和 HR 聊了聊待遇和薪资,待遇个别,而且工资组成外面还有 20% 的绩效,高低浮动。不打算去。而且,因为之前全志也闹过裁员风波,所以试探性问了下 HR 试用期会裁多少人?HR 答复的是咱们并不规定具体的指标。我接着又补充说到,那么我是否能够了解为没有下限也没有上限呢?HR 说是的。所以,间接拒了。

  和 HR 聊完了,顺便问了下面试官的名字,HR 说这是他们 XX 部门的研发总监。和这个面试官聊天,的确学到了很多,受益匪浅!

小米(9.15)

一面(40min,9.21)

自我介绍

  首先是自我介绍,原本筹备的是三分钟的自我介绍,然而中途被面试官打断了,说面试工夫无限,简短一点,要不前面没有工夫写代码了。就介绍了下本人写博客的事件。接着面试官也很间接,上来就基础知识开始问。

过程和线程的区别

  答对了。

  过程是具备肯定独立性能的程序对于某个数据汇合上的一次运行流动,它是 零碎进行资源分配和调度的一个独立单位 。例如,用户运行本人的程序,零碎就创立一个过程,并为它 分配资源,包含各种表格、内存空间、磁盘空间、IO 设施等,而后该过程被放入到过程的就绪队列,过程调度程序选中它,为它调配 CPU 及其他相干资源,该过程就被运行起来。

  线程是过程的一个实体,是 CPU 调度和调配的根本单位,线程本人基本上不领有系统资源,只领有一些在运行中必不可少的资源(如程序计数器、一组寄存器和栈),然而,它能够与同属一个过程的其余的线程 共享过程所领有的全副资源

  在没有实现线程的操作系统中,过程既是资源分配的根本单位,又是调度的根本单位,它是零碎中并发执行的单元。而在实现了线程的操作系统中,过程是资源分配的根本单位而线程是调度的根本单位,是零碎中并发执行的单元。

  不全。面试官又揭示了。过程间通信形式有那些,也答复上了。管道,FIFO,信号,信号量,音讯队列,共享内存(最快),套接字。

僵尸过程听过吗

  没有。

static 和 volatile

  答对了。

  static 次要是扭转函数和变量的作用域。volatile 避免对寄存器进行优化,使得每条指令都要依照咱们写的进行运行

两个 Linux 操作系统之间应用什么命令进行文件的传递?

  我不晓得是什么命令,然而我能够说下我的想法,我感觉利用 HTTPS 协定能够进行传输。

不是命令,这是协定。

数据结构学过吗?说下你晓得的排序算法?

  在校没有学过,然而我本人私下学过。排序算法:快排,抉择排序,冒泡排序,插入排序,堆排序。

说下快排的过程,快排的工夫复杂度

  巴拉巴拉,也答对了。

手撕代码

  反转字符串中的单词 I am a teacher -> rehcaet a ma I

  很根底的问题,A 了进去。

最初反诘

  什么时候有后果?

不确定,一周当前吧。

总结

  有好多基础知识没打上来。次要集中在操作系统相干的概念上。的确不晓得,接下来要好好补充了!

二面 (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 如何发送一个数据?IIC 时序图画下。IIC 芯片有哪些?

  答复的还能够。

用户栈和内核栈是同一个区域吗?有什么区别?

  不是。用户栈和内核栈是两个独立的区域。内核栈保留的是内核态程序运行的时候相干寄存器信息,用户栈保留的是用户态的内容。

用户空间和内核空间的通信形式?

  1.API 函数,Copy_from_user,get_user 等。2.proc 文件系统 3.mmap 零碎调用 4. 应用文件

中断的响应执行流程?听过顶半部和底半部吗?讲讲

  cpu 承受中断 -> 保留中断上下文跳转到中断解决历程 -> 执行中断上半部 -> 执行中断下半部 -> 复原中断上下文。

  顶半部执行个别都是比拟紧急的工作,比方清中断。下半部执行的是一些不太紧急的工作,能够节俭中断解决的工夫。

写过那些驱动?讲下 LCD 驱动如何编写?

  巴拉巴拉,问了很多遍了。

手撕代码

  给定一个数组,找出和为 s 的数字。二分查找,A 了。

反诘

  如果有幸进公司,次要负责那些方面?

IO 驱动,音视频驱动,内核的优化移植都有。看个人兴趣和过往经验的匹配水平。

  多久出后果呢?

月底前应该会给

三面(10min,10.15)

家庭状况

冀望薪资

有没有女朋友?工作地点是北京还是深圳?

  北京。

总结

  发下 offer 曾经是 10.20 号了,太晚了,三方早曾经寄走了,综合思考,感觉性价比不是很高。如果冲着小米的平台去,的确还不错。其实心里有点小悔恨。不过也就这样了,注定与小米无缘。

中国长城科技团体(9.15)

我的项目

  15min。

你晓得的 Linux 指令有那些

  ls,ps,rm,cat,mv。

busybox 是什么?

  放大版的 unix 零碎常用命令工具箱。次要蕴含了一些罕用的 Linux 指令,环境等。

什么是根文件系统

  根文件系统上是内核启动时所挂载的第一个文件系统,内核代码映像文件保留在根文件系统中。

为什么写博客?

  之前答复过了,四点。

反诘

  这个岗位次要负责什么?

你的岗位是 Linux 零碎工程师,次要是负责操作系统的优化和移植。

总结

  9.25 号微信通知我面试通过了,问我是否签约,综合思考了下,回绝了,道歉!公司其实还不错,在长沙,一年保底 16 薪,包食宿,长沙人去蛮适宜的。

CEC 子公司 - 北京华大电子(9.15)

  面试官是两个人,一个 HR,一个 40 多岁的主管。没问很深的技术问题,次要问了我的项目和写博客的事件。他们次要做 WIFI 芯片和 SOC 的,更多的可能是应用层的开发工作。待遇给的还能够,然而感觉平台小了,拒了,道歉!

京信通信(9.16)

一面(10min,9.21)

  具体问了什么遗记了。然而都不难,很根底的。(有史以来最短面试,10 分钟就完了)

二面(15min,10.19)

  早上九点半进入腾讯会议,发现还不止一个人。几个面试者就轻易聊了几句。大家都不晓得接下来是技术面还是群面,还是 HR 面?提前也没有告诉面试的内容。起初进来一个女的说,大家能够急躁期待,有趣味能够一起听下,咱们挨个面。每个人大略 20min 左右。

  第一个人面试完,HR 让第二个人来,我看大家都没反馈,我就第二个了。

自我介绍

你做决定的过程是怎么样的?

offer 状况?冀望薪资?工作地点?

反诘

  大略多久会发 offer?多久之后谈判薪?

一周之内

总结

  感觉面试不是很正规,电话面面试官早退 20min,而且也没问几个技术问题,10min 就完了;一面和二面阵线拉的太长了,不晓得其他人有没有,反正我是这样。也可能是太菜了,前面才被捞起来的。10.23HR 打电话确认是否承受 offer,回绝了,道歉!

海格通信(9.27)

一面(20min,9.27)

  群面,五人一组围一圈,每个人做自我介绍,HR 会独自发问,大略内容就是对于哪里人,家庭,父母工作,对海格理解有多少等等。

二面(25min,9.27)

我的项目

你晓得的罕用 Linux 命令

  mv,ls,cat,ps,mkdir,touch,find。

IO 多路复用

  不晓得,然而我晓得 IO 管脚的复用,巴拉巴拉解释了下。

在 Linux 上编写过那些程序

  根本的外设驱动都写过,led,按键,lcd,Nand Flash 等。

程序的编译过程分为几局部

  预处理,编译,汇编,链接

什么是 4 字节对齐?为什么须要对齐?

  材料总结的有。

如何求一个构造体成员变量的地址

  正好前几天写了一个博客。

  内核中 container_of 宏的具体解释

函数指针和指针函数

  材料总结的有。

什么是野指针?如何防止?

  材料总结的有。

sizeof 和 strlen 区别?

  sizeof 是运算符,在程序编译时就曾经确定了;strlen 是函数,程序运行时能力计算。

int a[5] = {1,2,3,4,5},sizeof(a) = ?

  20。

疾速排序的思维?工夫复杂度?

  了解为打扑克整顿牌,O(nlogn)。

哈希表是什么?如何应用?

  答对了。

反诘

  如果有幸进入贵公司,次要负责哪方面?

负责调试和保护根本的外设驱动,配合硬件工程师进行新平台的开发。

  什么时候能够失去这轮面试的后果?

今天。

三面(10min,9.28)

  党委副书记面试,全程很放松,就是一般的聊天,自我介绍,哪里人?为什么抉择来北方读书?对于海格理解多少?如何对待加班?能承受加班吗?职业规划等?

四面(15min,9.28)

  大 boss 面试,如同是个总经理,自我介绍,介绍下我的项目,我的项目几个人?你负责那局部?除了这个我的项目研究生期间还有那些团队单干的我的项目?你是表演什么角色?你导师钻研那个方向的?为什么你和导师的钻研方向不一样?你感觉研究生期间导师对你的帮忙大不大?女朋友哪里的?做什么工作的?有思考过在广州定居吗?为什么?等等吧,还有些想不起来了。

总结

  整个面试感觉浓浓的国企风味,很看重人的综合素质,对技术要求感觉不是很高。9.29 约去谈薪,与其说是谈薪,不如说是间接通知你。没有 argue 的余地。对立打包价。回绝了,道歉!。

<div STYLE=”page-break-after: always;”></div>

简历被刷

oppo(8.23)

  不得不说,oppo 的简历卡的是真的严格。全是人工筛选。不止要看你的学校,还要看你的我的项目经验是否匹配。我这被刷了也很失常。

<div STYLE=”page-break-after: always;”></div>

口试 / 测评挂

海康威视(9.1)

 测评竟然挂了,很惋惜。

乐鑫(8.18)

  之前乐鑫的 HR 说,提前批投递不影响秋招。所以很早就投递了乐鑫科技。乐鑫是我第一家口试的公司。过后口试题目是三道编程题。巨难!比华为的口试题难度都大。而且,第一次用牛客的口试零碎,最根本的如何读取输入输出都不会,于是口试间接挂了。

  9.8 号找 HR 确认说,提前批挂掉的会主动推到正式批。然而我等到 9.19 号也没有收到口试。起初 HR 让我去官网看本人的简历的状态,结果显示人才池!正式批都没有口试就间接人才池了?什么操作啊。。说不影响有点假,其实还是有影响的。可能提前批口试挂掉的是不会有机会加入正式批的。(本人猜想)

CVTE(9.16)

  C 厂的口试挂的就很玄学了。过后对 C 厂还是抱有很大冀望的。口试题目中规中矩,大题也都 A 了进去。抉择填空做的正确率应该有 80%。然而最初口试莫名其妙挂了。我同学投研发岗的无一例外口试也都挂了。难道 100 分的题目,90 分及格线?当前做 C 厂口试题,大家要分外小心,尽量还是要高正确率!

  12.9 号,接到 CVTE HR 打来的电话,说在补录,约个工夫面试。手上没有三方了,回绝了。

<div STYLE=”page-break-after: always;”></div>

没音讯

寒武纪(9.3)

  9.16 号口试之后就没音讯了。三个大题,A 了 1.5 个。(其实这个公司也不太理解,看到了有岗位就投了,据说是 AI 四小龙的老大)

华为(9.10)

  8 月份华为在线上做专场宣讲,过后的宣讲会每个部门都做了介绍,给了微信群,我也加了几个群。加到群里后 HR 会被动加你好友,间接打语音电话解决你对于投递岗位的疑难,很是激情。每个部门的 HR 都会说咱们这里有很多 HC,倡议投递咱们部门。

  在抉择部门时,次要思考以下几个方面。鉴于往年的状况,华为的生产 BG 是不思考了,毕竟芯片断供,手机业务也大打折扣,很大可能是缩招的。无线部门,也不思考了。神终端,圣无线的名号不是吹的。而且,华为的无线部门问题要求也比拟高,10% 左右?(别的部门的 HR 说的)。最初思考智能车 BU 是新成立的,而且智能车 BU 的 HR 也极力推荐咱们投递。于是就投递了智能车 BU。

  投递之后,在网上搜寻对于这个部门的状况,看到了一条音讯,大略意思就是说,这个部门的 人数不会太多,要小而精。霎时感觉到有点被车 BU 的 HR 坑了。

  9.14 口试,大题 A 了第一道。前面两个没做。9.16 发的测评链接。9.19 问所投递部门的负责人说,第一批面试临时截止了,前面还可能会有 HC,名额不会太多,然而到了十月当前了。十月份再给 HR 发消息,HR 曾经不回复音讯了。相同,投递其余部门的同学,在 9.19-9.24 这周都安顿了面试。

  怎么说呢,怪本人投递晚了吧,而且加上华为往年局势缓和。过后次要思考,还没有筹备好,而且华为根本是一天完结三面。没有筹备好过来当炮灰也不值。所以投递有点晚。当初筹备好了,然而曾经错过了工夫节点,有点惋惜。

  华为技术面试的筹备和教训分享【齐全攻略,已签约】精
  各位大佬,求华为面试手撕代码
  华为这波操作当前,中兴可能成了最大赢家
  大半夜的睡不着谈谈华为秋招的认识。。

更多对于华为招聘的内容,能够去牛客网搜寻下。

  11.30 号,12.3 号下午,别离接到了华为 Cloud&AI 和消费者 BG 的 HR 打来的电话,问了下我的根本状况,让我持续投递简历,思考到曾经没有三方了,就回绝了。而且华为的人才池海了去了,这个工夫节点还在拉人面试,猜想可能是 HR 的 KPI 还没实现吧。

BOE(8.25 & 9.12)

  很奇怪,提前批投了没音讯,正式批也不给口试。太难了。

恩智浦(9.15)

  据说只招 211/985?

瑞芯微(9.17)

  挺想去这个公司的,然而也没音讯。

紫光展锐(9.18)

  次要是投递晚了。而且,很搞笑,只发了口试短信告诉口试,在口试当天却没有收到口试链接。起初问了 HR 说:不好意思,这是咱们第一次全网招聘,零碎 BUG 了,前面咱们会对立解决的。前面又发邮件问了几次 HR 什么时候安顿口试,回复也是很官网。太难了,错过了九月的最初一批口试。

  11.1 号早晨 12 点发短信让 11.2 号下午间接加入面试,思考到曾经没有三方协定了,回绝了。

联发科成都(9.18)

  投递晚了啊,联发科成都那边可能是不缺人了,始终没音讯。

小马智行(9.18)

  轻易投的,起初才晓得这个公司根本只招 985。

总结

  整个秋招还算是比较顺利的,尽管九月初的时候有段时间心态有点崩,然而及时调整过去了。感觉秋招也很戏剧性,六分运气,四分实力。运气好,和面试官聊的顺利,说不定还能拿到 sp,ssp。然而,也不能一味的去靠运气。机会总是留给有筹备的人,机会没有到来时,要认真筹备。当机会降临,咱们要好好把握。

  最初祝所有看到这篇文章的小伙伴,在秋招中都能够拿到心仪的 offer。

  养成习惯,先赞后看!如果感觉写的不错,欢送关注,点赞,在看,转发,谢谢!

如遇到排版错乱的问题,能够通过以下链接拜访我的 CSDN。

**CSDN:[CSDN 搜寻“嵌入式与 Linux 那些事”]

正文完
 0