软件方面
浅度嵌入式(系统级嵌入式)。两种主要的表现,工控开发与消费品开发。
关于工控开发,以工业控制计算机为例。业内称之为系统级嵌入式开发,以C语言为主要开发语言,系统底层级别的基本碰不到,工程师要做的是实现上层的应用开发。当然有人会说,C语言的开发门槛不低,精通C语言本身就是较高的门槛。但实际上,在这个领域的开发并不需要你了解编译原理,并不需要时间空间复杂度的敏感,并不需要双向循环链表、二叉树、堆、栈等数据结构的理解,并不需要快排等算法的应用,更不需要APL @bhuztez(正在学,逃。。) 。。。。你需要的是什么?for,while,if....else,基本可以靠他们打天下。简单来说,有点C语言基础,再稍加磨练即可上手,当然,上手和精通是两回事。我们的组的成员结构中既有C9名校的硕士,也有普通高校的本科生,甚至有从别的非研发部门转过来的同事,现在,大家都在做嵌入式,呵呵,这个门槛还高吗?
关于消费品开发,以android开发为例。时下最火的可算是android开发了,无论是智能硬件,智能家居等,基本脱离不了安卓开发。这个的门槛高吗?如果你想把google的安卓源码刷一遍,那肯定是低不下去吧。实施上呢,市面上的安卓培训少吗?培训一个月,0基础月入过万的承诺少吗?哪怕有水分,打个折,7,8k总归也行吧。为什么能做到这样?我在读研的时候(蛋疼的电气专业),那会没有接触过安卓,有些课程设计,老师直接叫我们在一周内写个简单的App,不也能写出来吗?这意味着什么呢?
深度嵌入式(底层级别嵌入式开发)。操作系统包括linux和RTOS等。在这种深度嵌入式开发中,平台主要依赖于ARM。刨除掉ARM指令集和rn那几个寄存器,在很多人看来,arm和普通单片机没什么区别,无非就是配置那几个外设寄存器而已。当然,在上面架系统会稍微复杂点,但是很少需要开发linux内核,很少需要开发RTOS内核的工作。如果贵司有钱,使用Vx或者QNX这些操作系统,供应商已经直接根据你的硬件平台制作BSP给你直接用了,而你无非就是在上面开发一些应用而已,这样又回到上面的话题。我曾经接触过不知道ARM是一个公司这样的事实然后在ARM上面欣然开发的人。所以,这种看似深度嵌入式开发的门槛高吗?
硬件方面
硬件方面我大致把他分为硬件设计和硬件开发两个方面。
硬件设计,我主要只板级硬件设计,这里暂不把芯片级设计归为嵌入式领域。板级设计我们有数字设计和模拟设计。在板级硬件设计里面,确实看似门槛很高,为啥,真正设计出具有良好EMC品质的板子(更不用说几百M的N层高速板)的工程师靠的是多年的经验和不断地学习。这里面强调了两个方面,经验和学习,这两点足以使硬件设计成为高门槛。但实际上,很多公司出于资源配置和开发周期考虑,已经不再自主设计单板,更多的是设计原理图外包PCBA,这样一来已经大大地降低了硬件设计的门槛了。第二点表现是,开源硬件的兴起,以Arduino和Rasperry Pi,Arduino的门槛很低,源于他的设计初衷是给更多非电子专业出身,甚至是艺术家使用的,一套这样的开发板从原理图到PCB,bom都一应俱全,认真学的话,同样也可以以很短的时间入门,门槛还高吗?
硬件开发,以FPGA开发为例。FPGA开发,主要在通信领域,包括在近年来的机器视觉等方向都有重要的应用方向。但是在我们常见的应用领域中,实际上在大多数环境下,FPGA都是大材小用,但却不得不用。不少工程师只是学了点皮毛就开发,不跟你讲仿真,不讲约束,直接就上,更不用讲时间和空间的关系了,呵呵。为什么能这样来呢,几个原因:第一,FPGA在工业领域的应用并不需要FPGA的真正性能,更多的是扩展和保护来出发的;第二,现在无论是X家还是A家(这个应该说是I家了吧),都集成了丰富的IP核,当然这里面也包括了许多的第三方提供的IP,这些IP的提供能够让你直接使用,不再纠结于IP本身的开发,大大减少工作量;第三,X家还是A家都已经推出了C转硬件描述语言的开发工具,在我看来这些功能可能会让不少多年深耕RTL工程师口吐鲜血。这些工具的诞生,又大大降低了硬件描述语言开发的成本。回想当年某半导体公司的研发主管面试我时,语重心长地跟我说:verilog不是英语,你每写一句脑子里就应该有一个电路。现在想起来,这种能力素养只能应用在很精专的领域。
从软件和硬件两个方面讲述了嵌入式的门槛问题,好像把嵌入式贬的一文不值。那肯定不是我的初衷,上述论证的前提都是一个:入门。
曾经,我们谈论嵌入式门槛高,是因为真正的嵌入式是需要从硬件和软件两个方面去把握,硬件包括从一个器件的选型到布局布线到EMC,软件从底层的内存分配,系统调度,到算法到最上层的云。光这句话我想就已经够任何一个人付出巨大的不懈地努力了,既然如此,是否是青春饭,也应该有答案了吧。然而,入门的门槛确实不高。
有发展,我们生活中的方方面面都会涉及嵌入式应用。嵌入式的人才市场行情还是不错的。
就现在来讲嵌入式方向的发展前景是非常不错的,主要是现在无人驾驶,物联网等等高科技纷纷出现在大家的视野中,这些都应用到了嵌入式技术,如果说没有前途那是不太可能的,主要还是要看自身的技术情况,如果根绝不行还是赶紧的学习吧。学习资料:emb.hqyj.com/VideoCourse/linux/?lbjzd