嵌入式学习心得

目录

一、基础电路和工具的认识

二、嵌入式等级划分

三、什么是嵌入式

四、嵌入式硬件方向

五、嵌入式硬件方向

六、基本的硬件原理

七、数据结构与算法

八、学习内容与建议

九、总结


一、基础电路和工具的认识

学习嵌入式,避免不了跟硬件打交道,最好能具备一定的模电数电的基础,作为初学者,只需要学会电阻,电容,二极管,三级管,mos管等常用器件的工作原理,及常见基础电路的原理图就可以了,如果你不打算从事硬件开发工作,不需要花太多精力将这两门课完全弄懂,遇到不懂的电路,器件原理直接进行百度,单点突破即可。工具方面要学会示波器,万用表等基本硬件测试工具以及电烙铁焊接技术就可以了。

二、嵌入式等级划分

嵌入式的技能等级分为初级、中级和高级;但从工作内容上可以先分为两个方向:软件和硬件。在本文中,我们将探讨嵌入式软件工程师的学习路径,包括技能等级的划分和各方向的学习重点,以及如何根据个人的兴趣和职业规划来选择合适的学习路径。

三、什么是嵌入式

嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统。

国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。

从应用对象上加以定义来说,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。嵌入式系统作为装置或设备的一部分,它是一个控制程序存储在ROM中的嵌入式处理器控制板。

事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

四、嵌入式硬件方向

嵌入式硬件工程师主要工作职责是为产品设计硬件电路原理图,设计硬件PCB板,选择合适的元器件,焊接调试硬件电路板,保证硬件电路板的可靠性、稳定性和抗干扰能力。

因为现在集成电路发展迅速,大部分集成电路厂商都会提供参考电路,所以硬件电路原理图的设计相对来说比较简单,硬件工程师工作的含金量主要体现在产品的可靠性和稳定性设计、以及电磁兼容设计,这才是硬件设计工程师的含金量所在。

要成为一个资深的嵌入式工程师相当难,一方面要有非常扎实的理论知识,同时也要有相当的那种大型的、高频CPU、多层PCB板的设计经验。

嵌入式硬件工程师要学的课程主要有模拟电路设计、数字电路设计、电磁波理论等。熟悉常用的放大电路、滤波电路、电源电路设计和分析。

五、嵌入式硬件方向

嵌入式软件工程师的职责主要是根据产品的功能需求设计好软件,让硬件工作起来。

嵌入式电子产品硬件部分,大部分都是相同的,核心的都是由CPU、RAM和FLASH 几大部分组成,而软件就千差万别了。产品的具体功能都是由软件来实现的,一般来讲一个产品的实现,软件设计的工作量是硬件设计的4 ~ 5倍。

所以一般情况下,一个公司的软件工程师数量是硬件硬件工程师的4~5倍,嵌入式软件工程师需求比硬件工程师大很多,同时跟硬件工程师相比,嵌入式软件工程师学起来相对容易些,所以这里我重点和大家谈一下嵌入式软件工程的学习路线。

六、基本的硬件原理

嵌入式肯定要和硬件打交道的。如果做嵌入式的应用层的话,可能和硬件接触的少一点。但是很多企业在面试的时候,也会问一些基本的硬件知识。

比如,我同学在面试联发科的C++工程师的时候,就问到了他很多关于硬件的知识(中断是什么,轮询是什么,二者有什么区别,一个基本嵌入式系统有什么构成等),所以说硬件知识知道越多越好,就算做应用层,一些最基本的也要知道。

如果是打算做嵌入式底层的话,对于硬件知识的掌握要求就比较高了。比如,LCD是如何显示的,IIC协议/SPI协议是什么,如何收发数据,不同设备对于IIC的速度有什么要求,IIC协议上拉电阻一般是多少等等。只有明白了硬件原理,在看芯片手册的时候才能明白如何去配置各个寄存器。

此外,常用的设备仪器的使用能掌握就更好了,和硬件工程师扯皮的时候会用到。比如,万用表,示波器,逻辑分析仪等。不会也没关系,这部分不是必须的。

七、数据结构与算法

这部分是程序员的必修课。在各大厂的秋招春招中,笔试面试都是必考的。常见的数据结构如链表,二叉树,堆,队列,常见排序算法及其改进(快排,归并,冒泡,插入)等都是要掌握的。如果是为了找工作,这部分内容有很多是要能达到手写的目的。(相关内容见我整理的嵌入式软件工程师笔试面试指南 )

虽然嵌入式对于数据结构与算法的要求不像传统互联网那么高,而且,这些数据结构在以后的工作中不一定可以用到,但是一些基本的我们还是要知道的。

像Linux内核中就用到了很多的链表,二叉树等。掌握这部分内容对于我们以后跳槽,深入研究操作系统都有很大的帮助。

八、学习内容与建议

Bootloader的工作流程、UBOOT的编译、裁剪与移植、Linux内核的编译、裁剪与移植,根文件系统的构建、BootLoader、内核和根文件系统的烧写。
重点驱动框架如:字符设备驱动、块设备驱动、LCD设备驱动、触摸屏设备驱动,总线设备驱动模型,输入子系统模型等。
书籍:《Linux设备驱动开发详解》《Linux设备驱动程序》

对照视频一点一点学习的过程中,刚开始第一遍看的话会有很多地方不明白,不要紧。如果在查阅了一些资料后还是不明白,可以先往后放放,不用深究。内核的许多东西一旦深究起来,越陷越深。
作为初学者,学习驱动开发主要学习驱动的框架(比如,输入子系统模型常用的一个函数input_attach_handler()这个函数,刚开始我们只需要知道他是用来匹配dev设备和驱动软件就可以,暂时可以不用知道这个函数内部是如何实现的)。有一定基础之后,可以再去深究其中的某个点,思考他们为什么这么写。

九、总结

在嵌入式工程师的成长道路上,我们需要的不仅仅是技术的积累和深化,更需要一个开放和探索的心态。正如稚晖君所言:

我们不能局限于自己的专业领域,而应该积极探索和学习新的技术和领域。同时,也要学会正确地利用各种资源和工具,提高我们解决问题的能力。我们所追求的不仅仅是技能的掌握,更是一种以问题为导向的学习方式。我们要学会在实践中不断寻找问题,然后再通过自学来寻找解决问题的方法和答案。只有这样,我们才能在嵌入式的世界里不断进步和成长,最终成为一名真正的专家。

  • 13
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕小阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值