首页 / 嵌入式软件
#

嵌入式软件

#
239689次浏览 3268人互动
此刻你想和大家分享什么
热门 最新
嵌入式软件开发学习路线
一、学习方向选择以下仅代表笔者个人看法:嵌入式软件总体分为linux和mcu方向。这两个方向的应用场景不同,导致无法在同一份工作中既做Linux,又做mcu。因此,如果在时间不充裕的情况下,大家根据自身情况挑一个方向去学习就够了。mcu方向(也称为嵌入式软硬件方向)更专注于软硬件结合,也就是说除了软件部分之外,还需要懂硬件。如果在软件和硬件分的没那么开的公司,作为一名嵌入式软件工程师,不仅要自己写代码,还需要自己画原理图,画PCB。在软硬件分开的情况下,基本要求是要能看的懂电路原理图,这也是大多数转行者很容易忽视的点。linux方向由于岗位较少,通常需要驱动/内核/应用一起做,仅有部分公司或者原厂才会放出单一的岗位出来,如单独的linux驱动岗位,内核/应用岗位等,这个方向比较偏软件一点。但由于岗位较少,门槛也就稍微高一些。二、mcu方向学习路线0基础的同学建议按照步骤走(再次重申是个人看法,如果你觉得不对,就不要看下去了):1、掌握基本电路知识,重点主要为电容、电感及滤波电路,还有一个傅立叶变换(可以看刘陈版本的电路分析基础这本书或者是b站进行学习)2、模电(主要掌握二极管、稳压管、三极管、mos管、放大电路、运算放大器、反馈电路);笔者个人推荐的书籍是黄丽亚的第三版模拟电子技术基础,学完前7章就够了。当然,也可以选择其他版本的,看个人喜好。3、数电(主要掌握进制转换,反码补码、逻辑电路、触发器、寄存器、AD转换及存储器知识),推荐书籍为华中科技大学的电子技术基础(数字部分)。上述三步就是为了打牢硬件基础,能看懂电路原理图。4、接下来学习一款EDA工具的使用,不要再去学嘉立创了!企业里边只有三大EDA工具:Altium Designer/Candence/Pads,任意挑一个去学习。个人比较推荐学习AD,可以在b站上看凡亿教育的课程进行学习。5、学习C语言,个人还是推荐谭浩强红色的那本高校书籍,当然也有其他优秀课程,大家可以自行选择。C语言的学习是一个持续加深的过程,前期先掌握基础就行,需要学习的是前1-7章,第8章的指针变量/数组指针,第9章的结构体/共用体/枚举/typedef。6、学习stm32,不要再浪费时间去学51老古董了。个人推荐正点原子,资料很充足,按照资料学基本就够了。同时一定要学标准库,前期不要把精力浪费在学hal库上,hal库等后边自己看一下就行。学习方法是买一款开发板(F1/F4都可以),跟着资料一步一步学,掌握基本常用外设如串口/GPIO/定时器/中断/PWM/输入捕获/LCD/ADC/IIC/SPI/485/CAN/IAP等。ps:学习过程中不要只看,一定要做!看懂了不等于你掌握了,毕竟实践是检验真理的唯一标准!7、做完上述步骤,恭喜你已经打好基础了,进一步继续深入学习c语言的提高部分,把前边说的第8章的二维指针/数组指针/指针数组等等指针的高阶用法掌握,以及动态内存分配函数等;还有第9章的链表;此处笔者推荐看人民出版社的c和指针一书,进行c语言的加深学习。这本书需要掌握如编译的底层原理/指针的高阶用法/递归函数/单向或者双向链表/预处理器等。8、完成c语言的进阶学习之后,开始学习stm32内核,这里推荐看CM3权威指南这本资料,主要看前9章内容,至少要知道寄存器组/PendSV/SVC/systick定时器等,为学习RTOS打好基础。9、开始学习RTOS,自行挑选一款rtos进行学习(ucos/freertos/rt-thread),笔者是同时学了ucos和free,个人比较推荐从ucos学起(也是正点原子的资料),毕竟资料比较多,底层原理讲的比较细,比如任哲老师的嵌入式实时操作系统原理及应用就是以ucosii进行讲解的。当然大家也可以选择其他的,这个阶段建议还是多看资料,少看课。因此笔者并没有什么推荐的课程。ps:到这一步要开始做32和rtos的项目了,做完项目以后就可以去投实习/秋招,这个程度已经够找工作了。10、学习常用数据结构:数组/堆/栈/链表/树/哈希表/队列,图不要求掌握,树学二叉搜索树就够,在弄清楚基本数据结构以后再去力扣上进行刷题,比如要知道栈不仅可以用数组实现,还可以用链表实现。ps:这一步想进大厂必不可少,毕竟面试都是要手撕的!11、学习RTOS源码,弄清楚任务调度/任务通信/时钟及延时/内存管理等。为什么要先去学习数据结构再回来看rtos源码,就是因为其源码中包含大量链表和队列的使用,如freertos中列表与列表项中涉及到双向链表的插入和删除操作,这样才能看得懂源码。ps:到这一步已经够卷了,笔者觉得不用担心找不到工作了。接下来说的东西可以入职以后再进行学习12、其他通用中间件的学习,如网络协议(mqtt/lwip协议等),选一个进行学习。还有图形库lvgl/ewmin等,也是选择一个进行学习。学习方法也是找资料,我依然用的是正点原子。13、学习代码版本管理工具git的使用,需要掌握常用命令,如克隆,提交,上传以及创建分支等。学习方法笔者推荐是看官网。三、linux方向学习路线linux方向笔者还在摸索中,因此就简单说一下1、先学会使用linux系统,学会Linux基本命令使用,学习方法推荐b站尚硅谷。2、学习gcc、make工具链的使用及makefile脚本。3、学习c++,主要掌握面向对象特性,如类和对象/继承/重载/多态/封装/虚函数/智能指针/动态内存等。推荐书籍为c++ primer第五版以及菜鸟编程网站。4、Linux应用编程,如进程/线程、文件io、网络编程等。推荐资料--正点原子。5、学习QT开发,推荐资料正点原子。6、Linux下的裸机开发(推荐买板子学习,如imx6ull;掌握常用外设以及CortexA处理器架构),推荐资料--正点原子或者韦东山。ps:学习linux驱动需要有电路原理图能力。7、Linux驱动开发(结束裸奔,上操作系统了, 包括移植uboot/linux内核/根文件系统等、掌握Linux三大类驱动,包括字符设备/块设备/网络设备驱动),同时需要掌握GDB调试。可以看到嵌入式两个方向的内容都非常多,因此大家选一个学,找工作足够了。本次讲解就到这里,感谢观看!
点赞 评论 收藏
分享
2024-11-13 17:24
已编辑
门头沟学院 嵌入式软件开发
双非硕的秋招记录
双非硕,嵌入式软件,因为是广东人所以主要投递珠三角这边的机会,没有精细统计,大概投了一百多家。不一一列举。以下公司有实际流程推进:1.奥比中光   机器人嵌软,两轮技术面都过了,终面拖到十月底线下,有事情想推迟结果直接挂。2.信锐技术   C++    OC,两轮技术面,一面是模板题面,二面主要聊项目,HR面聊了一个小时,第一个OC的offer3.珠海派诺    嵌软    OC,一论技术面一轮HR面,流程推进的很快4.德赛西威    嵌软    OC,面完OS岗后没下文,主动联系后重新安排面试,面试官说前面技术聊过了都没问题但是OS没需求了换岗mcu,聊了会天就过了5.长园深瑞    驱动岗  一面技术面过了,二面HR面也不太明白看中什么,可能是薪资要高了,没后续。6.敦泰电子    嵌软    挂了,线下走完两面,hr面直言嵌软优先本科生7.泰凌微       嵌软    一面技术面挂,早上9点面试没睡醒,答的乱七八糟,突然来一段英语展示尬住了,草草结尾8.法雷奥       嵌软    OC,一面技术面后隔了一个月谈薪9.传音          器件驱动    挂,一面技术早早过了,二面主管面隔了一个月,谜之操作,但是主管面感觉还不错,hr说前面有更优秀的在考虑,感觉是学历过不去,不过隔了一个月也是心理有预期的了10.中海达    嵌软驱动   OC,面试闹乌龙,hr分配了做应用的面我,声明不做应用后换了做驱动的面试,两三天走完两轮技术面后OC11.乐动机器人  嵌软   一面后没后续,面试问题都答上来了,反问贵司产品市场占比,回答是给小米、美的提供解决方案产品(我理解是约等于贴牌了),表现得意向性不高12.创维数字   嵌软    KPI面,一面技术面,面试官是秋招遇到过最好的面试官了,体验感拉满,问题也都回答上来了,面试官评价基础扎实,项目经验也丰富。但是没后续,KPI。13.cvte   Linux驱动   拿到实习资格,一面技术面,问答包括手撕都非常流畅,hr面也很快就过了,拿到实习资格但有事耽搁还没去体验。14.汇川   嵌软    泡池子(没机会了)  国庆后开始推流程,一面技术面,二面hr面,隔了一个多星期之后才终面,终面隔了5天开始泡池子,主动联系hr,得到回复是可能匹配度不高之类,猜测学历问题,一面评价基础扎实,终面评价我在项目中的主动性等等相对正面,秋招的大厂遗憾,等了许久还是没能如愿。15.全志   嵌软     OC,11月开始推流程,一周走完三面,隔周OC,三面准备不充分被狠狠拷打了,最后能OC属于意外之喜了。16.华为车BU  嵌软   泡池子,靠本科竞赛侥幸免试了笔试和技术一面,技术二面一上来就直接手撕(简单题)+做一套选择题,全是C++,八股不行做的稀烂(目测错了40%),主管面聊聊天后,1145和25h顺利入池。入池给秋招留下印记叭,不奢求泡出来了,毕竟不是目标院校,体验一下线下速通就够了。17.xx微(实习转正),意外收获,感恩给我秋招的底气。18.点名批评!安克创新   嵌软   一面面试官离谱到家了,详情请看帖子记录,懒得再吐槽了,就算是自己倒霉叭。秋招按下暂停键,希望焦虑不安也能按下暂停键。
找个好工作6:不以他人之得视为己之失,尽力为之就够了,至少大部分没在技术面趴下也算是一点慰籍叭
点赞 评论 收藏
分享
06-29 17:05
已编辑
东南大学 数字IC前端设计
两个月能极限转嵌软么
欣兰:不是哥们,你东南✌🏻,你转啥啊,FPGA/IC虽说烂透了,但也不至于东南找不到工作,我山大鼠鼠耶搞FPGA的,去年投FPGA和IC居多也拿了不少offer,你怕啥?
点赞 评论 收藏
分享
烤点老白薯:这种东西到时候公众号搜索都有的
点赞 评论 收藏
分享
oppo暑期底软凉经
bg:双九水货timeline:3月10号投递—4月2号一面—4月13号二面一面内容:上来介绍项目穿插一点八股,问的很浅,你负责哪些部分?进程与线程的区别?在项目中怎么实现互斥锁的?自旋锁的原理,长时间会产生什么影响?内联函数和宏定义?你是怎么实现项目中的多线程的?有没有遇到哪些问题?tcp部分是你做的吗?volatile你用在哪些部分上?arm基础架构有了解吗?DMA驱动内容。由于问的比较简单,基本上都回答上来了,然而泡了快一周的池子才给我约到二面,同时看到小🍠上已经有很多佬已经签约了,感觉这个岗位没有多少的hc。二面内容:一开始就是问你作为组长是怎么协调工作的,在项目中你觉得什么最让你有成就感。(本来以为就是聊聊天,没想到是我噩梦的开始),由于他是做优化的,对我项目实时性的部分比较感兴趣,问我是怎么优化实时性的,回答:在Linux内核加上preempt- RT补丁,追问为什么加入补丁之后就会让实时性有所提升?回答:中断线程化。然后问我这个内核补丁是怎么实现中断线程化的?这里没说清楚,支支吾吾说半天,然后说自己忘掉了。最后问了下看到我项目中有DMA,如果在进行数据搬运的时候CPU干预了会怎么办,我一开始没理解意思,后来回答可能会导致总线竞争和时延。然后就是反问。二面完基本当天就挂了总结:OPPO的面试体验还是比较好的,但楼主太菜了没把握住为数不多的机会,主要还是在项目上有些细节问题没有把握住,只知道要这么做,没考虑为什么要这么做,还有就是,一定要把话题往你擅长的方向引,不要说些不熟悉的东西。下周还有两家面试,希望能够早点接个offer
查看14道真题和解析
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客网在线编程
牛客网题解
牛客企业服务