MiniGUI在OMAP5912上的移植
引 言
随着嵌入式的飞速发展,以ARM为硬件平台和以Linux为软件平台的方式受到广泛的关注。图形用户界面GUI是迄今为止计算机系统中最为成熟的人机交互技术。MiniGUI作为一款优秀的图形用户界面支持系统,目前已在许多实际产品和项目中得到了应用,这里正是针对这样的需求,详细介绍如何在OMAP5912开发板上移植MiniGUI的全过程。
1 OMAP5912开发板简介
OMAP5912处理器是由TI应用最为广泛的TMS320C55X DSP内核(192 MHz)与低功耗、增强型ARM926EJ-S微处理器(192 MHz)组成的双核应用处理器,采用O.13μm CMOS工艺制造。C55xDSP可提供对低功耗应用的实时多媒体处理的支持;ARM926EJ-S MPU可满足控制和接口方面的处理需要。基于双核结构的OMAP5912具有极强的运算能力和极低的功耗,采用开放式、易于开发的软件设施,支持广泛的操作系统。
2 图形用户界面MiniGUI简介
与几种主流嵌入式GUI相比,MiniGUI具有以下显著特点:占用资源少,高性能,高可靠性,可配置。MiniGUl采用分层设计,层次结构如图1所示。
在最底层,GAL和IAL提供底层图形接口以及鼠标和键盘的驱动;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是编程接口API。GAL和IAL为MiniGuI提供了底层的Linux控制台或者X Window上的图形接口以及输入接口,大大提高了MiniGUI的可移植性,并且使程序的开发和调试变得更加容易。
3 MiniGUI在OMAP5912开发板上的移植过程
3.1 构建Linux交叉编译环境
本实例中宿主机系统为RedHat 9 Linux,交叉编译工具为cross-2.95.3.tar.bz2,把工具解压缩到/usr/local/arm目录下,然后执行export PATH=/usr/local/arm/2.95.3/bin:MYMPATH;将安装好的库资源的路径添加到PATH中。这样,交叉编译环境就构建完成。后面所有的资源文件和库文件都应安装在/usr/local/arm/2.95.3/arm-linux目录。
3.2 交叉编译MiniGUI资源文件
提供程序调用所需的资源,如位图、光标、界面控制条等,编译方法较简单,只需在宿主机环境编译后即可在开发板上使用,解压minigui-res-1.3.3.tar.gz,进入目录执行make install命令,资源文件会安装到/usr/local/lib下minigui目录中。
3.3 交叉编译MiniGUI库函数,并进行配置安装
首先解压缩libminigui-1.3.3.tar.gz,进入Fra-meBuffer控制器配置文件libminigui-1.3.3/src/new-gal/fbcon,修改fbvideo.C中GAL_fbdev="/dev/fb/O",这是因为系统启动后,其/dev目录下实际存在的设备文件不是fb而是/fb/0。通常Frame-Buffer作为标准字符设备处理,主设备号为29,次设备号则从0~31,分别对应/dev/fb/0-/dev/fb/31的设备文件。修改完后进入解压后的目录,执行以下命令以完成对编译选项的配置:
CC是用来指定所使用的编译器;-target选项用来指定目标平台;-host选项用来指明宿主机的类型;-build选项与-arget一样为arm-linux;-en-able-lite选项用来指定生的模式。MiniGUI 1.3.3有Threads和Lite两种模式,本例中采用Lite模式;-prefix选项用来指定MiniGUI函数库的安装路径,本例中安装路径为/usr/local/arm/2.95.3/arm-linux。如果运行成功,就会生成定制的Makefile文件,然后可以继续执行make和make install命令编译并安装libminigui。
3.4 加入辅助函数库的支持
3.4.1 安装zlib库
这个库是后面许多库编译的基础,解压zlib-1.2.3.tar.gz文件,zlib库的configure脚本不支持交叉编译选项,可以通过软链接方式,使目标文件指向当前的2.95.3版本的arm-linux-gcc和arm-linux-ld链接器;还可以将库文件设置为动态共享方式,通过这种方式,许多程序可以重复使用相同的代码,能有效减小应用程序的大小,打开Makefile并且添加如下代码:
其中:LDSHARED参数设置为共享模式生成libz.SO.1共享文件;CPP指定服务器路径。最后make installprefix=/usr/local/arm/2.95.3/arm-linux/安装到指定路径。
3.4.2 安装png库
这个库是用来显示png图形的,先解压libpng-1.0.10rcl.tar.gz文件,编译时,主目录下面没有配置文件,因此执行命令cp scripts/makefile.linux,将与开发系统体系结构一致的配置文件makefile.linux安装到主目录下面,然后还需要对makefile.linux文件进行修改:
其中:上述ZLIBLIB参数和ZLIBINC参数分别指定了库文件和头文件的路径。
3.4.3 安装jpeg库
这个库用来支持jpeg格式图片显示,编译过程与png库的编译过程类似:
3.4.4 安装libttf库
这个是TrueType字体的
- 基于ARM和Linux通用工控平台设计与实现(06-08)
- 基于MiniGUI的数字加密电话系统GUI设计(07-23)
- 基于MiniGUI的GPS导航定位系统设计(02-20)
- 基于嵌入式多媒体娱乐控制器的解决方案(10-10)
- 基于S3C2440的MiniGUI移植(07-17)
- MiniGUI在OMAP5912上的转移(06-05)