软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。对于很多对嵌入式软件系统不太了解的新手来说,对嵌入式软件系统的认识还是很模糊的,那么在这里就让你一次性了解个够,让你分分钟了解嵌入式软件系统。
首先我们先来看一下,嵌入式软件系统的分类有哪些:
这张图可以清楚的展现。
了解了嵌入式软件系统的分类,那接下来就是最重要的嵌入式软件系统的构成了,话不多说先上图:
嵌入式软件系统是由驱动层,操作系统层,中间件层,应用层构成的,下面一一来了解:
1.驱动层
这部分比较难,驱动工程师不仅要能看懂电路图还要能对操作系统内核十分的精通,以便其所写的驱动程序在系统调用时,不会独占操作系统 时间片,而导至其它任务不能动行,不懂操作系统内核架构和实时调度性,没有良好的驱动编写风格,按大多数书上所说添加的驱动的方式,很多人都能做到,但可 能连个初级的驱动工程师的水平都达不到,这样所写的驱动在应用调用时就如同windows下我们打开一个程序运行后,再打开一个程序时,要不就是中断以前 的程序,要不就是等上一会才能运行后来打开的程序。想做个好的驱动人员没有三、四年功底,操作系统内核不研究上几编,不是太容易成功的,但其工资在嵌入式 系统四层中可是最高的。
驱动层比较适合于电子、通信、自动化、机电一体、信息工程类专业尤其是计算机偏体系结构类专业的人来搞,除硬件层所具备的基础学科外,还要对数据结构与算法、操作系统原理、编译原理都要十分精通了解。
2. 操作系统层
对于操作系统层目前可能只能说是简单的移植,而很少有人来自已写操作系统,或者写出缺胳膊少腿的操作系统来,这部分工作大都由驱 动工程师来完成。操作系统是负责系统任务的调试、磁盘和文件的管理,而嵌入式系统的实时性十分重要。据说,XP操作系统是微软投入300人用两年时间才搞 定的,总时工时是600人年,中科院软件所自己的女娲Hopen操作系统估计也得花遇几百人年才能搞定。因此这部分工作相对来讲没有太大意义。
3.中间件层
目前在一些复杂的嵌入式系统中也开始采用中间件技术,主要包括嵌入式CORBA、嵌入式Java、嵌入式DCOM和面向应用领域的中间件软件
4.应用层
相对来讲较为容易的,如果会在windows下如何进行编程接口函数调用,到操作系统下只是编译和开发环境有相应的变化而已。如果涉 及Jave方面的编程也是如此的。嵌入式系统中涉及算法的由专业算法的人来处理的,不必归结到嵌入式系统范畴内。但如果涉及嵌入式系统下面嵌入式数据库、 基于嵌入式系统的网络编程和基于某此应用层面的协议应用开发方面又较为复杂,并且有难度了。
嵌入式软件系统的构成很简单,如果你要学习的话,建议一个一个来攻破,把握每一个构成的特点,那么你就会学的很快,而且,现在嵌入式行业发展这么快,还不快抓紧机会?