minigui开发笔记

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

minigui开发笔记

1.minigui简介

MiniGUI 是由北京飞漫软件技术有限公司主持的自由软件,遵循GPL 条款发布。定义为“针对嵌入式设备的、跨操作系统的图形界面支持系统”,属于一种“嵌入式图形中间件”软件产品。

2.现状与开发目标

在近八年的发展历程中,MiniGUI已经从一个仅仅是为了在Linux 显示中文而开发的小技术,发展成为一个跨操作系统的、完善的嵌入式图形用户界面支持系统。其最新的MiniGUI 2.0 更为基于嵌入式Linux 的高端嵌入式设备提供了完整的多进程支持,从而将MiniGUI 从中端市场带到了高端市场。其目标是为实时嵌入式操作系统建立一个跨操作系统的、快速、稳定和轻量级的图形用户界面支持系统。

3.MINIGUI配置

(见附录五)

4.成功案例

3G 手机大唐移动TD-SCDMA 终端方案Arena 。大唐移动在2005 年年初隆重推出了TD-SCDMA 3G 手机终端软件标准平台Arena,Arena 采用ThreadX 作为实时操作系统,飞漫软件的MiniGUI 作为图形显示系统,和Fhas 应用开发平台(智能手机版本)作为终端应用开发平台。该平台是大唐移动在3G 手机方案中最重要的软件平台方案。数家手机制造商和手机Design house 已经选用该平台在开发3G 手机产品,在大唐移动的推动下还将有更多的国内外手机供应商选用该平台,并必将随着TD-SCDMA 3G 标准在全球的推广而走向世界。

5.我认为可行的开发环境

实现步骤:

●操作系统:Windows XP

开发环境:Microsoft Visual C++ 6.0

目的:在熟悉的环境下完成调试工作,实现设计在的基本要求。

备注:参考文章见附录一

●●操作系统:Linux

开发环境:GCC

目的:将源文件在Linux上实现编译生成在宿主机可执行的文件,完成第一次移植;通过交叉编译,生成在目标板上可执行的文件,完成第二次移植。

备注:参考文章见附录二

●●●操作系统:Linux

开发环境:ARM2410-S

目的:最终验证设计是否符合要求。

备注:参考文章见附录三

附录一

实现所需的工具:minigui-dev-1.6.8-win32.rar

实现方法:

1.建立工程

用VC的【文件|新建】菜单,选“工程”标签,选择win32 console application 工程类型。输入文件名HelloWorld,选择工作路径为您解压后了路径,比如您解压后放在:F:\项目工作\嵌入式\目标板

minigui-dev-1.6.8-win32 目录下,那么工程的保存路径应为:F:\项目工作\嵌入式\目标板

minigui-dev-1.6.8-win32\HelloWorld。按确定后选择An empty project。按下Finish即可。

2.输入源代码(源代码见附录四)

●新建立文件输入代码,可以复制上文中的源代码。保存明为helloWorld.c。

●使用菜单【project | add to project | files 】打开对话框,选择我们刚才建立的helloWorld.c按下OK即可。

3.工程设置

使用菜单【project | seting】或按下Alt+F7设置工程。

●选择C/C++页面选择category选项中的Prerocessor,在Additional include directories下面输

入:../include,../include/pthread-win32。

●选择Linux页面,选择Category为General选项。在Object/library modules:下面的编辑框后面

添加minigui.lib pthreadVC1.lib两个库。

●选择Category为input选项。在Additional library path下输入:“../lib”。

4.编译工程:具体方法参考VC使用手册。

5.运行:要运行工程先要把我们解压后的目录下的wvfb.exe运行起来。然后运行HelloWorld。

6.调试:调试方法和VC调试别的程序以一样的。

7.总结:现在可以在VC下作MiniGUI应用程序。

附录二

我们已经了解Autoconf/Automake 是UNIX 系统下维护一个软件项目的最佳工具。它

可以帮助我们从敲击重复的命令行工作中解脱出来,可以帮我们维护一个项目,甚至可以帮

我们轻松完成程序的交叉编译。随MiniGUI 一同发布的MDE 就是一个利用

Autoconf/Automake 脚本组织起来的软件项目。

下面我们将参照MDE 的Automake/Autoconf 脚本来为helloworld 程序建立项目脚

本。本小节不打算详细讲述Automake/Autoconf 的工作机制,相关信息,可参阅讲述Linux

编程的书籍,或者查看这两个程序的Info 页。

考虑到我们在本节中建立的项目还可以用于组织和维护本指南以后章节的示例程序,因

此,我们在系统适当的目录下建立samples 目录作为项目的根目录,并为项目取名为

samples。比如:

$ mkdir –p ~/minigui/samples

然后在samples 下建立src 目录,用来存放helloworld 程序的源代码。将

helloworld.c 保存在samples/src/ 目录下,然后从mde-1.6.x 中复制configure.in 文件。

下面,我们就在MDE 的管理脚本基础上针对samples 项目进行修改。需要注意的是,

这些脚本需要Autoconf 2.53 和Automake 1.6 及以上版本,使用低版本的(比如Red Hat

7.x 及以下)Autoconf 和Automake 会出现错误。

首先,我们修改configure.in 文件。修改后的文件如下所示(注意我们所做的中文注释,

我们只修改了通过中文注释注解的那些宏):(见附录五)

利用这个configure.in 生成的configure 脚本和Makefile 文件将帮助我们完成如下工

作:

生成适于进行交叉编译的configure 脚本;

检查系统中是否安装了MiniGUI;

检查系统中已安装的MiniGUI 被配置成MiniGUI-Lite 还是MiniGUI-Threads,并适当设置程序要连接的函数库;

根据MiniGUI 的配置选项确定其它需要链接的依赖函数库;

生成项目根目录下的Makefile 文件以及src/ 子目录中的Makefile 文件。

接下来,我们建立项目根目录下的Makefile.am 文件。该文件内容如下:

SUBDIRS = src

上述文件内容告诉Automake 系统进入src/ 目录继续处理。然后,我们建立src/ 子目录下的Makefile.am 文件。该文件内容如下:

noinst_PROGRAMS=helloworld

helloworld_SOURCES=helloworld.c

上述文件内容告诉Automake 生成一个用来从helloworld.c 建立helloworld 程序的Makefile 文件。

最后,我们回到项目根目录下建立一个autogen.sh 文件,内容如下:

#!/bin/sh

aclocal

automake --add-missing

autoconf

该文件是一个shell 脚本,依次调用了aclocal、automake 和autoconf 命令。请注意

在建立该文件之后,要运行chmod 命令使之变成可执行文件:

$ chmod +x autogen.sh

至此,我们就可以运行如下命令生成项目所需的Makefile 文件了:

$ ./autogen.sh

$ ./configure

运行完上述命令之后,你会发现项目根目录下多了许多自动生成的文件。我们无需关注

相关文档
最新文档