随着科技进步,嵌入式的出现,以及人们对生活质量,产品的智能化,成本的要求等,以及国家对与物联网、电子、科技的扶持,大量的电子产品都促使嵌入式的快速发展。使用嵌入式的产品如我们常用的手机、平板电脑、电子字典、可视电话、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、物联网、智能家居、医疗仪器、航天航空设备等都是典型的嵌入式的应用。
嵌入式系统市场是巨大的,市场需求是嵌入式系统产业化发展的巨大推动力,据报告:10%~20%的计算机芯片是位台式或便携式电脑设计,80%~90%的计算机芯片是位嵌入式产品设计的,这意味着每年有10亿至20亿个CPU是为嵌入式产品制造的,市场决定了嵌入式行业是很有发展前途的行业。
嵌入式工作分类:
嵌入式产品开发是基于产品的功能,从功能需求、提出并选择方案、电路设计、PCB电路板设计、软件设计、样机生产、软硬件综合调试,软硬件结合的产品开发。所以嵌入式开发需要软硬件都懂的基础要求。但根据侧重点的不同嵌入式产品开发工作可以有以下分类:
硬件方面:
1、电路设计:产品原理图的设计,需要对数电模电都比较精通,且熟悉单片机、arm架构及熟练外围电路的使用;基本上会电路设计的都会PCB设计。
2、PCB电路板的设计:需要熟悉数电、看懂常用模电,对单片机、arm外设了解,且具备安规电磁兼容的应用经验。
软件方面:
1、驱动开发:基于电路图实现产品的驱动开发,需要看懂电路,精通C语言,熟悉arm架构及外设的使用,熟悉操作系统内核、驱动。
2、系统开发:基于硬件的uboot移植、内核移植裁剪、根文件系统制作等系统环境搭建及驱动移植开发、应用测试等,需要精通C语言,看懂电路,linux系统开发。
3、应用开发:基于操作系统之上的应用程序开发,无需电路方面知识,只需要软件编程,需掌握Java或C++,操作系统、数据库、数据库建模、SQLserver、oracle等,应用开发更新比较快,像电脑上的软件QQ、360、游戏等软件,所以工作也比较忙,入门门槛低,但上升空间不大。
嵌入式系统开发及应用开发要求可能不会太高,相对入门比较简单,但系统开发所需掌握知识面还是比较广的,也比较有发展空间,应用开发更新快,发展有限。驱动开发需要有驱动开发经验,如果有开发经验的话,不会很忙,就是实现功能,如果一个产品功能实现了,就没有太多事了,剩余的就是应用开发了,驱动开发更新不会很快。
嵌入式产品开发中不同的工作有不同的一些特点,硬件开发靠经验,经验越丰富越吃香,可以说能做一辈子;软件开发靠思维、靠算法,如果编程思维清晰,算法优越,不需要太长时间就能做的相当不错。如果软硬件都能做,独立开发产品的话,身价更胜一筹。
但是对于入门级甚至初学者来说不可能面面俱到,都要去做,你也没这个能力,即使能做,一般公司也不会让你一个人从硬件到软件独立去开发嵌入式产品,因为公司做项目有时间要求,必须分工协作。