gzyueqian
13352868059

嵌入式领域职业发展方向,怎么成为嵌入式工程师?

更新时间: 2019-02-20 14:08:04来源: 嵌入式培训浏览量:5259

        嵌入式领域职业发展方向根据IEEE(国际电气和电子工程师协会)的定义,嵌入式系统是“控制、监控或者辅助设备、机器和车间运行的装置”。这主要是从应用上加以定义的,从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。嵌入式开发的发展方向有很多,下面主要介绍几个职业发展方向:

        1. ARM + Linux/Android开发据统计,全世界99%的智能手机和平板电脑都采用ARM架构。所有的iPhone和iPad都使用ARM的芯片,多数Kindle电子阅读器和Android设备也都采用这一架构。大部分的网络/电信制造商正积极地将其下一代平台迁移到ARM平台上来,有理由相信在今后的几年中,ARM在行业中将扮演一个极为重要的角色。嵌入式系统是软硬结合的东西,搞ARM开发的人主要分为两大类:

        【嵌入式软件开发工程师】

        1. 应用程序开发,包括Android应用开发或者Linux上应用开发(QT等),目前做的人很多,就业容易待遇也不错,需要掌握C语言、C++、java等开发语言。

        2. 操作系统移植,比较复杂,Linux,Android等,现在很多手机厂商(如小米,魅族,乐视等)推出的操作系统也就是修改内核,换皮肤,就业还是很容易的;

        3. 底层驱动开发,这个入门、深入都不容易,需要对硬件及OS有较深的了解,发展前景很不错;

        【嵌入式硬件开发工程师】

        1. 就像手机一样在处理器上做整体的电路,比单片机入门难的多,做成技术大牛了不缺钱。

        2. SOC,架构开发。称为系统级芯片,也有称片上系统,意指它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。

        同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。

        2.FPGA开发FPGA(现场可编程逻辑器件)产品的应用领域非常广泛,包括通信、消费电子、汽车电子、工业控制、测试测量等。而应用的变化也使FPGA产品近几年的演进趋势越来越明显:

        一方面,FPGA供应商致力于采用当前的工艺来提升产品的性能,降低产品的成本;另一方面,越来越多的通用IP(知识产权)或客户定制IP被引入FPGA中,以满足客户产品快速上市的要求。FPGA的开发相对于传统PC、单片机的开发有很大不同。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺序操作有很大区别,也造成了FPGA开发入门较难。

        学习FPGA常见的四大误区:

        1、不熟悉FPGA的内部结构,不了解可编程逻辑器件的基本原理。

        2、错误理解HDL语言,怎么看都看不出硬件结构。

        3、FPGA本身不算什么,一切皆在FPGA之外。

        4、数字逻辑知识是根本。

        3.DSP开发DSP(Digital Signal Processing,数字信号处理),是一门涉及许多学科而又广泛应用于许多领域的新兴学科。全球DSP市场的前景非常广阔,DSP产业将成为21 世纪发展潜力的朝阳产业。

        近年来,随着DSP芯片产品价格的不断下滑,使DSP能够从以往的军用领域迅速拓展到民用领域,例如应用于计算机、网络、移动电话、调制解调器和磁盘驱动器以及众多的消费电子产品。DSP学习涉及内容多,因此有的放矢,学以致用很重要。

        有几个重要的部分是一定要学好的:硬件的制作及学习;类/微驱动模型;c/汇编程序的开发;CSL/BSL的使用和理解;RF5算法构架;图像领域的知识等。

        4.IC设计上班的公交IC卡,ATM取钱的银行卡,楼宇的门卡等都是应用IC设计的产品,在现代世界不可或缺。IC设计(Integrated Circuit Design),或称为集成电路设计,是电子工程学和计算机工程学的一个学科,其主要内容是运用专业的逻辑和电路设计技术设计集成电路。

        中国自2009年以来,透过强大的市场购买力与自有品牌的茁壮,中国IC设计业产值在全球市场的占有率逐步攀升。中国IC设计业者的订单需求在未来三年内有机会成为全球成长性的地区,为了搭上此波浪潮,2015~2017年将会是全球晶圆代工厂商争相布局卡位的重要时刻。

        如何学习IC设计?

        需要具有一定的模拟电路基础,有数模混合电路设计经验;良好的电子电路分析能力;具有SOC的设计和验证的经验;精通Verilog,Tcl,C,Perl等设计语言。嵌入式系统设计是电子产品设计的重要组成部分,目前国内外大部分科技公司都建立了自己的嵌入式开发团队。

        团队所需的人员职位构成包括:系统设计工程师 、硬件工程师、底层驱动工程师、Linux系统工程师、应用设计工程师等。需要具备的知识

        1、C语言

        嵌入式Linux工程师的学习需要具备一定的C语言基础,C语言是嵌入式领域重要也是主要的编程语言,通过大量编程实例重点理解C语言的基础编程以及编程知识。包括:基本数据类型、数组、指针、结构体、链表、文件操作、队列、栈等。 

        2、Linux基础 Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell Makefile脚本编写等知识,嵌入式开发环境的搭建。 

        3、Linux系统编程

        重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。 

        4、Linux网络编程

        计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Java、script等Web编程技术及实现方法。 

        5、数据结构与算法  数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。

        6、C++ 、QT C++是Linux应用开发主要语言之一,本阶段重点掌握面向对象编程的基本思想以及C++的重要内容。图形界面编程是嵌入式开发中非常重要的一个环节。由于QT具有跨平台、面向对象、丰富API、支持2D/3D渲染、支持XML、多国语等强大功能,在嵌入式领域的GUI开发中得到了广范的应用,在本阶段通过基于QT图形库的学习使学员可以熟练编写GUI程序,并移植QT应用程序到Cortex-A8平台。包括IDE使用、QT部件及布局管理器、信息与槽机制的应用、鼠标、键盘及绘图事件处理及文件处理的应用。 

        7、驱动开发

        驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。嵌入式开发作为未来职业发展的方向,不论从薪资待遇还是发展前景来看,都非常不错。

        从工程师起步,一般有几个发展方向,一个是成为技术方面的核心,领域内的专家;另一个是从项目中锻炼起来,成为项目主管或是管理型人才;再有就是利用自己的技术及行业经验去创业。总之,在物联网大的环境下,嵌入式开发将会成为有发展前景的职业发展方向之一。

免费预约试听课