嵌入式Linux下基于MiniGUI的信息终端软件开发
摘要:嵌入式系统的开发已成为新的行业热点。本文首先概述嵌入式Linux系统开发的特点及其工具,然后具体描述MiniGUI图形系统的移植、使用方法,并举例说明在该系统上开始信息终端软件的过程。该方案有很大的应用前景。
关键词:嵌入式操作系统 Linux MiniGUI 信息终端
引言
近年来,随着软硬件资源的成熟与完善,嵌入式技术越来越和人们的生活紧密相关,功能单一的公用电话也开始向嵌入式多媒体信息终端转型。对嵌入式系统的研究,在全球激起了人们极大的兴趣。
选择开放源码的Linux操作系统开发新一代嵌入式产品已经成为其中新的技术热点。在本系统中,采用了MontaVista Linux系统。它提供了很多处理器、目标板和主机环境的组合,有一套完整的辅助开发工具,便于嵌入式系统专用人员设计、开发和发布应用程序。
与此同时,配备一个优秀的图形用户界面,使产品和用户能进行友善可靠的交互也已成为开发工作中非常紧迫的要求。本系统中使用的MiniGUI就是嵌入式Linux系统下一个轻量级的图形用户界面支持系统,目前已比较成熟,并已被用到很多项目的实际开发中。
1 嵌入式Linux系统
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁减。适用于用户系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。从20世纪80年代末开始,陆续出现了一些嵌入式操作系统,如VxWorks、pSOS、WindowsCE、Linux等。其中免费源代码的Linux操作系统因其内核小、支持多种硬件平台、可裁减性好等显著优点,得到了广泛的关注,为嵌入式系统开发提供了一个极有力的选择。
(2)MontaVista Linux
目前,已有多家公司推出了嵌入式Linux发行版本。本系统中采用的是应用全球三大嵌入式Linux供应商之一MontaVista Software公司的最新版MontaVista Linux3.0。它使用的是最标准Linux内核2.4.2,是针对嵌入式设备度身定制的实时的、专业的嵌入式操作系统。考虑到嵌入式设备处理器、存储器资源有限的情况,在不减少新内核对嵌入设备有利特性的基础上,MontaVista公司对内核部分进行了高度裁减、配置,使MontaVista Linux 3.0。它使用的是标准Linux内核2.4.2,是针对嵌入式设备度身定制的实时的、专业的嵌入式操作系统。考虑到嵌入式设备处理器、存储器资源有限的情况,在不减少新内核对嵌入设备有利特性的基础上,MontaVista公司对内核部分进行了高度裁减、配置,使MontaVista Linux 3.0系统性能具备稳定、突出等特点,同时还为MontaVista Linux 3.0配备了一个由优先级驱动的实时调度器(RealTime Scheduler),从而使客户对实时性的要求得到更大的满足。
2 软件开发平台
MontaVista Software公司在嵌入式Linux发行版中已提供了系统开发所需的环境:
a)内核和文件系统工具——目标配置工具(TCT)、库优化工具(LOT);
b)交叉开发工具——GNU GCC/C++编译器、GDB源码调试器、DDD图形界面调试器等;
c)实时性能工具和分析工具。
系统内核则通过Abatron公司的BDI2000调试器进行测试,内核运行于PowerPC体系的CPU上。该目标系统已实现以太网接口、串口、USB接口,LCD也能正常显示。
3 系统框架结构
应用程序是最上层的开发,其交互界面直接通过MiniGUI图形系统的API接口函数实现。MiniGUI屏蔽了对底层显示、输入设备编程的细节,使程序员更能专注于信息终端界面的特色上,从而缩短了编程投入时间。MiniGUI图形率编译安装后一般以库的形式存放在操作系统/usr/lib文件目录下。
该嵌入式系统的框架结构如图1所示。javascript:window.open(this.src);" style="cursor:pointer;"/>
4 MiniGUI的移植
(1)MiniGUI特点
MiniGUI是由魏永明主挂的一个自由软件项目,现完全遵循GPL(General Public License)条款的纯自由软件,可以运行在任何一种具有POSIX线程支持的POSIX兼容系统上。MiniGUI在体系结构上有许多独特之处。它的主要特色有:
a)提供了完备的多窗口机制;
b)对话框和预定义的控件类;
c)消息传递机制;
d)多字符集和多字体支持;
e)全拼、五笔等汉字输入法支持;
f)BMP、GIF、JPEG等常见图像文件的支持;
g)小巧,包含全部功能的库文件大小为300KB左右;
h)可配置,可根据项目需求进行定制配置和编译;
i)可移植性好。
(2)MiniGUI的移植过程
要使MiniGUI运行在入式目标板PPC上,需在MontaVista Linux 3.0的交叉开发环境下移植该图形包。
MiniGUI 1.2.6版发布时含资源文件压缩包minigui-res1.2.6.tar.gz、库文件压缩包libminigui-1.2.6.tar.gz和一个综合示范程序mde-1.2.6.tar.gz。
在开发主机上安装好MontaVista Linux 3.0后,把主机NFS服务的输出目录配置为硬盘路径/opt/hardhat/devkit/ppc/8xx/target。目标板运行起来后,会自动挂载到该目录下。
将该目标作为当前路径安装MiniGUI。
打开资源文件压缩包,执行如下命令
tar-xvf minigui-res-1.2.6.tar.gz
会自动在当前路径下生成minigui-res目录。在该目录下可以看到config.linux文件,修改其中TOPDIR=NONE一项,使TOPDIR=/opt/hardh