探究MiniGUI到EV44B0Ⅱ上移植

来源:期刊VIP网所属分类:光电技术发布时间:2014-01-20浏览:

  摘 要:详细介绍了MiniGUI到EV44B0II的移植过程,主要就是编写适用于目标硬件的GAL图形引擎和IAL输入引擎。上述移植可以快速构建一个可视化软件系统,“嵌入式Linux+MiniGUI图形系统”的设计模式是嵌入式可视化软件系统较理想的设计模式,将大大缩短嵌入式可视化软件的开发周期。

  关键词:MiniGUI;图形引擎;EV44B0II;移植

  引言

  要在自己的ARM嵌入式系统[1]中使用MiniGUI,首先目标板要有足够的硬件资源;之后为目标板编写MiniGUI的图形引擎(GAL)和输入引擎(IAL)[2];接下来就可以配置MiniGUI交叉编译MiniGUI函数库及其应用程序;编译通过后,就可以在目标板上搭建MiniGUI应用环境;最后就可以启动MiniGUI应用程序了。

  1 MiniGUI

  只要某个硬件平台上运行有MiniGUI所支持的操作系统,MiniGUI就能在这个平台上运行。MiniGUI本身的占用空间非常小,在2MB到4M左右。在某些系统上,尤其是在传统嵌入式操作系统中,功能完备的MiniGUI系统本身所占用的空间可进一步缩小到1MB以内。和其它针对嵌入式产品的图形系统相比,MiniGUI对系统的需求具有如下几大优势:可伸缩性强、轻型、占用资源少、高性能、高可靠性和可配置性。

  2 移植过程

  2.1在PC机上安装MiniGUI

  将MiniGUI函数库源代码、资源文件复制到PC机的Linux操作系统的特定目录下,解压,以便于进行交叉编译。在“终端”窗口使用以下命令完成解压,对于较长的文件名或目录名,可以使用“*”通配符指定。

  #cd /home/minigui

  #tar zxf lib*.gz

  #tar zxf mini*.gz

  #tar zxf mg*.gz

  2.2 MiniGUI的GAL移植

  MiniGUI引入了图形抽象层和输入抽象层(Graphics and Input Abstract Layers,即GAL和IAL)的概念。在libminigui-str-1.6.2/src/gal/native目录下建立一个源文件commlcd.c,编写老的GAL接口的几个接口函数[3]。

  //使用native图形引擎的数据结构和fb(Framebuffer)的驱动程序

  #include "native.h"

  #include "fb.h"

  #include "lcddrive.h"

  //图形引擎初始化函数

  //初始化正确返回PSD结构,否则返回NULL

  Static PSD fb_open(PSD psd)

  { PSUBDRIVER subdriver;

  TftInit();

  Fprintf(stderr,"GAL Common engine:Init LCM!\n");

  psd->planes=1; //单屏

  #if SWAP_XY_EN==1

  psd->xres=GUI_LCM_YMAX;

  psd->yres=GUI_LCM_XMAX;

  #else

  psd->xres=GUI_LCM_XMAX;

  psd->yres=GUI_LCM_YMAX;

  #endif

  };

  在libminigui-str-1.6.2/src/gal/native目录下建立液晶驱动程序文件lcddrive.c和lcddrive.h,由于在lcddrive.c文件中使用了S3C44B0的头文件,所以要将此文件复制到libminigui-str-1.6.2/src/gal/native目录下。设置libminigui-str-1.6.2/src/gal/native目录下的Makefile.am文件,在lib_native_la_SOURCES变量最后加入lcddrive.c和commlcd.c等文件。

期刊VIP网,您身边的高端学术顾问

文章名称: 探究MiniGUI到EV44B0Ⅱ上移植

文章地址: http://www.qikanvip.com/guangdianjishu/11370.html