找回密码
 立即注册
Qt开源社区 门户 查看内容

对于学生或者初学者,嵌入式行业的软硬件区分,以及入门工作是什么呢?

2019-9-29 13:05| 发布者: admin| 查看: 649| 评论: 0

摘要: 置顶/星标公众号,不错过每一条重要消息!首先普及下嵌入式的概念:嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统;国内普 ...

置顶/星标公众号,不错过每一条重要消息!



首先普及下嵌入式的概念:
嵌入式即嵌入式系统,IEEE(美国电气和电子工程师协会)对其定义是用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统;国内普遍认同的嵌入式系统定义是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统;从应用对象上加以定义来说,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。

嵌入式系统作为装置或设备的一部分,它是一个控制程序存储在ROM中的嵌入式处理器控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。 — 来自百度百科





很多同学在学校的时候经常参加电子类比赛,这类比赛一般都会带一个嵌入式的名字,导致大家一说是做什么的就是嵌入式,从此嵌入式这个单词涵盖了几乎所有电子类设计。

大一统的好处当然是就业的选择比较多,不过物极必反,选择太多的结果就是没有选择,临近毕业才意识到不知道该找什么类型的工作,这时候还说要找嵌入式就有点尴尬了。

然后就对学生或者初学者大致普及下怎么选择入门工作?

首先说明嵌入式涵盖的方向非常多,从单片机设计,linux开发,操作系统设计,以及这几点涉及的业务开发,往大点说确实可以把电子行业都包括。

咱们先把工作分为两类,软件和硬件,这两个我都做过就分开说下。

软件:
嵌入式的软件开发使用的主要语言是C/C++,其中C语言是比较通用的语言,可以这么说“C语言是嵌入式开发的80%的难度”,当然这里边还包含C语言写的一些算法和逻辑。至于C语言比较深入的学习过程可以看我之前写的C语言教程系列。

当然既然是嵌入式,软件也是有平台的,这就要求我们掌握一些常见的开发平台,具体也可以说是哪款芯片,单片机比较常见的就是51,32等(都是核心,各种单片机其实就是基于核心开发的),设计的开发一般就是医疗电子,仪器仪表,简单的可以直接裸机,复杂的一些需要简单的操作系统,比如ucos,freertos等,使用操作系统是衡量单片机熟练程度的一个标准。

为什么这么说呢?这个问题被争论了很久,既然说到这,也是绕不过去的就说说。

最重要的一点就是操作系统可以大大减少开发周期,熟练的使用操作系统对于有些项目甚至都不需要考虑任务之间的逻辑,直接把任务一分大家一写就好了(适合分工也是使用操作系统的重要优点)

有些大神一般都认为这样不利于提升能力,离开平台就是渣,说实话,说这话不知道是什么想法,我想说的是,对于工作而言,完成比完美重要,利用操作系统显然更适合快速完成。还有就是逻辑其实写好了就是操作系统的思想,这就是操作系统诞生的过程(这块以后单说,细节太多)

大公司的嵌入式软件岗位一般都是指在操作系统之上开发应用或算法的岗位,我目前的岗位也可以算是这个范畴。

关于具体的岗位问题还有很多细节,可以具体问题具体分析,欢迎在我的公众号底部提问,或者通过知乎提问,感谢支持。


硬件:
硬件其实是很多小伙伴或者转行嵌入式的初学者最大的疑惑,到底嵌入式中什么算是硬件?

有些朋友是做单品机开发的,平时又写程序又画电路,这算什么岗位呢?
这个可以引入上边软件的概念,要是你做的是核心的软件部分,比如项目的核心逻辑都是你做的,那就是软件工程师,至于绘画电路,这其实对于单片机工程师而言也是必须的技能,因为单片机一般项目都比较简单,一人全包也是有可能的。

要是工作主要是电路设计,平时写些逻辑,或者协助开发不太重要的软件,那定义为硬件工程师也是没问题的。

这些都是对于一些中小公司而言,分工不是很明确,但是在比较大的公司就很泾渭分明了。

上边说了,大公司的软件一般就是在操作系统之上开发应用及算法的岗位,其实到这个阶段,和硬件已经基本脱离了,和互联网的很多岗位看起来也基本接近了,只是编程语言和具体业务有所区别。

言归正传,大公司的硬件就是真的专注于硬件设计,硬件设计不是单纯的抄下电路,保证电气连接就可以的,这是很多同学的误区,做了很久其实还是水平一般。

做硬件最重要的参考资料就是芯片手册,还需要对芯片的输出信号做到心中有数,要做到能和软件工程师一同设计项目方案,对中断信号和时钟信号的输出要做到十分熟悉(曾经就遇到过硬件设计少出中断导致重新设计的,几十万的费用)


说了这么多貌似没说具体的工作什么,因为确实太多类型了,我怕说不全反倒导致大家误解,具体的可以在我的公众号(Allen有话说)菜单栏提问,或者上我的知乎提问,感谢大家的支持。

END


推荐阅读:英语和编程到底是什么关系?学了 C 语言到底能做什么, 能从事什么工作?C 语言究竟是一门怎样的语言?Windows下学习C语言有哪些集成开发软件?
资料分享以及交流群等问题人工智能为什么用python,C/C++或Java不行吗?学生阶段怎么提升计算机专业水平,并参加专业比赛?
十几年内有哪些行业将被AI与自动化取代,我们能做些什么?
C、C++、Java、JavaScript、PHP、Python、Ruby 这些语言分别主要用来开发什么?

PS:感谢赞赏,欢迎向我提问,详细请点击链接。
问题咨询

更多精彩文章扫码关注 [ Allen有话说 ],专注于编程,职场,英语(外企)




----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:Allen有话说,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了