期刊库

教育   经济   科技   财会   管理   
医学   法学   文史   工业   建筑   
农学   水利   计算机   更多>>
 首 页    论文大全   论文精品    学术答疑    论文检测    出书咨询    服务流程    诚信通道    关于我们 

MiniGUI到EV44B0Ⅱ上的移植研究

人气指数: 发布时间:2011-01-26 16:45  来源:http://www.zgqkk.com  作者: 中国期刊库
分享到:

 

作者:曹望成

【摘  要】MiniGUI建立在比较成熟的图形引擎之上,其特点是小巧精致并尽量保持与Win32的兼容。讲解MiniGUI到EV44B0II的移植工作,提出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等文件为了使MiniGUI能够正确使用移植的图形引擎,还需要进行注册[4]。
    2.3 MiniGUI的IAL移植
    在libminigui-str-1.6.2/src/ial目录下建立源文件comminput.c及头文件comminput.h,在comminput.c文件中编写IAL接口的几个接口函数。
    在libminigui-str-1.6.2/src/ial建立键盘驱动程序文件comm_drive.c,实现键盘的读取和键码的转换,具体源代码在Micetek EV44B0II产品的配套光盘上。键盘驱动程序文件comm_drive.c把EV44B0II开发板上的16个按键定义为0~9、TAB、ESC和ENTER等功能。设置libminigui-str-1.6.2/src/ial目录下的Makefile.am文件,新定义一个变量COMMINPUT_SRCS,变量赋值为comminput.c和comm_drive.c等文件,并在libial_la_SOURCES变量最后加入COMMINPUT_SRCS的引用,这样在编译MiniGUI时就可以编译这些移植的IAL源文件了。
    为了使MiniGUI能够正确使用移植的输入引擎,还需要进行注册。
    2.4交叉编译MiniGUI
    针对EV44B0II开发板需要专门编写一个配置脚本buildlib-ev44b0ii,文件保存在libminigui-1.6.2目录下。可以从libminigui-str-1.6.2/build目录下复制build-uCLinux-s3c44b0文件,然后更改文件名为buildlib-ev44b0ii,修改文件内容即可。
    2.5设置MiniGUI运行环境
    打开“终端”窗口,执行以下指令安装资源文件。执行完以下指令后,在/usr/local/lib/minigui目录下会产生一个res目录,该目录下保存有MiniGUI的资源文件(如图片、图表和字体等)。
    #cd  /home/minigui/minigui-res-str-1.6
    #make  install
    MiniGUI运行时需要使用MiniGUI.cfg,主要配置使用的有图形引擎、输入引擎和窗口字体等。修改/home/minigui_lib/etc目录下MiniGUI.cfg文件,使用commlcd图形引擎和comm输入引擎。
    结语
    详细介绍了MiniGUI到EV44B0II的移植过程,主要就是编写适用于目标硬件的GAL图形引擎和IAL输入引擎。上述移植可以快速构建一个可视化软件系统,“嵌入式Linux+MiniGUI图形系统”的设计模式是嵌入式可视化软件系统较理想的设计模式,将大大缩短嵌入式可视化软件的开发周期。

参考文献:
[1]周立功.ARM嵌入式系统基础教程[M].北京:北京航空航天大学出版社,2005.
[2]詹瑾瑜,熊光泽,孙明.一种嵌入式GUI软件结构实现方案[J].电子科技大学学报,2003,32(1):2-4.
[3]马晓波.嵌人式GUI的研制-GUI支撑技术的研究与实现[D].成都:电子科技大学硕士论文,2003:40-51.
[4]施晓红,周佳.精通GUI图形界面编程[M].北京:北京大学出版社,2003.

 

    期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
      本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。


      【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。

     
    QQ在线咨询
    投稿辅导热线:
    180-1501-6272
    微信号咨询:
    fabiaoba-com
    咨询电话:18015016272 投稿邮箱:zgqkk365#126.com(#换成@)
    本站郑重声明:文章只代表作者观点, 并不意味着本站认同。所载文章、数据仅供参考,使用前请核实,风险自负。
    部分作品系转载,版权归原作者或相应的机构   若某篇作品侵犯您的权利,请来信告知.版权:周口博闻教育咨询有限公司 
    Copyright © 2005-2023 . 期刊库 版权所有