近年来,随着数字技术的发展、新的体积更小的控制芯片以及功能更强的操作系统的出现,手持设备被更广泛的应用于人们的日常生活中。Linux系统因为其源码开发、高可靠性和高效率等优势受到开发者和市场的推崇。下面粤嵌长沙Linux学习讲讲基于Linux的软件系统设计。
软件功能与组成。系统的软件包括嵌入式操作系统、GUI图形用户界面、应用程序三个部分,其中嵌入式操作系统和GUI图形用户界面属于关键技术,它们的好坏决定了系统能否得到成功的应用。
交叉编译环境的建立。在满足系统稳定、安全、可靠的基础上,嵌入式产品的体积要尽可能小,从而不能够提供足够的资源供编译过程使用,因此,必须建立一种交叉编译的环境,即在高性能的宿主机上对即将运行于目标机上的程序进行编译,生成可在目标机上可以运行的代码格式,然后下载到目标机中运行。Linux环境下使用GNU工具完成编译、链接等过程,包括针对目标系统的编译器gcc、针对目标系统的二进制工具binutils、针对目标系统的标准c库glibc和针对目标系统的Linux内核头文件。
引导程序的移植。受嵌入式系统资源的限制,嵌入式系统的引导程序并不像PC机上的引导程序一样是由BIOS和位于硬盘MBR中的引导程序组成,整个系统的引导加载任务主要是由一个称为BootLoader的引导程序来完成的。BootLoader是系统复位后首先要执行的代码,主要作用是初始化硬件设备、建立内存空间的映射等,将系统的软硬件环境带到一个合适的状态,从而为操作系统和应用程序的调用建立一个良好的环境。
内核的移植。由于嵌入式系统是针对特定应用的,而且资源有限,所以标准Linux无法应用到嵌入式系统中,因此必须根据实际情况对Linux进行裁剪、配置,从而产生一个适用的嵌入式Linux操作系统。Linux内核的移植包括获取源代码、修改设置、裁减配置和编译。
驱动程序的编写。驱动程序是操作系统内核和底层硬件之间的接口,驱动程序为应用程序屏蔽了硬件的细节,通过驱动程序,应用程序对硬件的操作可以像对普通的文件操作一样方便。驱动程序的主要作用是初始化和释放硬件设备,检测和处理硬件设备出现的问题,在应用程序、内核和底层硬件之间传输数据。
根文件系统。一个嵌入式产品的稳定运行,除了引导程序、内核之外,还必须有一个区域用来为用户提供支持架构和用户使用的应用软件,存放数据读写的结果,这个区域就是根文件系统。
粤嵌长沙Linux学习对于基于Linux的软件系统设计的概括。总的来说,学习总是永无止境的。