大家好,我的秋招已经告一段落了,写下一些总结,记录下这三个月的面试经历,希望能帮助到后面找工作的伙伴们。
背景:双非一本 本科。
大三暑期实习:拿到了OPPO、MTK、京东等offer,最后去了本分厂实习了三个多月,在其中有输出,也有成长。
秋招提前批、正式批:因为只想在广深工作,所以秋招只投递公司共20家,目前拿到了其中10家公司的offer,还有2家等结果。
被挂简历的企业:(华为、英特尔、tplink、autox)。
投递后没有消息的:(小马、tcl、寒武纪、vivo)。
获得公司offer的有:大疆(sp 签约~)、Arm china、小米、荣耀、联发科、美团、紫光展锐、全志科技、星宸科技、科大讯飞、CVTE、诺瓦科技。
我在大一的时候加入了一个老师的实验室,在里面开始玩玩stm32单片机,实验室是做飞控项目的。在大一到大二的时候基本都在这里面度过,也学到了很多嵌入式的相关知识。
大二疫情期间开始学习RTOS、QT,也陆续自己做过一些小项目。加入了一个的学生创业团队,开始打一些比赛,挑战杯、、互联网+、ican等。
大三开始基本就不打比赛了,继续学习嵌入式相关的内容,跟着韦东山老大哥的课程学习了linux的应用以及驱动方面的内容,也根据这些知识做了一个电子量产工具的项目。
春招实习投了几个厂:OPPO、联发科、京东、阿里、网易、CVTE等。
其中拿到了OPPO、联发科、京东的offer。
最后在oppo的穿戴软件部门实习了三个月的时间,在其中的工作内容主要是跟OPPO WATCH2智能手表相关,上班状态基本是双休,工作日偶尔加班(因为我是实习生)。用到的技能有RTOS、LVGL、C、python等。
接下来就是面试的记录总结啦,由于当初比较懒,基本上都是以记录题目为主,所以大部分题目没有写下自己的答案。
1.为什么不留在oppo?
2.说下中断和轮询
3.平时学嵌入式有看什么书
4.介绍电视线 balabala 两种工作的情况
5.问我 更倾向于哪种
6.音频 视频 外设的驱动
7.框架性回答一个嵌入式系统启动到结束的过程
8.反问
1.说说实习三个月的感受
2.switch_context的底层原理 (freertos)
讲了下切换的场景,pendsv函数的实现,switch_context里面关于pcb_current指针的逻辑等。
3.实习做的偏应用层,为什么要学习freertos呢
4.面试官讲讲电视线的情况,业务做得好可能要两年,成为专家要四年。
5.有学过linux/安卓吗 学过linux 写过一些驱动
6.这些驱动是在开发板上写的还是在pc上模拟的?
7.有什么想问我
联发科提前批的面试给我的感觉是比较简单,面试氛围比较轻松。二面的时候面试官问了一个freertos的问题后,我回答得较好,然后直接就说后面不想怎么问了,后面也是第一个谈薪的offer。
hr面后过两天就发意向书了,九月份谈薪的时候开的跟mtk差不多,拒掉后hr再提薪了一次,后再拒。不过面试的体验还是很好的!
主要考察第二个参数:
属性对象主要包括是否绑定、是否分离、
堆栈地址、堆栈大小、优先级。默认的属性为非绑定、非分离、缺省的堆栈、与父进程同样级别的优先级。
Linux系统的三种调度策略: 一、SCHED_OTHER:分时调度策略(Linux线程默认的调度策略)。
二、SCHED_FIFO:实时调度策略,先到先服务。该策略简单的说就是一旦线程占用CPU则一直运行,一直运行直到有更高优先级任务到达或自己放弃。
三、SCHED_RR:实时调度策略,时间片轮转。给每个线程增加了一个时间片限制,当时间片用完后,系统将把该线程置于队列末尾。放在队列尾保证了所有具有相同优先级的RR任务的调度公平。
进入异常步骤: 1. 处理器在当前堆栈上把xPSR、PC、LR、r12、r3~r0八个寄存器自动依次入栈。 2.
读取向量表(如果是复位中断,更新SP值) 3. 根据向量表更新PC值 4. 加载新PC处的指令(2、3、4步与1步同时进行) 5.
更新LR为EXC_RETURN(EXC_RETURN表示退出异常后返回的模式及使用的堆栈)。 退出异常步骤: 1.
根据EXC_RETURN指示的堆栈,弹出进入中断时被压栈的8个寄存器。 2.
从刚出栈的IPSR寄存器[8:0]位检测恢复到那个异常(此时为嵌套中断中),若为0则恢复到线程模式。 3.
根据EXC_RETURN,选择使用相应SP。
这里应该是想问栈帧的变化
全局的初始化为0 局部变量未知
软件断点在X86系统中就是指令INT 3,它的二进制代码opcode是0xCC。当程序执行到INT
3指令时,会引发软件中断。操作系统的INT
3中断处理器会寻找注册在该进程上的调试处理程序。从而像Windbg和VS等等调试器就有了上下其手的机会。
17. Mmap的使用 了解页表么
dji的一面问得比较多比较深入,后面两面就感觉比较水了,三面类似于hr面。面试官级别很高,是一个dji机器学习团队的leader,压力随之而来,所以面起来有点磕磕碰碰的。10.23hr电话谈薪 sp,思考了两天后决定拒掉arm中国,签约大疆,去追逐自己的梦想hhh,总而言之,希望自己能够在dji学有所成!
荣耀的面试体验总体来说一般,技术类问题也没问很多,综合面的女面试官在面试的时候还在嚼口香糖,有点不是很礼貌,另外公司加班氛围特别重,所以对荣耀并没有太多的兴趣。
面试体验还不错,两轮面试的面试官都比较有耐心,二面面试官对实习做的东西比较感兴趣以及认可,但因为紫光是交叉面试,最后都是扔到池子里等人捞,所以最后没有适合的部门捞就没后续了。
cvte面试通过后,还需要去实习七天才发offer,我没去,所以没有拿到有具体薪资的offer。也算是一次证明自己的过程吧,毕竟是实习的时候第一家面试的公司,当初被拒绝,现在也回拒一次,扯平!
科大讯飞的面试给我的感觉,就是面试官时间比较紧张,不能跟我进行过多的交流,所以问的问题比较少,但是面试过程中也能感受到被尊重,给面试体验打个合格分数吧,最后也是果断的拒了。
lsmod 查看已经安装好的模块, 也可以查看/proc/modules文件的内容.
实际上,lsmod读命令就是通过查看/proc/modules的内容来显示模块信息的. modinfo 显示模块信息 modprobe
不需要指定路径,它会到默认路径下寻找模块。 rmmod 卸载模块,但是内核会认为卸载模块不安全,可以添加命令强制卸载。 depmod
检查系统中模块之间的依赖关系,并把依赖关系信息存于/lib/modules/2.6.18-1.2798/modules.dep中。
insmod 加载模块,需要指定完整的路径和模块名字。
我们一般需要64个0或1的组合就可以找到内存中所有的地址,而64个0或1的组合,就是64个位,也就是8个字节的大小,因此,我们只需要8个字节就可以找到所有的数据。所以,在64位的计算机中,指针占8个字节。同理,在32位的计算机中,指针占4个字节。
当时讲的跟这里差不多https://blog.csdn.net/jasonchen_gbd/article/details/79462064
答:共同点就是: 都为了分配存储空间, 它们返回的是 void *
类型,也就是说如果我们要为int或者其他类型的数据分配空间必须显式强制转换; 不同点是:
malloc一个形参,因此如果是数组,必须由我们计算需要的字节总数作为形参传递
用malloc只分配空间不初始化,也就是依然保留着这段内存里的数据, calloc 2个形参 ,因此如果是数组,需要传递个数和数据类型
而calloc则进行了初始化,calloc分配的空间全部初始化为0,这样就避免了可能的一些数据错误。
答:这样,宏被展开后,上面的调用语句才会保留初始的语义。do能确保大括号里的逻辑能被执行,而while(0)能确保该逻辑只被执行一次,就像没有循环语句一样。
总结:在Linux和其它代码库里的,很多宏实现都使用do/while(0)来包裹他们的逻辑,这样不管在调用代码中怎么使用分号和大括号,而该宏总能确保其行为是一致的。
过程跟这里差不多
https://blog.csdn.net/ylyuanlu/article/details/18947951
四轮面试官体验都非常不错。唯一的遗憾就是openday当天没有去深圳现场看看,面试过程中感受到arm对技术的要求还是比较高的,对arm架构的问题问得也比较深入,薪资也很有竞争力,在所有offer中是第二高的。是一轮体验相当好的面试,虽然最后没去,但在这里也祝arm china越来越好 !
诺瓦深圳的面试难度偏向简单,深圳base的规模较小,而且只有12薪,开的base还算可以,但是各方面还是比大厂差了一些,面试体验还是不错的!
对于全志的感觉就是,这是一家不错的公司,网上被骂的声音较少,然后就是校招流程有些慢,也没有提前批。开的薪资也算中规中矩。
参考链接:https://www.cnblogs.com/zpcoding/p/10808969.html
对小米的印象就是,提前批投得慢,后面到正式批才捞我,最后也是顺利通过,开的价格也比较有诚意,sp最高档,但是相比其他手机厂和arm、大疆就低了不少,毕竟小米工作强度也低一些。面试体验以及流程的推进上还是体验不错的。
面试过程中能够感受到美团的面试官对技术是有一定要求的,两轮面试时间也花费了不少时间,可惜美团的加班氛围让我心生敬畏,并且无人配送的base在北京,所以表示了强烈的留在深圳的意向。估计大概率不发offer了。
以上就是我个人的成长经历的介绍,以及秋招的面试经历,希望能对大家有所帮助!
给后来的小伙伴的建议就是:
1.秋招开始得越早越好,多投递自己喜欢的企业,提前批尽量不要错过。
2.大三的小伙伴最好在大三暑期能够有一份不错的大厂实习经历,这样就算不考虑转正,也能在秋招中增加了很多argue的筹码。
3.不要让自己卡在笔试上,leetcode刷给两百道题足以应付大部分笔面试中的算法题了,这里推荐先刷剑指offer的经典题,再刷些别的。
4.嵌入式的学习方面,时间充裕的话,理想的路线我觉得是从mcu->RTOS->linux。
最后:
如果这篇文章对您有帮助的话,可以点个赞加关注,我将会持续更新嵌入式软件相关的知识和学习笔记,希望大家也能同样喜欢。