2 软件功能与组成
系统的软件包括嵌入式操作系统、GUI 图形用户界面、应用程序三个部分,其中嵌入式操作系统和GUI 图形用户界面属于关键技术,它们的好坏决定了系统能否得到成功的应用。应用程序建立在嵌入式操作系统和GUI 图形用户界面之上,上电之后启动过程如图2 所示。在本软件设计中,操作系统采用使用广泛的内核源代码开放的嵌入式Linux,GUI 图形用户界面采用源代码开发的Micro windows 。
3.2 交叉编译环境的建立
在满足系统稳定、安全、可靠的基础上,嵌入式产品的体积要尽可能小,从而不能够提供足够的资源供编译过程使用,因此,必须建立一种交叉编译的环境,即在高性能的宿主机上对即将运行于目标机上的程序进行编译,生成可在目标机上可以运行的代码格式,然后下载到目标机中运行。Linux 环境下使用GNU 工具完成编译、链接等过程,包括针对目标系统的编译器gcc、针对目标系统的二进制工具binutils 、针对目标系统的标准c 库glibc 和针对目标系统的Linux 内核头文件。
在linux 的根目录下,通过命令tar Ixvf cross-2.95.3.tar.bz2 进行解压缩,执行完毕之后在/usr/local/ 目录下自动生成arm/2.95.3 目录,进入2.93.3 目录下可以看到arm-linux 、bin、include 、lib 等各种目录,说明交叉编译工具安装完毕,编译环境已经建立起来了。
3.3 引导程序的移植
受嵌入式系统资源的限制,嵌入式系统的引导程序并不像PC 机上的引导程序一样是由BIOS 和位于硬盘MBR 中的引导程序组成,整个系统的引导加载任务主要是由一个称为BootLoader 的引导程序来完成的。BootLoader 是系统复位后首先要执行的代码,主要作用是初始化硬件设备、建立内存空间的映射等,将系统的软硬件环境带到一个合适的状态,从而为操作系统和应用程序的调用建立一个良好的环境。
系统的软件设计中采用的引导程序是韩国Mizi 公司开发的BootLoader----vivi 。在嵌入式系统中,BootLoader 是高度依赖于硬件的,在嵌入式系统中建立一个通用的BootLoader 几乎是不可能,因此对于每一种特定的平台,都要移植一个BootLoader。可以说建立一个与平台配套的、易于使用的BootLoader ,是软件设计的关键一步。
针对本系统的引导程序移植的思路是找到一个与所设计的平台最相近的平台的BootLoader,然后根据所设计平台的硬件参数对BootLoader 进行修改,从而完成BootLoader 的移植。首先根据实际情况修改vivi 工程管理文件Makefile 文件中的相关参数,包括交叉编译器库和头文件路径,交叉编译开关选项设置,Linux 内核代码中的库和头文件路径等。然后根据硬件平台的参数修改相应的配置,如处理器时钟、存储器初始化、通用I/O 初始化等等。然后进行配置、编译生成可执行的代码。