【唠唠嵌入式】__嵌入式只是一个技术领域,不是一个行业!

2023-11-05 21:52

本文主要是介绍【唠唠嵌入式】__嵌入式只是一个技术领域,不是一个行业!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

阶段1

大一到大三这个阶段我与大多数学生相同:

关于如何学习嵌入式软件开发:

① 学习51单片机

② 开始查资料看书

③ 开始学习STM32

④ 开始增强 C 语言

⑤ 认真研读 OS 方面的书

⑥ 自己仿照 ucos 写一个 stm32 上的实时 os 出来

⑦ 进军 LINUX

⑧ 其它的什么 SPI,IIC,什么 DMA,都只是技能问题,只要知识学的好,技能想咋点就咋点

阶段2

阶段3

阶段4

(* ̄︶ ̄)创作不易!期待你们的 点赞、收藏和评论喔。 


前言

分享一篇我读过的帖子!

阶段1

大一到大三这个阶段我与大多数学生相同:

学习本专业知识(EE专业),

学习嵌入式软件开发需要的计算机课程(汇编原理,计算机组成原理,操作系统,C语言等),

学习嵌入式项目(来源于实验室项目,自己想到的项目以及各种比赛)。

关于如何学习嵌入式软件开发:

① 学习51单片机

这个阶段你只需要跟着郭天翔的视频去学,只要求实现功能,不求甚解。

但建议能够提出问题,比如“为什么往IO控制寄存器写入特定值能点亮LED灯?”

“IO口的电路结构是什么样子的?”

“什么是上拉下拉,灌电流拉电流?”,

这一阶段主要是熟悉单片机的使用,并且在使用中思考发现问题,还能熟悉一些基本概念。

② 开始查资料看书

看模拟电路数字电路等等,开始去弄明白1中所提出的问题。这时候问题主要集中在电路方面。

③ 开始学习STM32

随便买个板子,看原子的书跟着一步步去做。

这时候你会遇到很多计算机方面的问题,这时候一边学习教程,一边学习:微机原理,编译原理,操作系统。

你要弄清楚 ARM 架构,弄明白 CPU 如何取指,译码,执行,知道地址总线,控制总线,数据总线如何工作。

要弄明白你编译各个阶段产生的各个文件是什么,什么是分散加载,什么是重定位,什么是代码段,什么是数据段,等等。

弄明白 CPU 如何启动,程序镜像在内存中如何布局。

要知道中断的原理,以及现场保护等等。最后你了解了各个知识点之后,转向 GCC 开发 STM32,这时候你如果知识掌握得不错,你应该可以很快地学会编写链接器脚本并且明白每一条语句所代表的含义。

④ 开始增强 C 语言

深入挖掘C语言的各个死角。

最好可以做到当你写下一条语句的时候知道编译器会如何处理。

还需要数据结构和软件工程,建议最好还要学习一下设计模式。

开始学习养成良好的代码风格,开始思考代码的结构。

可以说设计模式如果能学好,在往后学习 LINUX 内核时大有裨益。

你会发现 LINUX 的输入子系统有点像职责链模式,会发现 ASOC 音频系统有点像模板方法模式。

私以为,如果能在两个以上不同方面考察同一种编程思想,你会得到更加深刻的理解,更能领会其精华。

⑤ 认真研读 OS 方面的书

各个知识点都要弄明白,进程是什么,程序是什么,线程是什么,竞争死锁优先级反转,虚拟地址空间物理地址空间,用户空间内核空间等等。

开始学习 ucos,这个没什么可说的,如果在 2 中能熟练掌握各种知识点,知道 CPU 如何中断如何保护恢复现场,那么读ucos 的源码时候,在原理上就不会有什么疑惑。

如果能在 4 中养成把握代码整体结构的能力并且学习好数据结构和基本的算法,读源码就没有什么障碍。

一旦原理弄通了,源码也能读懂,那么吃透 ucos 就是顺理成章的事情。

⑥ 自己仿照 ucos 写一个 stm32 上的实时 os 出来

⑦ 进军 LINUX

学习 LINUX 的基本使用,看赵炯那本内核剖析,啃 LINUX 内核设计与实现,把握总体的内核架构。

之后可以学习驱动,看建议陈学松老师的书,弄明白基本的驱动架构和如何编写简单的驱动,认真对待,这里强调一下设备驱动模型。

最后啃 LINUX 内核源码情景分析,上下两册用心读,这里着重强调一下内核中的 VFS 部分。

之后就是看宋宝华老师的书,进一步学习驱动开发。

最后,看内核源码看内核源码看内核源码。

⑧ 其它的什么 SPI,IIC,什么 DMA,都只是技能问题,只要知识学的好,技能想咋点就咋点

阶段2

大三到研究生入学前这个阶段我在工作与考研之间无比纠结,并在此期间无数次常思考嵌入式开发到底是什么,如何把嵌入式开发做好,以后该选择怎样的一条职业道路。

为此,像很多人一样,在知乎上像做嵌入式开发的前辈们咨询过多次。

在这个阶段,我学习了 Linux 驱动开发,并渐渐认识到,嵌入式开发是一个比较偏软件的岗位(我认为大多数学生做的工作都是嵌入式软件开发,而不是硬件开发),

应该深入学习计算机体系结构的知识,而不是把那些无聊的嵌入式相关项目翻来覆去的做(尤其少参加乱七八糟的比赛)。

最终,我选择了读研,想站的再高一点看这件事。

 

阶段3

研一进入研究生阶段(2018),当大家都火急火燎的加入 AI 的阵营时,我依然对嵌入式爱的深沉。

选课时,我选择了嵌入式实时操作系统,计算体系结构相关的课程,还看了很多相关的书籍,依然每周保持嵌入式 Linux 的学习。

时不与我,明明选择了做底层的导师,结果导师转做深度学习了,还好是做终端+AI相关的方向,也不算完全偏离嵌入式,这让人多少有点欣慰(毕竟我还是放不下嵌入式的)。

在这个阶段,由于接触了不少的人和事,我越来越认识到,嵌入式只是一个平台,切勿把嵌入式看作一个具体的岗位,无论硬件还是软件。

因此,我对这个岗位以及行业就业现状有了更进一步的认识。

阶段4

研二到研三在这个阶段,我对狭义嵌入式(驱动,应用开发)完全释怀,

我认为许多人喜欢的嵌入式并不是驱动或者应用等开发,而是对底层系统的一种好奇心与掌控时的快感

与其说喜欢嵌入式,还不如说喜欢的是计算机体系结构。

因此,只要是涉及到硬件的软件开发,我都喜欢,我也将其均定义为嵌入式。

因为嵌入式软件开发就是建立在底层语言,计算机组成原理,操作系统等知识上的一种软件开发,

如果你想将嵌入式开发做好,你就得学好这几门课程 ,如果你学好了这几门课程,底层软件开发工作的岗位你应该都能胜任。

因此,又何必将嵌入式开发狭义的划到驱动开发,XX协议开发之类的呢?

最终,这个阶段我毅然放弃了 Linux 驱动的学习,投入了 Python 深度学习的怀抱中。

我不再关注我到底做的是不是嵌入式开发,只关注和嵌入式平台有没有关系。

我研究的是如何把一个深度学习模型部署到嵌入式平台上去。

有人可能会疑问,这和嵌入式开发有什么关系?为什么没有关系呢?在嵌入式平台上用 C 语言编写神经网络模型的前向推理,这不是把我们的C语言和组成原理的知识发挥出来了吗?

当图像处理程序性能不足时,查看生成的汇编程序,当汇编效率不高时,将 C 语言替换为我们自己写的汇编代码,这还不够嵌入式吗?

其实,当我们把思路放宽后,嵌入式就不再是某一个具体的岗位了,

它有可能是 AI 算子工程师,AI编译器开发工程师,FPGA加速工程师,高性能工程师等等。

这些岗位需要的技能与嵌入式工程师极为相似,年薪却最低 30W 起。

为什么?很简单,供需关系决定价格!嵌入式早已江河日下,但 嵌入式+某一风口 就能迈向高薪之路,这个道理在任何技术领域都是通用的。

2018年-2021年,嵌入式+AI=高薪,未来嵌入式+XX也可以。

至于未来的风口是什么,就要靠我们自己去探索了。只要保证我们自己有核心的知识储备,再学习一下风口相关的技术,立马就能咸鱼翻身。

在视野拓宽后,我去了 2 家大公司实习,后续我陆续收到了很多公司的offer。

里面既有纯算法(计算机视觉)的岗位(50-60W),也有异构计算的岗位(45-55W),也有AI芯片工具链相关的岗位(45W-50W)。


(* ̄︶ ̄)创作不易!期待你们的 点赞收藏评论喔。 

本文来源网络,免费分享知识,版权归原作者所有。如涉及作品版权问题,请联系我进行删除!

这篇关于【唠唠嵌入式】__嵌入式只是一个技术领域,不是一个行业!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/352722

相关文章

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

系统架构设计师: 信息安全技术

简简单单 Online zuozuo: 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo 简简单单 Online zuozuo :本心、输入输出、结果 简简单单 Online zuozuo : 文章目录 系统架构设计师: 信息安全技术前言信息安全的基本要素:信息安全的范围:安全措施的目标:访问控制技术要素:访问控制包括:等保

嵌入式Openharmony系统构建与启动详解

大家好,今天主要给大家分享一下,如何构建Openharmony子系统以及系统的启动过程分解。 第一:OpenHarmony系统构建      首先熟悉一下,构建系统是一种自动化处理工具的集合,通过将源代码文件进行一系列处理,最终生成和用户可以使用的目标文件。这里的目标文件包括静态链接库文件、动态链接库文件、可执行文件、脚本文件、配置文件等。      我们在编写hellowor

嵌入式方向的毕业生,找工作很迷茫

一个应届硕士生的问题: 虽然我明白想成为技术大牛需要日积月累的磨练,但我总感觉自己学习方法或者哪些方面有问题,时间一天天过去,自己也每天不停学习,但总感觉自己没有想象中那样进步,总感觉找不到一个很清晰的学习规划……眼看 9 月份就要参加秋招了,我想毕业了去大城市磨练几年,涨涨见识,拓开眼界多学点东西。但是感觉自己的实力还是很不够,内心慌得不行,总怕浪费了这人生唯一的校招机会,当然我也明白,毕业

前端技术(七)——less 教程

一、less简介 1. less是什么? less是一种动态样式语言,属于css预处理器的范畴,它扩展了CSS语言,增加了变量、Mixin、函数等特性,使CSS 更易维护和扩展LESS 既可以在 客户端 上运行 ,也可以借助Node.js在服务端运行。 less的中文官网:https://lesscss.cn/ 2. less编译工具 koala 官网 http://koala-app.