在了解什么是嵌入式之前,我们先来看看IEEE给嵌入式下的定义:Devices Used to Control,Monitor or Assist the Operation of Equipment,Machinery or Plants,意思是用于控制、监视和辅助操作机器的装置
从定义上看,我们知道嵌入式是一种控制(监视、辅助操作)装置,它的最终目的是控制机器(也就是设备)。
那什么是嵌入式系统呢?简单的说:嵌入式系统是使用计算机程序直接控制设备的一种系统,它包含嵌入式计算机系统和被控制的装置(通常是硬件)。
一个嵌入式系统通常由硬件层、中间层(驱动)、系统软件层和应用软件层(包括框架和最终的应用程序)组成,如下图(以android为例):
(1)图中并没有硬件层,对于android系统来说,硬件层可能是手机、平板电脑、录像机、汽车、电饭煲、电烤箱、微波炉等。一切你能想到的自动电子设备、仪器、装置都使用了嵌入式技术。
(2)图中红色部分为中间层,中间层负责软件与硬件的衔接,我们使用的驱动程序就是中间层技术。
(3)图中绿色部分为系统软件层,系统软件可以通过驱动程序间接控制硬件(或与硬件交互),而对于android系统来说,这里包含的是系统运行的基本类库和捆绑类库。
(4)图中黄色部分为应用程序运行时需要的环境,即应用程序访问类库的接口。
(5)蓝色部分分为application framework和applications两个部分,其本质是一致的,都是在基本类库之上构建的高级语言程序,这些程序是我们平常使用的应用软件,如QQ、360、微信等。
从上面的分析可以知道,对于嵌入式开发我们至少需要如下3类程序员:
(1)硬件工程师:负责电路系统、集成电路系统等硬件的设计,辅助驱动程序的开发。
(2)系统软件工程师;:负责驱动开发、在驱动上构建操作系统以及基本类库和运行时环境的开发,需要提供操作和控制硬件的方法(程序)。
(3)应用软件工程师:负责开发应用程序(通常使用Java等高级语言)。
综上:对于应用软件工程师这个级别则不再区分是否为嵌入式软件工程师,即如果你只是单纯的在已有的操作系统上(如window、linux等)进行应用程序的开发(例如:管理系统、网站、客户端应用、服务开发等),则不是嵌入式软件工程师。
只有涉及上图绿色和红色部分开发的软件工程师才能称为嵌入式软件工程师。
从定义上看,我们知道嵌入式是一种控制(监视、辅助操作)装置,它的最终目的是控制机器(也就是设备)。
那什么是嵌入式系统呢?简单的说:嵌入式系统是使用计算机程序直接控制设备的一种系统,它包含嵌入式计算机系统和被控制的装置(通常是硬件)。
一个嵌入式系统通常由硬件层、中间层(驱动)、系统软件层和应用软件层(包括框架和最终的应用程序)组成,如下图(以android为例):
(1)图中并没有硬件层,对于android系统来说,硬件层可能是手机、平板电脑、录像机、汽车、电饭煲、电烤箱、微波炉等。一切你能想到的自动电子设备、仪器、装置都使用了嵌入式技术。
(2)图中红色部分为中间层,中间层负责软件与硬件的衔接,我们使用的驱动程序就是中间层技术。
(3)图中绿色部分为系统软件层,系统软件可以通过驱动程序间接控制硬件(或与硬件交互),而对于android系统来说,这里包含的是系统运行的基本类库和捆绑类库。
(4)图中黄色部分为应用程序运行时需要的环境,即应用程序访问类库的接口。
(5)蓝色部分分为application framework和applications两个部分,其本质是一致的,都是在基本类库之上构建的高级语言程序,这些程序是我们平常使用的应用软件,如QQ、360、微信等。
从上面的分析可以知道,对于嵌入式开发我们至少需要如下3类程序员:
(1)硬件工程师:负责电路系统、集成电路系统等硬件的设计,辅助驱动程序的开发。
(2)系统软件工程师;:负责驱动开发、在驱动上构建操作系统以及基本类库和运行时环境的开发,需要提供操作和控制硬件的方法(程序)。
(3)应用软件工程师:负责开发应用程序(通常使用Java等高级语言)。
综上:对于应用软件工程师这个级别则不再区分是否为嵌入式软件工程师,即如果你只是单纯的在已有的操作系统上(如window、linux等)进行应用程序的开发(例如:管理系统、网站、客户端应用、服务开发等),则不是嵌入式软件工程师。
只有涉及上图绿色和红色部分开发的软件工程师才能称为嵌入式软件工程师。