从Linux操作系统问世以来,由于其开发源码的特性,使其在各个领域都迅猛发展。随着Linux本身的性能不断提高,支持的处理器种类也越来越多,使得它成为嵌入式系统应用的热点。与普通的商用相比,Linux操作系统具有如下这些优点: ·可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对加快项目的研发进度很有利。原型可以在标准平台上开发然后移植到具体的硬件上,加快了软件与硬件的开发过程。 ·Linux可以随意地配置,不需要任何许可证或商家的合作关系。 ·它是免费的,源代码可以得到。在国际互联网上有大量的免费资源,包括从底层的设备驱动程序到上层的图形界面环境。 ·它本身内置网络支持。 ·Linux的高度模块化使添加部件非常容易。 ·Linux在服务器市场上的成功,说明Linux是一个稳定的、可靠的操作系统。因此,许多公司都在它们的嵌入式系统中使用Linux。包括手机、PDA、机顶盒、路由器等领域。Linux操作系统和普通的嵌入式操作系统相比,在系统结构、开发方法和开发工具方面都有很大的差异。本文以目前使用最多的商用嵌入式操作系统为代表,着重比较和分析了作为嵌入式应用的Linux操作系统与普通的嵌入式操作系统在BSP (板级支持包)开发方面的差异,对由此而引起的性能变化和开发的难度作了简要的分析。
2.1 Linux引导装载器的系统引导的开发
同VxWork的BSP的系统引导部分的开发类似,Linux引导装载器在系统上电后的工作基本类似,主要有如下内容: (1) 处理器工作状态的设定:设定接下来处理器的工作方式,设置堆栈区的指针,处理器的运行频率等。 (2) 内存的初始化和配置:内存的初始化也是Linux引导装载器的工作,Linux操作系统内核是不作内存的物理初始化和配置的,这些工作需要在装载器里完成。并在装载系统时,把内存大小、地址范围等参数传递给Linux 内核。 Linux引导装载器的系统引导部分的开发还有其他一些内容,如点灯等。
3 Linux和的BSP的开发比较和分析
作为一个商用的,它的BSP开发非常规范,提供很多模板,层次结构都非常清晰。而对于Linux的BSP来说,驱动程序的开发的接口,模板都是很标准的,各种资源也非常多。但是,Linux的系统装载器并无一个明确的规范,不同的发布版本有着不同的配置。由于Linux的开放源代码的特性,Linux的系统装载器的发展很快,资源很多,如PPC、ARM、MIPS、X86等各种系列处理器评估板的Linux引导装载器程序(包括源代码)都可以从互联网上免费得到。
3.2 设备驱动部分的比较和分析
由于Linux操作系统和Linux引导装载器在结构上的分离,使得它俩之间的设备驱动程序不能够通用,当然在芯片的硬件初始化一些硬件相关的代码上可以互相借鉴。而 的BOOTROM和运行版本的设备驱动是相同的,因为,它的运行版本和BOOTROM的结构是一致的,使用同一操作系统内核。 Linux操作系统的设备驱动运行在内核空间,用户进程运行在用户空间。在Linux操作系统中,内核空间和用户空间的内存管理和映射方式是不同的,应用和设备驱动在数据交换时会涉及到不同的内存空间,会影响到一定效率,但这个问题可以通过修改系统内存空间配置等方法来解决。 操作系统没有分开内核空间和用户空间,设备驱动和应用都运行于同一空间,相互之间的内存都可以访问,数据交换非常方便,但是,这种结构的稳定性就不如 Linux系统好了。两种操作系统都提供了很多设备驱动的资源和模板。但是由于Linux的开源特性,它提供的设备驱动的种类和数量远远超过了.
4 结论
本文简单介绍了Linux和操作系统的BSP开发的内容。通过比较发现,作为专业的商用实时操作系统,提供BSP开发方式,开发资源都非常适宜于嵌入式应用。而Linux作为从通用操作系统发展而来的,在嵌入式应用的BSP开发方面,需要多做一些工作,但是它却有更丰富的资源。
阅读(1526) | 评论(0) | 转发(0) |