精华内容
下载资源
问答
  • 嵌入式软件工程师和嵌入式硬件工程师有什么区别

    万次阅读 多人点赞 2019-09-16 14:00:48
    什么是嵌入式硬件工程师  随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的...

    什么是嵌入式硬件工程师

      随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作,例如: 底层驱动的开发嵌入式操作系统的裁剪,移植; GUI、文件系统等软件的移植; 基于嵌入式操作系统的底层驱动程序的设计等。

    什么是嵌入式软件工程师

      嵌入式软件工程师与我们平常说的软件工程师不同。

      我们平常说的软件工程师大部分指的是windows 和linux 操作系统下应用软件的开发人员,硬件平台是基于PC 机的。而嵌入式软件工程师则是指在wince.linux 等嵌入式操作系统下进行用户应用软件开发的人员,硬件平台则是基于嵌入式产品的(例如: 手机、PDA 等)。软件开发工具也有所区别,嵌入式软件开发一般使用的是嵌入式系统专用的开发工具,例如wince 下的evc,和linux 下的qt 等。

      嵌入式软件工程师和嵌入式硬件工程师有什么区别

      嵌入式软件工程师和嵌入式硬件工程师有什么区别

      软、硬件工程师工作性质的区别

      嵌入式硬件工程师的工作是为软件工程师搭建好硬件平台和必要的开发环境。 嵌入式软件工程师则是根据用户的需要完善产品的软件功能。硬件工程师就像是设计师和建筑师,负责整个建筑的设计和建设。软件工程师则是负责房间的装修,锦上添花。

      总的来说, 硬件工程师的工作性质尤为重要,因为硬件工程师在设计产品 时不但要完成产品的基本功能,还必须考虑多方面因素: 功耗、干扰、后期维修、生产安装等。一旦某一个因素考虑不周全,会造成整个产品的设计失败。

      除此之外,产品在设计中可以没有软件工程师,绝不能没有硬件工程师。 因为在某些对实时性要求严格的嵌入式产品(例如: 工业产品)或者某些低性能的嵌入式产品(例如: CPU 使用单片机的产品) 中,往往是不能够使用操作系统的。 这时,整个产品的设计工作则全部由硬件工程师来完成了。

      嵌入式软件工程师和嵌入式硬件工程师有什么区别

      嵌入式软、硬件工程帅的就业形式

      软件工程师的工作性质使得软件工程师的起点较低,所以目前国内的软件工程师居多。并且目前国内的嵌入式培训都是以软件培训为主。所以从长远看,硬件工程师的就业压力要小。

      但是另一方面,企业中硬件开发人员需求量要比软件开发人员的需求量小。因为一旦产品定型,后期的产品升级都是由软件来完成的,硬件的更新和变动很少。

      嵌入式软、硬件工程师的工作稳定性

      一般来说软件工程师的人员流动性要比硬件流动性要大。

      首先,我们都知道,产品是企业生存的命脉,如果产品的设计资料泄露,那么该企业的生存优势就不存在了。所以,企业会千方百计的留住产品设计的核心人员,尤其是硬件设计人员。

      另外,培养一个硬件工程师比较难,而且时间也比较长。所以企业一般不会主动去培养一个硬件工程师,并且也不会轻易放弃一个硬件工程师。

      第E,由于目前软件工程师居多,企业可供选择的机会也多,所以软件工程师的流动性要高。

      嵌入式软、硬件工程师的工资待遇比较

      工资待遇的高低由企业所处的地域、行业、企业的性质和人员的工作岗位而定。由于每个企业的情况不同,所以工资待遇的差异很大。

      对于以硬件产品为主的企业来说,硬件开发的成本高,产品的成本也高。因为后期的加工生产,维修等等都需要很大的费用。所以企业的利润较低。不过由于硬件工程师掌握着企业的命脉,所以企业会提高硬件设计人员待遇。

      对于以软件产品为主的企业来说,开发的成本较低,一旦开发完成,后期的产品基本无成本。所以软件行业的利润较大。但是,由于软件工程师人员多,所以待遇也有所下降。

      嵌入式软件工程师和嵌入式硬件工程师有什么区别

      嵌入式的硬件工程师和软件工程师哪个更有前途

      1、先从企业的角度来讲讲。我个人认为造成这个差异的原因,第一个是基本上所有的公司,从初创公司到全球百强,都有对软件工程师的需求。现在哪个公司不需要几个码农来开发app,或者做个web。但是做硬件这种工作并不是所有公司会去做的。

      2、第二点要归功于现在的创业潮。不管在美国在中国互联网创业都是趋势,但是可以说绝大部分的初创互联网公司做的都是软件方向。有个点子,有点技术,找几个合伙人抱着电脑就能开干了。但是初创公司要专注做硬件开发就比较难了,因为成立设计硬件公司的门槛和起步开销比较大。所以这也导致大部分初创公司以互联网为主,能做的了硬件设计的公司基本上都是处于垄断地位的大企业。

      3、第三个很重要的原因就是硬件设计。在现在来看已经是相对成熟的技术,我甚至有ee的同学跟我说大部分硬件的东西已经步入夕阳产业的范畴,因为很多东西已经成了规范,也因为很多东西被自动化所取代。前一阵子全球大牌的硬件公司才裁了不少人,intel更是裁掉了接近20%的硬件工程师。但是互联网热从90年代开始到现在热头还没过,而且未来诸多产业如人工智能、机器学习、图像识别、大数据都才刚起步,所以还有一定的上升空间。

      4、再从个人的角度来讲。想成为一名软件工程师找到工作的门槛远比成为一名合格的硬件工程师低很多。要想以软件工程师的身份混到个饭碗,学两门语言学好,常用的数据结构,刷点题就基本上能找到薪水小几千的岗位,像学朱有鹏老师课程的学生学得好都是上万的。

      5、但是要想成为一名合格的硬件工程师,不是科班出身的不好好学几门模电数电信号逻辑设计的课,没有在学校实验室里自己焊点电路做实践,连简历都发不出去。而且现在要想学个什么语言框架,网上搜一搜“”xxx语言入门教程“”就有非常丰富的资源,但是要是在网上搜“如何学好超大规模集成电路设计”,要想找到可以受用的资源几乎是不可能的。而且就我所参加的招聘会来说,如果有招硬件工程师基本都要求有研究生的学位,但是对软件工程师的要求基本上就是熟悉算法数据结构,会web编程有相关经历就够了。

      6、软件工程师很多时候吃的是体力,硬件工程师大部分时候是吃经验,所以硬件工程师一般得有一定的经历积淀才能脱颖而出。尤其像模电这种上手程度很高的方向,没个十年八年的相关经验根本不算学成出师。所以说本身对从业者的资质要求更高,也是硬件工程师不好找工作的原因之一。

      嵌入式软件工程师和嵌入式硬件工程师有什么区别

    展开全文
  • 什么是嵌入式硬件工程师? 随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的...

      什么是嵌入式硬件工程师?

      随着嵌入式技术的普及,硬件工程师的性质也有所改变。嵌入式硬件工程师与我们平常所说的硬件工程师不同。嵌入式硬件工程不但要求具备硬件工程师的基本技能,还必须完成部分软件工程师的工作,例如: 底层驱动的开发嵌入式操作系统的裁剪,移植; GUI、文件系统等软件的移植; 基于嵌入式操作系统的底层驱动程序的设计等。

    深圳嵌入式培训


      什么是嵌入式软件工程师?
      嵌入式软件工程师与我们平常说的软件工程师不同。
      我们平常说的软件工程师大部分指的是windows和linux操作系统下应用软件的开发人员,硬件平台是基于PC机的。而嵌入式软件工程师则是指在wince.linux等嵌入式操作系统下进行用户应用软件开发的人员,硬件平台则是基于嵌入式产品的(例如: 手机、PDA 等)。软件开发工具也有所区别,嵌入式软件开发一般使用的是嵌入式系统专用的开发工具,例如wince 下的evc,和linux 下的qt 等。
      软、硬件工程师工作性质的区别
      嵌入式硬件工程师的工作是为软件工程师搭建好硬件平台和必要的开发环境。 嵌入式软件工程师则是根据用户的需要完善产品的软件功能。硬件工程师就像是设计师和建筑师,负责整个建筑的设计和建设。软件工程师则是负责房间的装修,锦上添花。
      总的来说,硬件工程师的工作性质尤为重要,因为硬件工程师在设计产品时不但要完成产品的基本功能,还必须考虑多方面因素:功耗、干扰、后期维修、生产安装等。一旦某一个因素考虑不周全,会造成整个产品的设计失败。
      除此之外,产品在设计中可以没有软件工程师,绝不能没有硬件工程师。 因为在某些对实时性要求严格的嵌入式产品(例如: 工业产品)或者某些低性能的嵌入式产品(例如: CPU 使用单片机的产品) 中,往往是不能够使用操作系统的。 这时,整个产品的设计工作则全部由硬件工程师来完成了。
      嵌入式软、硬件工程帅的就业形式
      软件工程师的工作性质使得软件工程师的起点较低,所以目前国内的软件工程师居多。并且目前国内的嵌入式培训都是以软件培训为主。所以从长远看,硬件工程师的就业压力要小。
      但是另一方面,企业中硬件开发人员需求量要比软件开发人员的需求量小。因为一旦产品定型,后期的产品升级都是由软件来完成的,硬件的更新和变动很少。
      嵌入式软、硬件工程师的工作稳定性
      一般来说软件工程师的人员流动性要比硬件流动性要大。
      首先,我们都知道,产品是企业生存的命脉,如果产品的设计资料泄露,那么该企业的生存优势就不存在了。所以,企业会千方百计的留住产品设计的核心人员,尤其是硬件设计人员。
      另外,培养一个硬件工程师比较难,而且时间也比较长。所以企业一般不会主动去培养一个硬件工程师,并且也不会轻易放弃一个硬件工程师。
      第E,由于目前软件工程师居多,企业可供选择的机会也多,所以软件工程师的流动性要高。
      嵌入式软、硬件工程师的工资待遇比较
      工资待遇的高低由企业所处的地域、行业、企业的性质和人员的工作岗位而定。由于每个企业的情况不同,所以工资待遇的差异很大。
      对于以硬件产品为主的企业来说,硬件开发的成本高,产品的成本也高。因为后期的加工生产,维修等等都需要很大的费用。所以企业的利润较低。不过由于硬件工程师掌握着企业的命脉,所以企业会提高硬件设计人员待遇
      对于以软件产品为主的企业来说,开发的成本较低,一旦开发完成,后期的产品基本无成本。所以软件行业的利润较大。但是,由于软件工程师人员多,所以待遇也有所下降。
      嵌入式的硬件工程师和软件工程师哪个更有前途
      1、先从企业的角度来讲讲。我个人认为造成这个差异的原因,第一个是基本上所有的公司,从初创公司到全球百强,都有对软件工程师的需求。现在哪个公司不需要几个码农来开发app,或者做个web。但是做硬件这种工作并不是所有公司会去做的。
      2、第二点要归功于现在的创业潮。不管在美国在中国互联网创业都是趋势,但是可以说绝大部分的初创互联网公司做的都是软件方向。有个点子,有点技术,找几个合伙人抱着电脑就能开干了。但是初创公司要专注做硬件开发就比较难了,因为成立设计硬件公司的门槛和起步开销比较大。所以这也导致大部分初创公司以互联网为主,能做的了硬件设计的公司基本上都是处于垄断地位的大企业。
      3、第三个很重要的原因就是硬件设计。在现在来看已经是相对成熟的技术,我甚至有ee的同学跟我说大部分硬件的东西已经步入夕阳产业的范畴,因为很多东西已经成了规范,也因为很多东西被自动化所取代。前一阵子全球大牌的硬件公司才裁了不少人,intel更是裁掉了接近20%的硬件工程师。但是互联网热从90年×××始到现在热头还没过,而且未来诸多产业如人工智能、机器学习、图像识别、大数据都才刚起步,所以还有一定的上升空间。
      4、再从个人的角度来讲。想成为一名软件工程师找到工作的门槛远比成为一名合格的硬件工程师低很多。要想以软件工程师的身份混到个饭碗,学两门语言学好,常用的数据结构,刷点题就基本上能找到薪水小几千的岗位,像学朱有鹏老师课程的学生学得好都是上万的。
      5、但是要想成为一名合格的硬件工程师,不是科班出身的不好好学几门模电数电信号逻辑设计的课,没有在学校实验室里自己焊点电路做实践,连简历都发不出去。而且现在要想学个什么语言框架,网上搜一搜“”xxx语言入门教程“”就有非常丰富的资源,但是要是在网上搜“如何学好超大规模集成电路设计”,要想找到可以受用的资源几乎是不可能的。而且就我所参加的招聘会来说,如果有招硬件工程师基本都要求有研究生的学位,但是对软件工程师的要求基本上就是熟悉算法数据结构,会web编程有相关经历就够了。
      6、软件工程师很多时候吃的是体力,硬件工程师大部分时候是吃经验,所以硬件工程师一般得有一定的经历积淀才能脱颖而出。尤其像模电这种上手程度很高的方向,没个十年八年的相关经验根本不算学成出师。所以说本身对从业者的资质要求更高,也是硬件工程师不好找工作的原因之一。


    转载于:https://blog.51cto.com/14033587/2309531

    展开全文
  • 你知道嵌入式软件和硬件的区别吗?实际上嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。例如我们身边的手表、微波炉、录像机、汽车...

      你知道嵌入式软件和硬件的区别吗?实际上嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。例如我们身边的手表、微波炉、录像机、汽车等,都使用嵌入式系统,他们都是带有数字接口的设备。有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。嵌入式是软件还是硬件?在这里为大家解析。

    10.102.jpg

      首先,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。由上可知:嵌入式既有硬件又有软件

      其中,嵌入式软件需要学习的技能包括:

      懂得C语言和一些简单的汇编语言编程。能够阅读一般嵌入式系统的原理图。至少熟悉一种嵌入式系统的软件开发环境。熟悉一种嵌入式系统软件的开发过程,如:单片机系统、DSP系统、ARM系统或其它的一些潜入式系统。理解常见的嵌入式操作系统的工作原理,理解线程、进程、信号量、消息机制、同步与互拆、并发控制等软件编程时用到的概念。

      而嵌入式硬件需要学习的技能则包括:

      从硬件上,将基于CPU的处围器件,整合到CPU芯片内部。从软件上,就是在定制操作系统内核里将应用一并选入,编译后将内核下载到ROM中。把软件内核或应用文件系统等东西烧到嵌入式系统硬件平台中的ROM中就实现了一个真正的“嵌入”。这就是嵌入式工程师应该具备的技能,也是粤嵌嵌入式硬件培训班所要教授的基础内容。

      以上就是为大家介绍的内容,希望有志于从事这一行业的人能够学有所成,顺利找到自己喜欢的工作。


    转载于:https://blog.51cto.com/14033587/2334674

    展开全文
  • 嵌入式系统开发硬件 岗位名称 所属部门 研发中心 工程师 岗位层级 S7 编制日期 2012 年 9 月 19 岗 位 职 责 1对产品项目组新技术做技术预研评估及性能设计指导 2负责产品硬件软件系统设计 3负责对产品研发团队...
  • 一、基本介绍 ...嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。

    嵌入式硬件开发工程师


            嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。

    1  工作内容

     编写嵌入式系统硬件总体方案和详细方案,进行硬件选型(单片机、DSP或者其他处理器)及系统分析;
            负责硬件详细设计及实现,包含原理设计、PCB layout、硬件调试;
            参与系统移植以及驱动的开发调试;
           编写产品技术说明书;
           负责对客户的技术支持。

    2 职业要求
           教育培训:
           电子、自动化、通讯或相关专业本科以上学历。
           工作经验:
            熟悉硬件开发流程;良好的电子电路分析能力;熟练掌握Protel、OrCAD、PADS等原理图与PCB设计工具;良好的沟通和团队协作能力。

    3 薪资行情
           一般月薪范围在3000—8000元。
            4 发展路径
            成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用设计工具、设计原理图、PCB板的能力;熟练运用单片机、DSP、PLD、FPGA等进行软硬件开发调试的能力;熟练运用仿真工具、示波器、信号发生器、逻辑分析仪等调测硬件的能力;掌握常用的标准电路的设计能力,如复位电路、常用滤波器电路、功放电路、高速信号传输线的匹配电路等;故障定位、解决问题的能力;设计文档的组织编写技能。

    一、基本介绍

    举个很简单的例子:

    如PDA手机,掌上电脑,再说开点,就是针对硬件做开发,写驱动……

    这个工资收入 相比于纯WEB开发要高一倍

    嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

    二、工作情况

    (一)嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类。

    一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。

    另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头“可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

    (二)从事嵌入式软件开发的好处是:

    (1).目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很少。嵌入式人才稀缺,身价自然就高,越有经验价格就越高。其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。
           (2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。所开发的产品通常是通用的,不会因客户的不同而修改。一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

    (3)哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。土木学院有一个叫启明星的公司开发出一个好象叫“工程e”的掌上PDA(南校区门口有广告),施工技术人员用该PDA可当场进行土木概预算和其它土木计算,据说销路特好。我认识的某大学老师,他开发的饭馆用的点菜PDA(WinCE平台,可无线连网和上网),据他说销路不错,饭馆点点PDA让客户点菜,多显派头档次。我记得00级2+2班当年有一组同学在学Windows程序设计课程时用VC++设计了一个功能很强的点菜系统做为课程项目,当时真想建议他们将这个软件做成PDA,估计会有些销路(上海火车站南广场的Macdonald便使用很漂亮的PDA给用户点食品,像摸像样的)。这些PDA的硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

    (三)从事嵌入式软件开发的缺点是:

    (1) 入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。

    (2)这方面的企业数量要远少于企业计算类企业。特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业)。这些企业的习惯思维方式是到电子、通信等偏硬专业找人。由于我院以前毕业生以企业计算为主,所以我院与这些企业联系相对较少。我院正积极努力,目前已与其中部分公司建立了联系,争取今后能有我院同学到这些企业中实习或就业。
            (3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。但大多数公司也并无此要求,只要有经验即可。我院同学若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面,应是我们的强项。对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):(a)掌握主流嵌入式微处理器的结构与原理(b)必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目(c) 必须掌握一个嵌入式操作系统。

    三、嵌入式开发的其它相关课程

    (一)嵌入式开发的其它相关软件课程:

    A、数字图像压缩技术 B、通信协议及编程技术 C、网络与信息安全技术:如加密技术,数字证书CA等

    D、DSP技术

     (二)嵌入式开发的相关硬件基础:

    对于软件工程专业的人,从事嵌入式软件开发,像数字电路、计算机组成原理、嵌入式微处理器结构等硬件课程是较重要的。另外,汇编语言、C/C++、数据结构和算法、特别是操作系统等软件基础课也是十分重要的。我们的主要目地是能看懂硬件工作原理,但重点应是在嵌入式软件,特别操作系统级软件。

    对于学电子、通信、自动化的研究生,有较好的模拟电路和单片机基础,学嵌入式非常合适。嵌入式本身就是从单片机发展过来的,只是单片机不带OS,而现在很多嵌入式应用越来越复杂,以至不得不引入嵌入式操作系统。另外,为追求更高速的信号处理速度,现在在一些速度要求较高的场合,有不少公司是将一些DSP算法,如MPEG压缩解压缩算法等用硬件来实现,这就涉及到HDL数字电路设计技术及其FPGA/IP核实现技术,这方面的人目前市场上也很缺。

    四、嵌入式系统的分层与专业的分类    

         嵌入式系统分为4层,硬件层、驱动层、操作系统层和应用层。 

    1、硬件层是整个嵌入式系统的根本,如果现在单片机及接口这块很熟悉,并且能用C和汇编语言来编程的话,从嵌入式系统的硬件层走起来相对容易,硬件层也是驱动层的基础,一个优秀的驱动工程师是要能够看懂硬件的电路图和自行完成CPLD的逻辑设计的,同时还要对操作系统内核及其调度性相当的熟悉的。但硬件平台是基础,增值还要靠软件。 

         硬件层比较适合于,电子、通信、自动化、机电一体、信息工程类专业的人来搞,需要掌握的专业基础知识有,单片机原理及接口技术、微机原理及接口技术、C语言。 

         2、 驱动层,这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统时间片,而导 至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可能连个初级的 驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式系统四层中可 是最高的。 

         驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。 

        3、操作系统层,对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。 

        4、应用层,相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环 境有相应的变化而已。如果涉及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌 入式系统下面嵌入式数据库、基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发(比如基于SIP、H.323、Astrisk)方面又较为复杂, 并且有难度了。 

    五、目标与定位(先有目标,再去定位)

      学 ARM,从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面 的驱动、移植了。这些对于初学都来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级以上基于 API的应用层的编程,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。因此针对于嵌入式系统的硬件层和驱动程的人,ARM的接 口电路设计、ARM的C语言和汇编语言编程及调试开发环境还是需要掌握的。 
         因此对于初学者必然要把握住方向,自己的目标是什么,自己要在那一层面上走。然后再着手学习较好,与ARM相关的嵌入式系统的较为实际的两个层面硬件层和驱动层,不管学好了那一层都会很有前途的。 
         如果想从嵌入式系统的应用层面的走的话,可能与ARM及其它体系相去较远,要着重研究基嵌入式操作系统的环境应用与相应开发工具链,比如WinCe操作系统下的EVC应用开发(与windows下的VC相类似),如果想再有突破就往某些音视频类的协议上靠,比如VOIP领域的基于SIP或H.323协议的应用层开发,或是基于嵌入式网络数据库的开发等等。 

         对 于初学者来讲,要量力而行,不要认为驱动层工资高就把它当成方向了,要结合自身特点,嵌入式系统四个层面上那个层面上来讲都是有高人存在,当然高人也对应 的高工资,我是做硬件层的,以前每月工资中个人所得税要被扣上近3千大元,当然我一方面充当工程师的角色,一方面充当主管及人物的角色,两个职位我一个人 干,但上班时间就那些。硬件这方面上可能与我PK的人很少了,才让我拿到那么多的工资。 

    六、对于相关培训

    两句话:1、用金钱换取时间

                  2、对于培训过的与自学的进入同一个牛比公司的人,往往后者的后劲比前者大。所以前者再培训后,

                       要加强理论的学习。

    七、高级嵌入式系统硬件工程师要具备的技能(即从事以上我说的,四层中的第一层:硬件层)

         
            对于硬件来讲有几个方向就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的Modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15K以上。 
         另一类就是数字部分了,在大方向上又可分为51/ARM的单片机类,DSP类,FPGA类。国内FPGA的工程师大多是在IC设计公司从事IP核的前端验证,这部分不搞到门级,前途不太明朗,即使做个IC前端验证工程师,也要搞上几年才能胜任。 DSP硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而ARM单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极 大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互PK,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单 的连接,比如PXA255处理器I2C要求速度在100Kbps,如果把一个I2C外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失 败。这样的情况有很多,比如51单片机可以在总线接 LCD,但为什么这种LCD就不能挂在ARM的总线上,还有ARM7总线上可以外接个Winband的SD卡控制器,但为什么这种控制器接不到ARM9或 是Xscale处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。 一个优秀的硬件工程师应该能够在没有参考方案的前提下设计 出一个在成本和性能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把方案中的5V变1.8V的DC芯片, 直接更换成LDO,有时就会把CPU烧上几个。前几天还有人希望我帮忙把他们以前基于PXA255平台的手持GPS设备做下程序优化,我问了一下情况,地 图是存在SD卡中的,而SD卡与PXA255的MMC控制器间采用的SPI接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序 的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你 终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力还是原理图设计PCB绘 制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ECAD工程师,就是专业的画PCB板的工程师,和EMC设计工程师,帮 人家解决EMC的问题。硬件工程师再往上就是板级测试工程师,就是C语功底很好的硬件工程师,在电路板调试过程中能通过自已编写的测试程序对硬件功能进行 验证。然后再交给基于操作系统级的驱动开发人员。 

          总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件工程师设计的东西,经常被我一句话否定,因此工程师做到我这种地步,也会得罪些人,但硬件的确会有很多不为人知的东西,让很多高级硬件工程师也摸不到头脑。 

         那么高级硬件件工程师技术技能都要具备那些东西哪,首先要掌握EDA设计的辅助工具类如Protel  ORCAD Powper PCB Maplux2ISE、 VDHL语言,要能用到这些工具画图画板做逻辑设计,再有就是接口设计审图能力,再者就是调试能力,如果能走到总体方案设计这块,那就基本上快成为资深工 程师了。 

          硬件是要靠经验,也要靠积累的,十年磨一剑,百年磨一针。 

    展开全文
  • 面对日益激烈的竞争压力,多学一些嵌入式软件方面的技能也能为日后自己的职业生涯发展打好基础,正所谓“艺多人胆大”,“艺多不压身”! 那么,对于硬件工程师来讲,到底该怎样选择循序渐进的学习路线呢?笔者自身...
  • 从CSDN各个博客上摘选的一些容易做错的嵌入式软件的笔试题,做一下记录,让自己记住。 文章转自:嵌入式经典面试题。 1、用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) 解答:这一...
  • 我不认为嵌入式开发软件占绝对比重,相反,软硬件都懂,才是嵌入式高手所应该追求的,也是高手的必由之路。    硬件道路:  第一步: pcb设计,一般为开发板的电路裁减扩充,由开发板原理图为基础,画出PCB...
  • 就我所了解的,在现在以及可预见的未来,这个行业对软件工程师的需求绝对是碾压硬件工程师的。也就是说,招软件工程师的职位比硬件工程师的职位要多的多,而且软件工程师找工作上来说会比硬件工程师更容易。 先从...
  • 非常详细的《嵌入式助理工程师认证考试试题题库》,题型覆盖了软硬件开发、linux操作系统等方面。
  • 嵌入式软件工程职责 简介 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、...嵌入式软件工程师就是编写嵌入式系统的工程师。 职业要求 应具备哪些能力 最直接的
  • 嵌入式软件工程师无非分为两大类,在Windows平台下做嵌入式软件开发在Linux平台下做嵌入式软件开发,我起初是在Windows平台下基于STM32做小型电机的软件控制,语言方面需要掌握C或python或java等软件语言,这里...
  • 本人从事嵌入式软件开发多年,结合自己的经验,推出了《嵌入式软件工程师技术面专题》,预计会有40篇,分成硬件协议、多进程多线程编程、网络编程、linux基础、C/C++等几大模块,每一篇在末尾都总结了相关提问,其中...
  • 嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案详细方案,要求理解嵌入式系统架构...嵌入式硬件工程师主要职责是为产品设计硬件电路原理图,设计硬件PCB板,选择合适的元器件,焊接调试硬件电路板,保证硬件...
  • 再过四个月,本人就满三周岁了,目前在南方一家IC公司任职嵌入式软件工程师,硕士毕业后一直在这里,已经将近四年。在段时间里我很努力,目前对Bootloader,数据加密,RTOS设备驱动开发,Linux kernel,文件系统已经...
  • 嵌入式系统软件开发工程师岗位说明书 嵌入式系统产品正不断渗透各个行业作为包含在这些 硬件产品中的特殊软件形态嵌入式软件也迅猛发展起来 已成为软件体系的重要组成部分嵌入式软件开发工程师为 改变人生的生活创造...
  • 嵌入式软件开发工程师 工作内容 从事数据产品嵌入式(底层)软件开发设计工作; 负责数据产品相关软件子系统的方案设计; 负责数据产品相关的技术交流、标准及专利相关工作; 负责嵌入式软件系统的...
  • 嵌入式软件工程师应聘 数据结构(C语言)部分常考的知识点: 1、局部变量、全局变量静态变量 2、堆栈 3、Const、volatile、define、typedef的用途 4、链表(比如链表的插入、删除排序...
  • 嵌入式硬件工程师的就业前景 调查信息显示 1我国嵌入式人才缺口每年 50 万人左右 2嵌入式软件开发是未来几年最受欢迎职业之一 310 年工作经验的高级嵌入式工程师年薪在 30 万左右初级工程师平均月薪 3000~5000 元中...
  • 由于嵌入式系统是一个软硬件相结合的产物,在嵌入式软件培训过程中,对于两种不同的开发人才所要求的技能也有所不同。 1、对于从事嵌入式软件开发的人来讲,一般需要掌握以下基本技能: (1)懂得C语...
  • 嵌入式软件工程师学习路线

    千次阅读 多人点赞 2020-05-22 17:02:13
    大家选择学习嵌入式,最后是都要做嵌入式相关工作的,所以在学习的时候真的要用心,如果你三心二意的话,那么很可能就学不好嵌入式了,因为嵌入式的确很难,不过,下面可以先来了解下嵌入式软件工程师学习路线,对你...
  • 嵌入式软件工程师一般不考硬件题目,但是有一道题却是经常考的。 SOC、MCU工作不起来要检查哪些硬件问题? 答案: 1、电源 2、时钟 3、复位电路
  • 嵌入式软件开发应用软件开发最大的区别是,嵌入式软件开发人员往往需要了解硬件、CPU体系结构、编译、链接、系统引导、底层驱动、操作系统、文件系统、协议栈、各种通讯协议、操作维护、用户界面、各种应用程序...
  • 收集了一套嵌入式软件工程师的面试题,都是一些基础性的知识。对题目做了解答,喜欢嵌入式这个行业的同学可以拿去练练手,这能让你在笔试过程中事半功倍!
  • 我的工作领域是手机的软件开发,面试的对象是嵌入式软件工程师。这篇短文是为想在“嵌入式软件开发”领域找工作的朋友写的。   作为面试人,我需要在短短的几十分钟的谈话后做出决定。要平衡的是两件事:一
  • 本人在学习嵌入式期间留下的学习笔记,针对自己对嵌入式的学习,进行逐步积累。在此写出对目前已经学习的内容进行整理归纳,并加入部分自己的理解。因本人刚刚开始学习,文章内容仅供参考,对嵌入式诸多内容恐有遗漏...
  • 嵌入式软件工程师岗位要求

    万次阅读 多人点赞 2018-04-16 11:41:27
    嵌入式软件工程师岗位要求想成为嵌入式软件工程师,必须要有两板斧。那么当前企业需要哪些技术呢?1.嵌入式上层的软件应用开发需要:精通嵌入式Linux C语言编程、嵌入式Linux C语言数据结构、嵌入式Linux项目开发流程...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,751
精华内容 9,100
关键字:

嵌入式软件和硬件工程师