MiniGUI在OMAP5912上的转移
引 言
本文引用地址:http://www.amcfsurvey.com/article/148949.htm随着嵌入式的飞速发展,以ARM为硬件平台和以Linux为软件平台的方式受到广泛的关注。图形用户界面GUI是是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。 MINIGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于 1998 年底开始开发。2002 年,魏永明先生创建北京飞漫软件技术有限公司,为 MiniGUI 提供商业技术支持,同时也继续提供开源版本,飞漫软件是中国地区为开源社区贡献代码最多的软件企业。最后一个采用 GPL 授权的 MiniGUI 版本是 1.6.10,从 MiniGUI 2.0.4 开始 MiniGUI 被重写并使用商业授权。
1 OMAP5912开发板简介
OMAP5912处理器将 TMS320C55x DSP 的核心和 ARM925 整合在同一个处理器中,这样的最理想的整合方式,拥有高效能和低m电的设计。OMAP5912同时可以利用 DSP 处理高复杂度的数字信号处理,也可以利用 ARM 来做通讯、控制和人机接口的处理。C55xDSP可提供对低功耗应用的实时多媒体处理的支持;ARM926EJ-S MPU可满足控制和接口方面的处理需要。基于双核结构的OMAP5912具有极强的运算能力和极低的功耗,采用开放式、易于开发的软件设施,支持广泛的操作系统。
OMAP5912较常使用在手持式设备上,例如:手动电话、PDA 和 手持式影音设备等,因为同时结合了 DSP 和 ARM 所以整体执行效率,会比市面上的手持式设备还来得高。 OMAP5912 目标应用:需要密集信号处理的设备通讯终端 WAN 802.11XBluetoothGSM, GPRS, EDGECDMA视频和图像处理(MPEG4, JPEG, Windows? Media Video, etc.)高级语言处理应用(text-to-speech, speech recognitiON)音频处理((MPEG-1 Audio Layer3 [MP3], AMR, WMA, AAC, and Other GSM Speech Codecs)图形和视频加速
2 图形用户界面MiniGUI简介
与几种主流嵌入式GUI相比,MiniGUI具有以下显着特点:占用资源少,高性能,高可靠性,可配置。层次结构如图1所示。
在最底层,GAL和IAL提供底层图形接口以及鼠标和键盘的驱动;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是编程接口API.GAL和IAL为MiniGuI提供了底层的Linux控制台或者X Window上的图形接口以及输入接口,并且使程序的开发和调试变得更加容易。
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脚本不支持交叉编译选项,可以通过软链接方式;还可以将库文件设置为动态共享方式,通过这种方式,许多程序可以重复使用相同的代码,能有效减小应用程序的大小,打开Makefile并且添加如下代码:
其中:LDSHARED参数设置为共享模式生成libz.SO.1共享文件;CPP指定服务器路径。最后makeCinstallprefix=/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库的编译过程类似:
评论