MINIGUI图形界面开发入门

原创 2007年09月13日 20:35:00
 
MINIGUI图形界面开发入门
  
1引言
MiniGUI 1998 年底推出以来,越来越多的人开始选择 MiniGUI Linux 上开发实时嵌入式系统。MiniGUI 系统也逐渐成熟,应用到各种嵌入式系统中,包括PDA、机顶盒、DVDMP4播放器等。本文讲解基于 Linux MiniGUI 的嵌入式系统软件开发,,其内容不仅仅限于 MiniGUI 的编程,还会涉及到一些 Linux 下嵌入式系统软件开发的技巧,包括交叉编译环境的建立,根文件系统的生成等。
2图形用户界面MiniGUI简介
MiniGUI 是由北京飞漫软件技术有限公司拥有版权并主持和维护的自由软件,遵循 GPL 条款发布(1.2.6及之前的版本以LGPL条款发布),其目标是为实时嵌入式 Linux/uClinux、eCos、uC/OS-II、VxWorks 等操作系统建立一个快速、稳定和轻量级的图形用户界面支持系统。 与QT/Embeddoed、MicoroWindows等其他GUI相比,MiniGUI最大的特点是占用资源少,在主频为66M的ARM7内核也能够稳定的运行。经过几年的发展已经发布了很多的版本,现在比较稳定的是1.6.x版本,而且源码是开放的,方便我们大家学习的研究。本文就是采用的此版本。
3 MiniGUIS3C2410开发板上的移植过程
3.1 MniGUI运行的环境的搭建
在 Linux/uClinux 上运行,要求 Linux FrameBuffer 驱动程序的功能正常。在 PC 上,如果显示芯片是 VESA 兼容的,则可以通过 Linux 的 VESA FrameBuffer 驱动程序获得较好的支持。对没有 FrameBuffer 支持的 Linux/uClinux 系统,需要编写特定的图形引擎才能运行 MiniGUI。MiniGUI 1.6.x 中已包含了针对非 FrameBuffer 驱动的图形引擎实现,另外在没有 FrameBuffer支持的系统上运行也可以借助虚拟软件实现相同的功能,在这里只是在有FrameBuffer支持的linux操作系统上的MiniGUI的移植。用到的交叉编译工具链是cross-2.95.3.tar.bz2交叉编译器是arm-linux-gcc2.95.3,这些工具软件通常在网上下载或是由硬件供应商会提供。在这里需要注意的是开发板上的linux的glibc的版本一定要和cross-2.95.3.tar.bz中的glibc一致,我们使用的是glibc-2.2.3。
3.2交叉编译MiniGUI
libminigui-1.6.x.tar.gz:MiniGUI 函数库源代码,其中包括libminigui、libmgext 和 libvcongui。
minigui-res-1.6.tar.gz: MiniGUI 所使用的资源, 包括基本字体、图标、位图和鼠标光标。 mg-smaples-1.6.x.tar.gz:《MiniGUI 编程指南》的配套示例程序。
先安装MiniGUI的函数库,我们先在PC的根目录下建立一个名为minigui的目录,将下载的三个源码包全部复制到minigui目录下,再在minigui目录下建立一个名为miniguitmp的目录,用来存放生成的文件和minigui库函数。
解压libminigui-1.6.x.tar.gz(tar zxf libminigui-1.6.x.tar.gz )
生成libminigui-1.6.x.目录,编写脚本文件配置lib内容如下:
./configure—host=arm-unknown-linux—enable=jpgsupport=no
--enable-pngsupport=no—enable-gifsupport=no –disable-lite
--prefix=/minigui/miniguitmp –enable-smdk2410ial=yes
保存为setup.sh
host用于指明宿主机的类型disable-lite用来指定生成基于线程的minigui版本而不是生成基于进程的minigui版本prefix用于指定MiniGUI函数库的安装路径/minigui/miniguitmp
进入该目录运行./configure脚本文件,我们为了适合我们的开发板做了适当的修改,其他的开发板类似。
根据PC机的交叉编译环境安装的路径修改libminigui-1.6.x.目录下的configure文件,在文件的开头处加入编译器的安装路径,然后保存,笔者主机上交叉编译器安装路径是/usr/local/arm/,所以修改如下:
CC=/usr/local/arm/2.95.3/bin/arm-linux-gcc
CPP=/usr/local/arm/2.95.3/bin/cpp
LD=/usr/local/arm/2.95.3/bin/arm-linux-ld
AR=/usr/local/arm/2.95.3/bin/arm-linux-ar
RANLIB=/usr/local/arm/2.95.3/bin/arm-linux-ranlib
STRIP=/usr/local/arm/2.95.3/bin/arm-linux-strip
然后运行脚本文件
./ setup.sh
make
make install
如果运行成功,就会生成定制的MakeFile文件,执行make和make install 后相应的函数库就安装到/minigui/miniguitmp/lib下,在执行make install命令是用户一定要具有root权限。
下面安装MiniGUI资源,这些资源包括基本字体、图标、位图和鼠标光标等等。解压minigui-res-1.6.tar.gz(ar zxf minigui-res-1.6.tar.gz),进入生成目录,修改configure.linux文件,指明TOPDIR=/minigui162/miniguitmp
执行
make install
就可以把相关文件拷贝到/minigui/miniguitmp/目录下的相关目录中去。
执行后会在/minigui/miniguitmp/ 下生成usr/local/lib/minigui/res 相关目录,以下为res目录下的子目录,用户有兴趣可以进入以下目录查看其中的内容。
bmp  cursor  font  icon  imetab
3.3 制作带有MiniGUI的文件系统映象(root_minigui.cramfs)
CRAMFS是Linus Torvalds撰写的只具备基本特性的文件系统。CRAMFS是一个简单的,经压缩以及只读的文件系统,通常要为文件系统建立映象,首先要建立并安装CRAMFS工具,在这里我们使用mkcramfs工具建立自己的文件系统映象。
开发板上的linux,自带有VESA FrameBuffer设备驱动程序,并且初始状态已经激活,这样MiniGUI就可以使用FrameBuffer作为图象引擎来显示图象。有关FrameBuffer支持的详细情况请读者参考《S3C2410开发板用户手册》北京蓝海微芯科技发展有限公司。
将/minigui/miniguitmp/lib中所有的库文件复制到root_minigui的/usr/lib中,将 /minigui/miniguitmp/usr/local/lib/minigui目录复制到root_minigui的/usr/lib目录中,在/root_dir/root_minigui/usr/local 下执行ln –s /usr/lib lib,生成一个链接文件。
修改/minigui/miniguitmp/etc/MiniGUI.cfg文件,
找到
ial_engine=console
mdev=/dev/mouse
改为
ial_engine=SMDK2410
mdev=/dev/ts
然后保存退出。
把/minigui162/miniguitmp/etc/MiniGUI.cfg文件复制到/root_dir/root_minigui/usr/local/目录中。
以上把MiniGUI运行库和其它资源环境已经拷贝到root_minigui文件系统中,同时把mg-samples-str-1.6.2/src/下可执行文复制到/usr/local/bin下。然后编译文件系统,在/root_dir执行
[root@localhost root_dir]# mkcramfs  root_minigui  ro`ot_minigui.cramfs
就可以生成 root_minigui.cramfs 文件系统映象
把root_minigui.cramfs 复制到 PC 机的/tftproot 下,通过tftp命令把文件系统下载到2410开发板上。
重启开发板后执行:
#cp /usr/local/bin/* /tmp                                       //将可执行文件复制到/tmp 临时目录下
#cd /tmp                                                    //用cd 命令去到/tmp 目录下
经过以上工作,用户就可以在/tmp目录下执行自己的应用程序了。
例如:
执行
#chmod 777 helloworld                                   //改变权限,使其为可执行
#./helloworld                                               //执行 helloworld
这样我们就成功的将带有minigui界面的文件系统成功的移植到了我们的开发板上了。
 
 

相关文章推荐

PyQT4图形界面开发入门实例

QT图形界面开发入门实例  目录 一、前言 二、代码 三、解析 四、参考文献 一、前言 为什么我要写这个博客?因为我明明去年暑假花了一天时间开发出了界面,今年暑假就忘了,...

linux嵌入式下的QT图形界面开发(入门篇详解)

Qt 嵌入式图形开发(入门篇)一、Qt/Embedded 开发环境的安装一般来说,居于Qt/Embedded开发的应用程序最终会发布到安装有嵌入式Linux操作系统的小型设备上,所以使用装有Linux...

QT4 Creator下的图形界面编程入门

1) Qt4 creator的使用 新建工程: 进入Applications -> Programming -> Qt Creator,启动Qt Creator,进入File -> New,选...

java入门教程-10.1Java图形界面设计基础

早先程序使用最简单的输入输出方式,用户在键盘输入数据,程序将信息输出在屏幕上。现代程序要求使用图形用户界面(Graphical User Interface,GUI),界面中有菜单、按钮等,用户通过鼠...
  • softn
  • softn
  • 2016年05月27日 09:49
  • 1950

Java图形界面-Swing入门与布局管理

Java图形界面-Swing入门与布局管理 前言:Java中提供了丰富的图形界面工具,现在我们就一起来看看吧! 、 ...

android图形界面开发

  • 2017年11月14日 15:55
  • 1015KB
  • 下载

java实现愤怒的小鸟游戏之Java swing图形界面开发游戏项目愤怒的小鸟源码及实现方式详解

今天给大家介绍一下Java swing实现游戏愤怒的小鸟的过程,完整源码下载地址在最下方,老规矩,先看运行结果: 下面我们来看看代码: /* * To change this templ...
  • llqqxf
  • llqqxf
  • 2016年07月13日 16:43
  • 3253
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MINIGUI图形界面开发入门
举报原因:
原因补充:

(最多只允许输入30个字)