MINIGUI在S3C2410开发板的移植

MINIGUI在S3C2410开发板的移植,第1张

 

  1 引言

  本文讲解基于 LinuxMiniGUI 的嵌入式系统软件开发,其内容不仅仅限于 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 MiniGUI在S3C2410开发板上的移植过程

  3.1 MiniGUI运行的环境的搭建

  在 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

  首先,从网上下载三个源码包(http://www.minigui.org/),同时可以下载到相应的用户手册。

  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

  

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2713212.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存