首页 / 嵌入式软件开发
#

嵌入式软件开发

#
250213次浏览 3429人互动
此刻你想和大家分享什么
热门 最新
工作好难找(大四应届生春招简历)
点赞 评论 收藏
分享
详细说一下嵌入式软件学习方向
最近经常遇到粉丝私信,或者是1v1答疑的时候。都在问嵌入式学习方向的问题,不知道要走哪个方向?到底要不要学数模电?等等。之前在笔记--嵌入式软件学习路线(完整版),已经分享过了,没想到还是有粉丝朋友不是很清楚,因此本期再说详细一点。首先是方向问题:总体来讲,我个人认为嵌入式就两大方向,一个mcu+rtos,一个是linux。不要再说什么电机控制方向,wifi、蓝牙物联网方向等等,这些都是行业专精方向。什么叫做行业专精方向,就是你把基础学好以后,再根据不同的行业,学对应的行业知识。那基础是什么?基础就是mcu、rtos、linux都属于基础,至少我自己是这么理解的。因此,如果你是校招或者是刚入行的社招同志,把基础学好就足够找一份工作了。剩下的行业专精知识,去公司再学也不迟。理解清楚这一点后,再来看具体选择哪个方向。还是那句话,如果你时间比较多(什么叫做时间多,我个人认为要么大二开始,要么研一开始),我个人建议你mcu和linux都学,这样选择的机会更多一点。如果你时间不够,那你就二者选其一。如果你选mcu方向,行业内通常叫软硬件方向,就是硬件和软件你都要会的意思。那么这个方向多多少少会接触到硬件的,因此我建议你要有一定硬件基础。如果你以后想深耕该方向,那硬件就不止是要会基础知识了。综上:选择这个方向,我个人认为是一定要学模电和数电的。那在此处,也还是有粉丝朋友问我,模电和数电要全部学完吗?之前笔记就分享过,前期刚开始你不用全部学完,但模电的二极管、三极管、mos管、比较器、放大器这种基础你要会吧,电子元器件总要认得全吧,电容电感的作用总要了解吧。核心一句话,最低要求--看懂原理图!对于数电,最基础的进制转换要会吧,比如10的16进制你要知道是0xA等等。触发器、寄存器总要了解一下是什么吧,AD转换总要了解一下吧,有哪些存储器如ram和rom要了解吧。这个地方又有粉丝有问题了,需要一上来就学模数电吗?怎么学?学不进去咋办?对于这类问题,我个人建议是如果你觉得枯燥,那是因为你还没用到这个知识。因此,你可以先去学习stm32的点灯,那点灯的时候到底是输出一个低电平还是一个高电平呢?如果你搞不清楚,说明你不知道二极管的单向导电性,那你就回过头去看相关知识,书籍或者视频都可以(书籍和视频我学习路线完整版那篇笔记有说过,这里不再多加说明)。以这种先发现问题,再解决问题的方式去学习,就不会学不下去了,同时也会学的更加深刻,毕竟学习最怕的就是学了不用。此外,第二个建议是你可以直接去b站搜怎么看懂电路原理图,当你去听别人分析的时候,你不懂这是为啥?那是为啥?这个时候,你就知道自己应该去看书了,这样的学习方式也可以。那么上述关于mcu方向以及模数电该不该学?怎么学的问题就讲完了。多补充一点的是,如果已经在mcu方向拿完offer的校招同学,我个人建议你继续往linux方向学。原因是,等你进了公司,你会发现面试的时候,面的是mcu方向的,进来以后给你分到linux方向了。这只是有可能,也是一些特例。比如我自己就是这样,面的mcu,现在去在linux平台上干SoC。下边继续说一下第二个方向--Linux。linux方向相较而言,基本不碰硬件。比如博主现在硬件都没碰过,跑板子都是远程连接跑的,更别说原理图了。因此,如果你不想碰硬件,又想吃嵌入式这口饭,那建议往linux方向学习。在linux方向里边,驱动和应用都要学,并且个人建议先从应用方向学起。具体来说,个人建议按照以下顺序:学习c++-->学习linux环境基本操作-->学习gcc/make工具链-->学习linux应用(I/O、线程进程、网络编程、QT等)-->linux驱动(uboot/kernel/rootfs/gdb调试/三大设备驱动等),更加具体的学习路线以后再发,本期讲不完。本次讲解就到这里,有需要Linux驱动、Linux应用开发指南、Freertos开发手册、STM32开发指南、开源rtos项目、嵌入式软件八股文合集等资料的同学,可私信我领取    。
点赞 评论 收藏
分享
暑期实习投递总结
鼠鼠3月份开始投暑期实习,5月底就结束了,今天做一下全部的总结,也算是和大家作作参考。基本投的是嵌入式软件开发,有少数的投的电机控制工程师,大概进面的比例是1/3,好多公司投了过后没有任何消息,基本打水漂,最后只拿美的和华为两个offer。下面是按照进面的顺序排序,我只列了进入面试的几个公司。1. 美的,电机控制工程师。一共三面,一面AI面,二面技术面,三面主管面,非常简单,点击就送。2.地平线,嵌入式系统软件开发实习生(MCU)。其实我没有学过操作系统,当时投递都没想过我会进面,很神奇,哈哈。最后当然是一面挂,具体面试中问了很多关于操作系统的,比如死锁之类的,当时只能抓耳挠腮。最后手撕是判断链表是否成环,acm模式。3.乐鑫科技,嵌入式软件开发工程师(驱动/芯片支持)。一面是技术面,有英文的自我介绍和项目介绍,然后就是手撕,用C语言对变量进行位操作来达成面试官的要求,一共有三个题目,最后有一个手撕是反转链表,蛮简单。后面敲打了1个多小时项目,面试官对我好像挺满意。二面是HR面,就问一下个人的基本情况。三面是主管面,也是技术面,针对我的项目问了一个多小时,但是问的和第一面完全不一样,不是针对我项目里面做的东西来问,而是对我的项目中的技术点进行发散,比如我在一个新平台上移植编码器协议,他问编码器用的485电路是怎么设计的,这些电阻为什么要这么取,当然这算比较简单的问题了,三面最后手撕让我用ARM的两个gpio来模拟芯片如何去获取编码器的数据(我从来没想过会让我手撕这玩意,我这玩意的代码是移植过来的,源代码几千行),最后的结果就是手撕没完全撕出来,三面挂了。不过我还是很推荐乐鑫科技的,面试官的态度都非常好,你不会的也会给你进行提醒,虽然一面和三面都差不多有两个小时,但是体验蛮好。4.荣耀,电机驱动工程师。这个笔试我都不知道我是怎么过的,那些笔试全是硬件知识,我不是科班的,按照我自己理解作答了,居然还过了笔试。面试的时候知道这个部门是荣耀的新部门,他们是做机器人的,具体做的是电机驱动器硬件方向,但是我只想做电机控制软件,硬件实在不是我的强项,最后一面就挂了。5.中兴,硬件开发工程师。这个我也不知道怎么进面试的,但是面试过程我觉得我回答得还蛮好,但是面试完了一直没给我发消息,也没发感谢信。6.华为,嵌入式软件开发实习生。4月9号第一批参加的笔试,本来有一个部门给我打电话让我4月29号晚上面试,不久又给我打电话说改成5月6号晚上面试,但是又说具体时间按照邮件为准,直到面试那天早上我都没收到邮件,我才去找另外一个部门的HR,这个哥们比较靠谱,帮我重新推的进度,后面一面还是很顺利,问了一下笔试里面的那几个题目是什么思路,还有几个常规的八股:(1)BFS和DFS的区别是什么?(2)数组和链表的区别是什么?(3)排序算法有哪些?各自的时间复杂度和空间复杂度有哪些?手撕是一个简单题,有效的括号,但是要写acm模式。二面的话,主要是问一下个人的基本情况和性格。最后也是成功地拿到offer。不过话说真的很遵循1145定律和25小时,不知道为啥要做这样一个定时操作。7. 联发科,嵌入式开发实习生(connectivity方向),拒面。8.海康威视,海康微影-嵌入式开发实习生,拒面。这里面最想去的还是乐鑫和华为,面试的过程中面试官人都挺好,面试体验不错,但是很可惜的就是乐鑫没拿到offer,很心痛(当然不是为了它实习有450一天)。其实基本上看有啥就投啥,实习的时候嵌入式虽然开的厂不少,但是实习是真难进,秋招应该就会好很多了。暑期实习投递完美撒花。
查看4道真题和解析
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务