嵌入式开发学习路线(25届校招学习) 嵌入式学习路线七年规划:从大一小白到校招大佬 (学习路线汇总)

news2024/11/16 2:30:00

嵌入式开发学习路线(25届校招可以参考)

嵌入式系统作为当前最热门且最有发展前途的IT应用领域之一,吸引了大量有志于从事该行业的学习者。为了系统地掌握嵌入式开发技能,以下是一条详细的学习路线,旨在帮助初学者逐步成长为专业的嵌入式开发工程师。

一、基础学习阶段

  1. Linux基础
    目标:掌握Linux的基本操作、基本服务配置及设计理念。
    学习内容:
    Linux系统安装与配置(推荐使用Ubuntu系统)。
    Shell编程基础,包括文件操作、用户管理、进程控制等。
    推荐书籍:《鸟哥的Linux私房菜-基础学习篇》。
    推荐视频:Linux学习建议、系统结构与终端控制台、文件相关命令等。
  2. C语言基础
    目标:精通C语言,特别是指针、内存管理、模块化编译等。
    学习内容:
    C语言基础语法、数据类型、控制结构、函数等。
    指针与数组、结构体、链表等数据结构。
    内存分配与管理、gcc、Makefile、GDB等工具使用。
    推荐书籍:《C程序设计语言》、《C语言核心技术》、《C和指针》。
    推荐视频:C语言入门系列、C语言提高篇等。
    二、进阶学习阶段
  3. Unix环境高级编程
    目标:深入理解Unix/Linux环境下的进程、线程、网络编程等。
    学习内容:
    进程、线程管理。
    文件I/O、文件锁、管道、消息队列等。
    Socket网络编程、TCP/IP协议。
    推荐书籍:《UNIX环境高级编程》、《TCP/IP详解》。
    推荐视频:UNIX网络开发系列。
  4. 嵌入式汇编与体系结构
    目标:掌握ARM体系结构及嵌入式汇编语言。
    学习内容:
    ARM处理器基础、指令集。
    嵌入式汇编语言编程。
    ARM开发板使用与电路原理图理解。
    推荐书籍:《ARM嵌入式系统开发—软件设计与优化》、《嵌入式Linux应用开发完全手册》。
    推荐视频:嵌入式开发入门经典教程系列、ARM体系结构与Bootloader开发等。
    三、嵌入式开发实践
  5. 嵌入式应用开发
    目标:能够基于ARM平台开发简单的嵌入式应用程序。
    学习内容:
    嵌入式Linux系统移植与配置。
    编写简单的嵌入式应用程序,如串口通信、LED控制等。
    实战案例:串口监听程序、图片浏览器、MP3播放器等。
  6. Linux内核与驱动开发
    目标:掌握Linux内核与驱动开发,成为嵌入式内核驱动级别的开发者。
    学习内容:
    Linux内核架构与工作原理。
    Linux设备驱动开发,包括字符设备、块设备、网络设备等。
    实战案例:GPIO驱动、RTC时钟驱动、LCD显示设备驱动等。
    推荐书籍:《深入理解Linux内核》、《Linux设备驱动程序》、《Linux内核设计与实现》。
    四、持续学习与提升
持续跟踪新技术:嵌入式技术日新月异,需要不断学习新技术、新工具。
参与项目实践:通过参与实际项目,提升解决问题的能力和团队协作能力。
深入内核源码:阅读Linux内核源码,深入理解其设计思想和实现方式。
通过以上学习路线,你将能够系统地掌握嵌入式开发所需的知识和技能,逐步成长为一名专业的嵌入式开发工程师。

嵌入式学习路线

现在各种所谓嵌入式学习路线一搜一大堆,给你列一大堆名词看着怪高大上,杂而宽泛,大部分还是各种培训机构圈钱用的。笔者钻研嵌入式七载,在菜鸟时候也曾迷失在这些垃圾文章里。而后幸得廖勇老师亲传,小有所成,看到这些回答下面迷茫的年轻学生,一如笔者当年模样。遂决定写一点真正有用的东西,讲讲全国电子信息类顶尖高校,专研嵌入式的教授是怎么传授的。笔者不会把视角局限在嵌入式专业课,而是带你们规划你的校园时光。

1.本科阶段
本科就是打基础,任何有志于嵌入式技术的都可以参加类似于机器人实验室的组织,入门就是学C语言,写51单片机。51单片机资料众多,笔者学的是郭天祥的51单片机。必须要买开发板,亲自手写其中实验,不要跑个例程就完事,学大概学半年多吧,各种外设都应该熟悉了,到可以使用IIC或者SPI协议操作一个外设模块的程度。

一定要参加一次蓝桥杯单片机竞赛或者电子设计竞赛,而且一定要报单人,就那点代码量还几个人一起,人都是有惰性的,只要人多了你一定会偷懒。

等到大三就要开始学习STM32了,要学会库函数版的编程风格,标准库和HAL库都可以,学习STM32的重点是开始要理解硬件了,多学学启动文件里面的东西,不要只跑起功能就拉倒了,我当时是学习野火的教程,很良心,授人以鱼不如授人以渔。相比正点原子的是垃圾,只会机械地让你调库,至于为什么这么做根本就不说,像极了培训机构赚快钱应付学员的嘴脸。毕业前应达到使用单片机完成一个小的电子设计项目的水平,画PCB、焊接、再到模块选型、驱动这个模块,实现完整功能。

笔者的毕设就是驱动了一个高精度AD转换模块,连接一个压力传感器,做了一个电子秤。不难,但很杂,一个人从头做到尾,让你对整嵌入式的硬件软件系统有一个整体认知。本科生达到STM32单片机裸板一个做小项目的水平已经合格,不管你用了什么模块,实现什么细节,做通一个其他的都是相似的,不需要像打卡一样把那些培训机构列的名词全学个皮毛,本科阶段最重要的是打好最核心知识的基础,不需要多么丰富的应用经验,关键是你能用出来哪怕只是你熟悉的那一个。

笔者前面说的全都是课外要完成的,课内成绩必须好!你说专业课都是些老旧知识,没错,但是,必须学好,因为能保研!每学期期末忙上1个半月,等大四上十月份左右就能确定保研资格,到时候你想学啥学啥。要记得学生阶段比较单纯,有付出定会有回报。课程其实很耗时间,还要参加社团活动,假期是最佳反超时间。笔者本科是通信工程,计算机专业课全是假期跟着慕课自学的,当时没有女朋友也没有后来那些荣誉,日子简单忙碌又充实。

还有一个忠告是这个写字一定要工整啊,笔者在卷面分上吃大亏了,什么马原、毛概、大物实验,这种水课就是看你卷面,这些课笔者就全70分,血亏。

给本科生的最后一个忠告是多参加兴趣类社团活动,大学重在多体验,这时期的朋友是最单纯且长久的友谊,社团的朋友可能更志同道合。恋爱有机会也一定要谈,做技术是为了更好的生活,生活避不开的是另一半,好好学学怎么恋爱也非常重要,严肃的不是开玩笑。希望你们回味大学生活是丰富多彩且美好的而不是只有学习只有卷。

本科的学习目标按重要程度排:保研、能用STM32做毕设、参加兴趣社团、谈恋爱。赶紧把游戏扔一边去,有那时间还不如打球谈恋爱。

2.硕士阶段
本科已经打好了单片机基础,硕士阶段要做的是从单片机到嵌入式系统的转变。硕士的时间很紧,一些不重要的课可以选择性放弃,笔者的无关课程基本是70左右,没必要非得卷那个奖学金,但是一定要选《高级计算机结构》这门课,对于深入理解硬件非常有帮助。

硕士阶段不同于本科,学硕有发论文硬性要求,嵌入式只是应用技术是比较难发学术论文的,而且老师还会给你们强行安排些商业项目,所以这四个任务也要挤时间来完成了,研二暑假就要开始找工作,所以说硕士时间很紧,但是要记得一分耕耘一分收获。

课下廖老师给我们设计了四个挑战任务。想简单些就以stm32为平台,如果单片机基础比较好就用Cortex-A系列单片机比如S5PV210为平台实现上述过程:

任务一:单片机裸板驱动,比如在裸板上点亮LED灯,通过汇编代码手动配置最底层的寄存器,完成时钟树、GPIO口的初始化。重点1:理解库函数是如何把软件硬件联系在一起的,好好去读《零死角玩转STM32》的第八九章。重点2:理解汇编语言操作寄存器的过程。重点3:理解启动文件。

有人会说,什么年代了还用汇编,直接c实现不更简单。我同意,但是真正想深入嵌入式就必须在汇编层面上去理解硬件,越深入你越会发现汇编的重要,启动文件可是纯汇编的。好好读《零死角玩转STM32》的十五十六十九章,教你启动文件是做什么、怎么做一个简单的系统boot,这些都是你后续嵌入式进阶的基础。正点原子那拼凑出来的辣鸡就不要看了,别问我咋知道的。

任务二:移植一款RTOS并在硬件平台通过两个任务(点灯任务,灭灯任务)实现LED的周期闪烁,我所移植的是UCOSII。重点1:使用汇编语言手工编写UCOSII与硬件平台的接口部分,理解硬件的模式切换、中断系统的运行机制,以及硬件软件如何协同处理由中断和OS调度引发的上下文切换。重点2:结合UCOSII的源代码彻底理解多任务并发编程的本质,理解多任务在OS内核中的组织方式,理解OS调度的本质……吃透够你彻底理解RTOS。这个任务是最重要的,细节请看我的其他文章。

任务三:在LINUX PC上使用MakeFille的方式完成任务2的源代码的交叉编译。现在很多工程师被IDE惯坏了,脱离IDE不会编译,而且完全不懂编译原理,这样很不专业。难点1:MakeFile语法以及整套交叉编译流程。难点2:理解什么是ELF可执行文件,并理解静态链接:预编译、编译、链接、装载的全过程。

对编译过程也是程序员的内功之一,强烈推荐俞甲子的《程序员的自我修养》,读懂静态链接就足够成为面试的亮点,懂动态链接更好但也更复杂,其实真正大工程动态链接会多一些。这种修养决定了嵌入式程序员把握大型程序能力的上限。难点3:理解链接文件。各个段的地址可不是随便安排就完事了。这个任务带领我们“惊鸿一瞥"了计算机技术中那些“以不变应万变”的能力中的一个。

任务四:在你的系统中使用一种数学算法,培养知识迁移的能力。你要知道软件只是一种实现手段,一个嵌入式软件程序员想有所发展必定要和某个特殊领域结合。我所做的是四轴飞行器项目,里面的算法是姿态解算算法和PID控制算法,都不算太难开源的也不少,重点在训练知识迁移的能力。

不得不说我数学真的不好,姿态解算里面那个互补滤波我也就懂个大概流程,里面式子为什么那样算那样互补基本不懂,很数学(从此放弃做科研),但是PID必须弄通透。在你的四轴飞行器中就会真正整合前面三个任务的知识,做出属于你的四轴飞行器之后,你必定获得强烈的成就感和嵌入式方向的底气。

注意,四个任务做完也是没碰LINUX的,廖老师经常给我们强调不要好高骛远,必须读懂RTOS才能去看LINUX,否则根本就是不得要领。即使是我们这些嵌入式系统的硕士,毕业时候不需要懂LINUX内核也足够成为校招大佬了,把这四个任务吃透,全国任一城市(北上广深杭、南京、成都)的嵌入式软件工程师、系统工程师、固件工程师面一个中一个,笔者后期基本面一个中一个,手握五个offer。

当然LINUX驱动开发肯定是上课学过的,OS学的好的话学那个很简单,嵌入式工程师默认字符设备驱动已经熟悉了,不需要懂网络设备。

本文规划重点为嵌入式主干知识,应用方面的技术不是说不重要,而是比较简单,各位在实践中用到了再学也不晚,不要被培训机构贩卖焦虑所迷惑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法:图片压缩算法【Z字行扫描】(Java实现)

要在Java中实现Z字形扫描,我们需要遍历一个给定的nn矩阵,并按照Z字形的顺序输出其元素。Z字形扫描的路径通常是从矩阵的左上角开始,沿着对角线方向交替向下和向上移动,直到遍历完整个矩阵。 下面是一个简单的Java实现示例&#xf…

不同vlan之间的通信方法

1.通过路由器的物理接口 1.给PC1,PC2配置IP地址,网关2.进入交换机配置vlan,交换机所有口都配置access口并绑定vlan3.配置路由器,进入路由器的两个接口配置网关IP和掩码缺点:成本高,每增加一个vlan就需要一个物理端口和…

【项目管理】项目管理办公室 --- PMO

项目管理办公室 PROJECT MANAGEMENT OFFICE 简称PMO 项目管理办公室Project Management Office,简称PMO 是现代企业管理中一个至关重要的组成部分,特别是在那些依赖项目驱动战略的企业中。 PMO的设立旨在提升项目管理的专业性和一致性,通过…

ctfshow-文件包含(web78-web88/web116-web117)

web78 <?phpif(isset($_GET[file])){$file $_GET[file];include($file); }else{highlight_file(__FILE__); } 判断是否存在file参数 如果存在 将包含这个参数值 文件 php://filter可以获取指定文件源码。当它与包含函数结合时&#xff0c;php://filter流会被当作php文件执…

智能生成ppt使用什么软件?免费生成软件大盘点

在快节奏的商务交流、生动有趣的课堂教育以及各类激情洋溢的演讲场合中&#xff0c;PPT&#xff08;PowerPoint Presentation&#xff09;无疑是我们不可或缺的信息传递利器。 然而&#xff0c;设计一份既视觉吸睛又能精准传达核心信息的PPT&#xff0c;往往需要耗费大量的时间…

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(1)

本文仅作笔记学习和分享&#xff0c;不用做任何商业用途 本文包括但不限于unity官方手册&#xff0c;unity唐老狮等教程知识&#xff0c;如有不足还请斧正​​ 事先声明:该工具我是跟唐老师教程来的&#xff0c;并非原创&#xff0c;仅作学习笔记交流 1.需求分析 最终目的就如…

从供货上游到下游消费者平台搭建 多商家供货供应链商城开发关键点

搭建一个多商家供货的供应链商城、从供货上游到下游消费者的综合供应链平台是一个复杂的事情。但这样的平台能高效地连接供应链的各个环节&#xff0c;还能保证信息的流畅传递和业务的高效运作。今天&#xff0c;商淘云为您分享从供货上游到下游消费者的平台搭建的4大关键点&am…

MLLM(二)| 阿里开源视频理解大模型:Qwen2-VL

2024年8月29日&#xff0c;阿里发布了 Qwen2-VL&#xff01;Qwen2-VL 是基于 Qwen2 的最新视觉语言大模型。与 Qwen-VL 相比&#xff0c;Qwen2-VL 具有以下能力&#xff1a; SoTA对各种分辨率和比例的图像的理解&#xff1a;Qwen2-VL在视觉理解基准上达到了最先进的性能&#…

Qt中使用DAG(有向无环图)

之前做的一个视觉检测项目&#xff0c;本来各个视觉检测工具之间是独立的&#xff0c;单独执行图像输入、得出结果&#xff0c;然后综合汇总结果&#xff0c;简单明了。 后来要求工具之间能存在依赖关系&#xff0c;也就是A工具的输出可以作为B工具的输入&#xff0c;这样就很麻…

【Android】ViewPager基本用法总结

文章目录 一、添加ViewPager控件二、构建适配器类三、在 MainActivity 中设置适配器示例一&#xff1a;图片切换适配器MainActivity 示例二&#xff1a;Fragment切换适配器FragmentMainActivity ViewPager 是 Android 中一个用于在同一屏幕上滑动不同页面&#xff08;通常是左右…

【C++】C++中的花式操作:lambda表达式、类成员初始化列表、三元运算符、运算符及其重载。。。

八、C中的花式操作&#xff1a;lambda表达式、构造函数初始化列表、三元运算符 10、lambda表达式 见mutable关键字&#xff1a;【C】C中的关键字&#xff1a;const、mutable、auto、new....-CSDN博客。 11、构造函数初始化列表 当我们编写一个类时&#xff0c;一般都要有一个…

鼠标指针美化 一大批鼠标指针特效 喜欢的快点收藏~!

鼠标指针美化 一大批鼠标指针特效 喜欢的快点收藏~&#xff01;鼠标指针美化&#xff0c;这个功能可能许多人都没用过&#xff0c;应该还有很多人都是用着系统默认的鼠标指针&#xff0c;我们今天给大家分享一个可以修改鼠标指针的工具&#xff0c;如果你也喜欢&#xff0c;那麻…

类比推理-错题集

001 解析 &#xff1a; 002

[Visual Stuidio 2022使用技巧]3.模板

本文主要介绍本人在使用vs2022开发WPF桌面程序时使用到的一些插件及配置。 语言&#xff1a;C# IDE&#xff1a;Microsoft Visual Studio Community 2022 框架&#xff1a;WPF&#xff0c;.net 8.0 一、工程模板 1.1 创建模板 编辑好模板代码&#xff0c;扩展及NuGet包之…

【2024全国大学生数学建模竞赛】E题 模型建立与求解(含代码与论文)

目录 一、问题重述 1.1 问题背景 1.2 问题回顾与分析 四、问题求解与分析 4.1 问题1求解与分析 4.1.1 问题1分析 4.1.2 问题1建模与求解 按照提交论文的格式进行撰写&#xff01;完整版请看文章最后&#xff01; 一、问题重述 1.1 问题背景 随着城市化进程的加快、机动…

mysql笔记3(数据库和表的基础操作)

文章目录 一、数据库的基础操作1. 显示所有的仓库(数据库)2. 创建数据库注意(命名规范)&#xff1a; 3. 删除数据库4. 查看创建数据库的SQL5. 创建数据库时跟随字符编码6. 修改数据库的字符编码 二、表的基础操作1. 引入表的思维2. 引用数据库3. 查看该数据库下面的表4. 创建表…

微信小程序webgl 显示图片

// wxml <view class"container"><!-- 加载地图容器 --><canvas type"webgl" id"testMap" style"width: 100%; height: 100%;" disable-scroll bindtouchstart"touchStart" bindtouchmove"touchMove&qu…

直播美颜SDK与主播美颜工具:实时美颜技术的深度解析

本篇文章&#xff0c;笔者将深入解析直播美颜SDK的核心技术与主播美颜工具的开发原理。 一、什么是直播美颜SDK&#xff1f; 通过集成美颜SDK&#xff0c;开发者可以在直播应用中快速实现脸部优化、滤镜添加、皮肤调整等功能&#xff0c;帮助主播在直播过程中实时呈现最佳状态…

linux线程cp模型,posix信号量,线程池,线程封装,单例模型,懒汉饿汉实现方式,自旋锁,读者写者模型

1.生产者消费者模型 前面的同步&#xff0c;我们并没有一个很好的场景来模拟同步&#xff0c;只是简单的将有序的现象输出出来&#xff1b;现在我们来讲解一个比较合理且常见的模型——生产者消费者模型&#xff1b; 1.1模型理解 什么是生产者消费者模型&#xff1a; 这个模…

书籍爱好者的福音:Spring Boot实现的个性化推荐

1 绪论 1.1研究背景 随着网络不断的普及发展&#xff0c;图书个性化推荐系统依靠网络技术的支持得到了快速的发展&#xff0c;首先要从学生的实际需求出发&#xff0c;通过了解学生的需求开发出具有针对性的首页、图书信息、好书推荐、留言反馈、个人中心、后台管理功能&#x…