半道转嵌入式开发适合吗?(从事十年的我建议不要,你会后悔的)

简介: 半道转嵌入式开发适合吗?(从事十年的我建议不要,你会后悔的)

嵌入式开发需要什么能力

要想成为一个优秀的嵌入式开发工程师,至少需要具体6种能力:


1.了解嵌入式硬件知识,包括硬件基础,构成,原理和接口技术等等。


2. 精通C语言程序设计,因为嵌入式就是靠C语言来开发应用,所以不懂C语言,一切 免谈。


3. 熟悉嵌入式系统知识,如时下比较流行的嵌入式linux系统,要熟悉它的内核代码 ,以及运行命令,使用方法等等。了解嵌入式产品研发的特点、所需要掌握的技术规范和 工作要点。


4. 拥有最基本的硬件和软件应用开发能力,比如需要明白如何进行应用开发,如何处 理好硬件和软件之间的兼容问题。


5. 具体良好的创意开发能力,这是成为优秀嵌入式开发工程师必备的条件,也是最重 要的,最有价值的。因为我们要不断的开发新的有创意的产品功能才能满足今天的消费者 的口味。所以有创意的开发能力也是最能体现一个优秀开发者能力所在。


6. 具备吃苦耐劳和不断学习的能力,作为一个嵌入式开发工程师一是要具有吃苦耐劳 的能力、毕竟软件开发是一个项目性很强的工作,再其次,优秀的工程师还需要有不断学 习的能力,软件行业的发展速度惊人,今天还引以为傲的开发技能和经验,二三年后或许 就会成为明日黄花,所以要求开发人员一定要具备不断学习接受新事物的能力。想要成为一个优秀的嵌入式开发工程师并非一早一夕的事,也是通过长期的学习积累 得。其实,目前这种优秀的嵌入式开发工程师非常少,这也是很多企业重金寻求的人才。就目前的嵌入式人才市场来看,更多的是初级的嵌入式开发人才,多是通过参加一定的嵌 入式培训后然后再在工作中不断的学习积累,一步步成长起来得。


嵌入式开发两条道路选择


第一条道路:硬件道路


第一步: pcb设计,一般为开发板的电路裁减和扩充,由开发板原理图为基础,画出PCB和封装库,设计自己的电路。


第二步: SOPC技术,一般为FPGA,CPLD开发,利用VHDL等硬件描述语言做专用芯片开发,写出自己的逻辑电路,基于ALTER或XILINUX的FPGA做开发。


第三步: SOC设计,分前端,后端实现,这是硬件设计的核心技术:芯片设计.能做到这步,已经不属于平凡的技术人员。


第一条道路:软件道路


第一步:bootloader的编写,修改, 通过这步熟悉ARM硬件结构,学习ARM汇编语言,阅读ARM的芯片手册,感觉就是像操作51单片机一样操作ARM芯片.这一步最好的两个参考资料就是:芯片手册和bootloader源代码。


第二步:系统移植, 驱动开发, 我只做过linux方向,所以也推荐学习嵌入式linux系统,作为标准体系,他开源而且可以获得大量学习资料.操作系统是整个计算机科学的核心,熟悉 kernel实属不易,kernel, 驱动开发的学习,没有什么捷径,只有多读代码,多写代码,熟悉系统API.. understanding linux kernel , linux device driver 都是不可多得的好书,值得一看。


第三步:应用程序的编写,各种GUI的移植,qt , minigui都被大量采用,两种思想都类似,熟悉一种就可以。

软件道路中,驱动,系统应该是最深入的部分,不是短时间可以掌握的,需要有勇气和耐心。嵌入式开发,软硬结合,因为硬件条件比PC差很多,所以肯定会遇见不少问题,因此实践的勇气更加重要.有问题就解决问题,无数次的实验,也许是解决问题的必由之路。


建议做嵌入式开发吗?


作为工作近十年的嵌入式工程师而言,如果需要买房结婚,家里没矿。那么,建议别搞嵌入式,嵌入式真心待遇不行,真的待遇不行。别看什么所谓大牛啥的,互联网软件金融算法之类开发,如果你做到那个层次,薪水是同等嵌入式的一倍或者几倍,另外,有几个做到那个层次的?还有就是,现在芯片公司把驱动甚至底层封装的越来越好了,比如海思的,厂家只需要把demo板裁剪裁剪,然后应用玩出花就好了,这样子和嵌入式已经关系不大了。最后,现在,嵌入式应用,尤其出名c的开发机会,已经被qt,c++挤占了很多。总而言之,嵌入式,尤其纯c的,薪水,工作机会越来越少,和差了。


哪怎么打破这些困扰呢?


接下来听我一一道来。


主要从


  • 操作系统原理专题
  • 进程管理专题
  • 内存管理专题
  • 网络协议栈专题
  • 设备驱动专题
  • 内核组件专题
  • 文件系统专题
  • 内核项目实战专题
  • 等等。。。

全方面系统全面的讲解底层原理开发技术:

操作系统原理/汇编专题

进程管理专题

内存管理专题

网络协议栈专题


设备驱动专题

内核组件专题

文件系统专题

内核项目实战专题

由于篇幅有限,这里以图片的形式给大家展示一部分。相信它会给大家带来很多收获的,可以进【 865977150】群领取或者系统课程学习咨询QQ微信【 2207032995】,备注一下(玩转Linux内核)

学习直通车:Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈-学习视频教程-腾讯课堂

适合于

  • Linux 内核优化、内存管理 ,内核开发岗位、定制化自己OS
  • 深入系统内核研究、网络安全逆向分析
  • 提升自己能力,为了更好做应用层开发提供核心依据
  • 跳槽面试大厂(腾讯、华为、中兴、中微、中芯等等)
  • 从事业务开发多年,对底层原理理解不够深入的在职工程师
  • 从事嵌入式方向开发,想转入内核开发的在职工程师
  • 从事Qt/MFC等桌面开发的,薪资多年涨幅不大的在职工程师
  • 从事非开发岗位(算法岗,运维岗,测试岗),想转内核开发岗位的在职工程师

相关文章
|
9月前
|
SQL 数据库 数据安全/隐私保护
SQL查询优化:where子句的高效使用方式
总的来说,如果将 SQL 查询比喻为一个乐团的演奏,WHERE 子句就像是独奏者,它需要各位乐手的协助,才能发挥出最美妙的音乐。计划好你的演奏,挑选对的音符,在最适当的时间开始演奏,那么,你可以更高效地运用 SQL 查询,更好地把握数据的篇章。
205 19
|
负载均衡 Java Nacos
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
微服务介绍、SpringCloud、服务拆分和远程调用、Eureka注册中心、Ribbon负载均衡、Nacos注册中心
SpringCloud基础1——远程调用、Eureka,Nacos注册中心、Ribbon负载均衡
|
9月前
|
数据采集 Web App开发 调度
Headless Chrome 优化:减少内存占用与提速技巧
在数据驱动的时代,爬虫技术至关重要。本文聚焦 Headless Chrome 优化方案,解决传统爬虫内存占用高、效率低等问题。通过无界面模式、代理 IP等配置,显著降低资源消耗并提升速度。实际案例中,该方案用于采集汽车点评数据,性能提升明显:内存占用降低 30%-50%,页面加载提速 40%-60%。结合技术架构图与演化树,全面解析爬虫技术演进,助力高效数据采集。
551 0
Headless Chrome 优化:减少内存占用与提速技巧
|
JavaScript 关系型数据库 MySQL
关于 MySQL 重复读导致的重复插入问题
本文介绍了在开发业务接口时遇到的MySQL重复读导致的数据重复插入问题,并通过伪代码示例详细解析了问题产生的原因。文章提出了四种解决方案:使用共享锁、控制事务并发执行、强制当前读以及调整隔离级别为READ COMMITTED,旨在确保读取最新数据,避免数据重复插入。
449 3
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
968 4
|
10月前
|
供应链 搜索推荐 数据挖掘
数据爬取对电商运营有何帮助?
数据爬取在电商运营中至关重要,助力商家了解市场动态、优化策略、提升用户体验。具体表现为:市场分析与竞争情报,如商品信息、促销活动、用户评价等;用户行为分析,构建用户画像,分析留存与流失;商品管理与优化,如定价策略、个性化推荐、库存管理;营销与推广,精准营销、社交媒体分析、广告优化;用户体验优化,如网站性能、客户服务;供应链管理,供应商评估、物流优化。通过数据爬取,商家能提高竞争力和盈利能力,实现商业目标。
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
401 1
|
存储 机器学习/深度学习 人工智能
迎接AI挑战:构建新一代AI网络基础设施
随着人工智能(AI)技术的飞速发展,AI模型的复杂度和数据规模急剧增加,对基础设施的需求提出了前所未有的挑战。传统的互联网基础设施已难以满足AI技术对高性能计算、大规模数据处理和低延迟网络的需求,从而催生了新一代AI基础设施的诞生。本文旨在深入探讨新一代AI基础设施的特点、优势,并介绍其在混合云环境下的应用方案。
|
SQL 数据可视化 大数据
JimuReport 积木报表 v1.7.52 版本发布,免费的低代码报表
一款免费的数据可视化报表工具,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!
378 0
|
运维 安全 Devops
什么是安全左移,如何实现安全左移
传统软件开发面临安全挑战,如意识缺失、代码漏洞、第三方组件风险、配置管理问题及应对新型攻击能力不足。为改善现状,需采取安全左移策略,将安全措施提前至开发早期,与SDL结合,确保安全贯穿SDLC始终。安全左移面临计划制定、责任转移、工具选择等挑战,需通过规划、培训和选用合适工具应对。DevSecOps模式进一步将安全融入DevOps,提升开发效率和软件安全性,实现开发、安全和运维的协同。SDL与DevSecOps相辅相成,前者注重安全过程,后者强调安全文化与自动化。
908 1
什么是安全左移,如何实现安全左移