基于ARM_Linux环境下MiniGUI的移植
嵌入式Linux环境下MiniGUI的研究与移植

嵌入式Linux环境下MiniGUI的研究与移植近年来随着设备与市场需求的广泛结合,手机、PDA等产品的应用对可视化操作界面的简洁和便利提出了更高的要求,这都需要一个稳定牢靠的高性能GUI系统来提供支持。
图形用户界面(Graphic User Interface,简称GUI)的广泛流行是当今计算机技术的重要成就之一,它极大地便利了非专业用户的用法,人们可以通过窗口、菜单便利地举行操作。
嵌入式系统对GUI的基本要求包括有轻型、占用资源少、高性能、高牢靠性以及可配置等。
MiniGUI是目前比较常用的几种GUI系统之一,与其他的GUI相比,MiniGUI最显著的特点就是轻型、占用资源少,而且在这几年的进展里,MiniGUI已经十分成熟和稳定了,在许多产品和项目中都已得到了实际应用。
1 MiniGUI的特点和体系结构1. 1 MiniGUI的特点MiniGUI是由原清华高校老师魏永明主持开发的轻量级图形系统,是一种面对嵌入式或实时系统的图形用户界面支持系统。
它遵循GPL公约,是基于SVGALib及Thread库的多窗口GUI支持系统。
能跨多种操作系统,主要运行于linux及一切具有POSIX线程支持的POSIX兼容系统,包括一般嵌入式Linux、eCos、uC/OS-II、等系统,是国内最早的自由软件之一。
MiniGUI的主要特点有:(1) 遵循GPL条款的纯自由软件;(2) 提供了完备的多窗口机制;(3) 多字符集和多字体支持,目前支持ISO8859-1、GB2312及Big5等字符集,并且支持各种光栅字体和TrueType、Type1等矢量字体;(4) 全拼和五笔等汉字输入法支持;(5) BMP、GIF、JPEG及PCX等常见图像文件的支持;(6) Windows的资源文件支持,如位图、图标、光标、插入符、定时器及加速键等;(7) 可移植性好。
1.2 MiniGUI的体系结构1.2.1 多线程的分层设计从整体结构上看,MiniGUI是分层设计的,结构1所示。
基于ARMLINUX的嵌入式GUI的研究和移植_纪竞舟

基于ARM LINUX的嵌入式GUI的研究和移植纪竞舟,付宇卓(上海交通大学芯片与系统研究中心,上海200030)表1上述三个GUI的比较MiniGUI Microwindows QT/EmbeddedAPI Win32风格X、Win32子集QT(C+ +)函数库大小500K 600K 1.5M可移植性好很好较好(但函数库本身的交叉编译较难)多语种支持很好好使用UNICODE,但效率较低,对中文字体支持几乎没有系统资源消耗小较小最大(C+ +实现)操作系统支持Linux Linux、ELKS、MSDOS Linux硬件平台支持X86、ARM、MIPS、PowerPC X86、ARM、MIPS、PowerPC、SPARC X86、ARM 3基于ARM Linux平台的移植3.1编译环境的建立GUI的编译通常都是在PC机上执行的,也就是说,编译器本身能够在PC机上执行,同时编译源代码生成的二进制文件必须能在目标机上执行,这类编译器通常称为交叉编译器。
对于ARM平台,我们安装了cross-arm-binutils- *.i386.rpm、cross-arm-gcc- *.i386.rpm、cross-arm-glibc-*.i386.rpm这三个包。
这些包都可以从网上免费获取,“*”通常代表版本号。
arm-binutils这个包一般包含了一些针对ARM平台的二进制工具,比如arm-strip、arm-ar等命令;arm-glibc这个包包含的是标准C的函数库的ARM的版本以及对应的头文件;arm-gcc中包含的则是生成ARM平台代码的x86上的交叉编译器。
执行rpm命令将这些包安装到PC机上,若不在系统默认搜索目录下,比如安装在/opt/cross目录下,则必须将/opt/cross/bin目录加到系统的PATH环境变量中,这样在每次编译时系统才能找得到编译器。
另外需要注意的是,编译时所用的函数库版本要与目标版上运行时所用的函数库版本一致。
minigui1.6.10移植

注:这里我上网搜了搜,有人说去掉最后的编译选项--enable-shared就可以了,我一试,好像就可以了,而且不管是libpng-1.2.18还是我下的libpng,源码目录里都没有libtool
[root]# make
下面创建一个目录,否则 make install 的时候会报错。注:这里我不要这一步也没有报错。
在 make 之前注意:从前面 libpng-1.2.18 的源码目录中把 libtool 拷贝过来,放在
/home/source/minigui/jpeg-6b目录下,否则会出现“make: ./libtool: command not found”错误。
另外要注意的是:不能使用系统的 libtool,因为这里要进行的是交叉编译。
MiniGUI 的编译需要一些库文件,缺省我们的 gcc 基本上都有这些库文件,所以不需要安装,可是现在要交叉编译了,交叉编译器可是不带这些库文件的,所以我们得首先自己编译这些库文件装到交叉编译器中去。
注意一点:库不一定要装最新的,库版本太新,MiniGUI 有可能不认识,像jpeg 库和 ttf 库就是这样,太新了反而用不了,所以要注意版本,以下的库都是我验证过可以和MiniGUI一起工作的,其它版本的库没试过,不保证能正确通过:)文中没有下载地址的文件大都可以在上下载。
(3)第三步:安装 jpeg 库
在/html/242232006010901.html(jpeg 库)下载到/root/cross/下面,同样,我用的是上提供的库
[root]# tar zxf jpegsrc.v6b.tar.gz
[root]# tar zxf libpng-1.2.18 .tar.gz
[root]# cd libpng-1.2.18
基于嵌入式ARM_Linux系统的MiniGUI应用设计

#include < stdio. h > #include < stdlib. h >
#include <m inigui/ common. h > #include <m inigui/m inigui. h > #include <m inigui/ gdi. h > #include <m inigui/w indow. h > #include <m inigui/ control. h >
(1)启动主机 ,以 root用户登录 L inux图形界面 系统.
(2)关闭防火墙 ,启动 nfs服务 ,正确设置 IP地 址 (本程序设置的主机 IP 为 202. 197. 246. 99 ) ,建 立一个 / arm2410 s的共享目录 ,设置可供共享的主 机 IP地址 ,并把共享目录的权限改为“读 /写 ”.
MiniGUI移植

6.实验步骤
(1) 按照实验原理说明,在PC机上安装好MiniGUI-STR 所有源程序。 (2) 按 照 实 验 原 理 说 明 , 交 叉 编 译 MiniGUI , 安 装 MiniGUI静态库 。 (3) 在 mg-samples-str-1.6.2/src 目录下建立源文件 hello.c,编写一个在液晶屏上显示“Hello MiniGUI!” 字符串的MiniGUI应用程序 。 (4) 在 mg-samples-str-1.6.2 目录下编写一个配置脚 本build-magic2410,用来配置交叉编译选项。 (5) 修 改 mg-samples-str-1.6.2/src 目 录 下 的 Makefile.am文件,设置编译hello.c文件。
MiniGUI
1.实验目的
掌握MiniGUI在ARM嵌入式Linux操作系统下的应用配 置和交叉编译。
2.实验设备
软件: Ubuntu系统嵌入式Linux开发环境 MiniGUISTR(for Linux)软件
3.实验效果
学 习 移 植 MiniGUI-STR(for Linux) 软 件 到 MagicARM2410 的 基 本 方 法 , 然 后 编 写 一 个 简 单 的 MiniGUI应用程序,在液晶屏上显示“Hello MiniGUI!” 字符串。
6.实验步骤
(10) MiniGUI不能在Linux的图形界面模式下运行,所 以需要修改实验箱上 Linux 系统的 /etc/init.d/rcS 文 件来禁止启动 QT ,如下所示,修改完成后保存文件并 重新启动系统。
ARM-Linux环境下MiniGUI在S3C2410开发板上的移植

上模拟 显示屏 , 方便调试 M n U 应用 程序。 iG l i 解压 q t 1 ,r z v — . t . 后执行 : b 0a g
# / o fg r . n iu e c #ma e k
#ma e i sa l k n t l
在/o e下建立 目录 miiu, 网上 下载以下源码包并放 在该 目录 hm ng i从
并给 出了实验结果 , 明 了移植 的可行性。 证
关键 词 : 嵌入 式 系统 ;iu ;3 2 1 ; nGU ; 植 Ln x¥ C 4 0 Mii I移 中 图分 类 号 : P7 T 23 文献 标 识 码 : A
社n k Ia e
由于嵌入 式系统 一般 实时性要 求很高 .所 以嵌入 式系统下 的 G I U
b n / s o a/ i :u rl c ” i : dl e l n/ s/ a ? u b ol
保存 退 出 。执 行 #su(.ahe使 更 改 生效 。其 中/s ̄c l r/ orebsr  ̄ uroa/ m a 29 . bn是 以后要用到的交叉编译工具 的路径 。 .53 i /
完 成安装 , qP— . q i 在 v 1 /v o 0 b下有 q f 可 执行 程序 , 其路径添加 到 v b 将 可执行路径文件中去 :
#c d¥H0M E
#v b s r i.a h e
在 .ahc 后 面加 上 : bsr 最
e p r TH=”PATH: bn: s/o a/r 2953 xot PA Y / i / rlc am/ . ./ s u l
科技情报开发与经济
文 章 编 号 :0 5 6 3 (0 8 2 — 19 0 10 — 0 3 2 0 )8 0 3— 2
基于ARM和Linux的MiniGUl的研究与实现

Ab t c : b c nl , e a p iain o m e e Ii mo e a d moe w d . s r t se t , p l t fe b d d GU s r n r i e GUIi o e c mp n n fma y e e d d s s a A yt h c o s n o o e t n mb d e y - o
是 很 好 的 一 套 自 由软 件 , 到 许 多 厂 商 的青 睐 , 有 得 并
着 良好 的 发 展 势 头 , 目前 已经 在 很 多 项 目中得 以应
用。
O流操作 , 字节序相关 函数等Ⅲ 。
MIiU nG I本 身 的 占 用 空 间 非 常 小 。 以 嵌 入 式 Ln x操 作 系 统 为 例 . nGU iu Mii I的 典 型 存 储 间 占用 情 况 如表 1 示 。 所 ~
n tr .Th a e n lz sh tu t r sa d f au e n GUI n nr d c st e ta s l tt n o ii au e e p p ra ay e t e sr cu e n e t r so Mi i f ,a d ito u e h r n pa ai fM n GUI .. a e n n o 6X b s d o 1 L n x OS a d p o e srARM. i u n r c so
Ln x平 台 上 的 一 种 比较 成 熟 的 图形 用 户 界 面 系统 , iu
的外 观 非 常 华 丽 的 图形 界 面 。 同 时 , nGU 通 过 两 Mii I 种 不 同 的 内 部 软 件 结 构 支 持 低 端 显 示 设 备 ( 单 色 如 L D) 高 端 显 示 设 备 ( 彩 色 显 示 器 )后 者 在 前 者 C 和 如 ,
基于ARMLINUX的嵌入式GUI的设计与开发.

基于ARM LINUX的嵌入式GUI的设计与开发摘要:GUI设计在嵌入式系统设计中占据着举足轻重的地位,MiniGUI为一种适合于嵌入式系统的、功能强大的GUI,本文介绍了基于ARM和Linux的MiniGUI移植方法以及在ARM开发板上实现普通手机操作界面的设计过程,并提出了相应功能的实现方法,给出了设计的效果。
关键词:嵌入式系统;ARM;Linux;MiniGUI1、引言目前,嵌入式应用非常广泛。
嵌入式系统由硬件和软件两大部分组成。
硬件方面的主要核心是嵌入式处理器,以ARM为核的32位RISC处理器是中高端嵌入式应用的代表。
软件方面一般由嵌入式操作系统和应用软件组成。
嵌入式操作系统种类众多,比如Linux、uCLinux,其具有开放源码、免费授权和资源丰富等优点,备受开发者的青睐。
应用软件根据产品需求会用到图形界面(GUI)、文件系统(FS)、网络(TCP/IP协议栈)等软件功能,其中,GUI对于提高人机交互友好性,易操作性具有很好的效果,而随着图形显示设备的广泛应用,目标产品对GUI的需求越来越多。
2、系统环境和构架系统实现环境采用SmartARM2200开发板及运行在ARM上的uCLinux操作系统。
SmartARM2200开发板:CPU型号为LPC2210,内核规格为ARM7TDMI-S,60M,支持uCLinux操作系统[1] [2];上面带有充足的存储资源(PSRAM,NAND FLASH,NOR FLASH和E2EPRORM等)和丰富的接口(以太网接口、CF卡和SD卡接口,串口接口等),可使用2.2英寸240*320 TFT液晶屏,可使用JTAG仿真调试[3];嵌入式Linux内核[4]:uCLinux嵌入式操作系统;uCLinux开发平台的构建:基于Linux嵌入式系统的设计,其开发流程为如图1所示:图1 Linux嵌入式系统开发流程图中,依次建立开发环境arm-elf-gcc,安装uCLinux内核,下载ZLG/BOOT,下载uCLinux内核和文件系统,为了调试uCLinux应用程序,将宿主机的共享目录加到开发板的/mnt目录下,并启动NFS服务。
基于嵌入式Linux系统的MiniGUI的移植研究

K e r : e e d d s t m ;M i y wo ds mb d e ys e n i GU I rns a a in;g a c us ri e fc ;ta plntto rphi e ntra e
LI Gu — u n o g a g,W ANG e — a W nhi
( ain lK yL b rtr fId sr lC nrlT c n lg N t a e a oaoy o n u t a o to e h oo y,Z ein nv ri o i h j gU iest a y,Ha g h u3 0 2 n z o 0 7,C ia 1 hn )
Absr c t a t:W ih t x e sv ppl ai n o m b dd d s tm s ih r rq r me s ofh m a c m pu e t he e t n i e a i to f e e e yse ,hg e e uie nt u n-o c tr i e a to e ern o it rc i iy, e ltm epe f r a c n o fg rbl b l y a epu o w a d t ee ntr ci n r f rig t n e a tvt r a-i ro m n e a d c n u a e a i t r tf r r , h m— i i
面的构 建 。
关 键 词 嵌 入 式 系 统 ; nGU ; 植 ; Mii I 移 图形 用 户界 面
中 图 分 类 号 :P 1 T 39
文献标 识 码 : A
基于ARM和Linux的MiniGUI及其应用程序的移植

摘 要 : 年 来 , 着计 算机 技 术 、 讯 技 术 的迅 速 发 展 , 别是 互联 网 的 迅 速 普 及 和 3 计 算机 、 信 、 费 电 子 ) 一 的咖 速 , 型 近 随 通 特 C( 通 消 合 微
化 和 专业 化 成 为 发展 的新 趋 势 , 入 式 系统 开 发 已经 成 为 了信 息产 业 的 热 点 。基 于 ARM 硬 件 平 台及 Ln x操 作 系统 的嵌 入 式产 品 嵌 iu
l SN 1 0 — 0 4 S 09 34
E ma : f @cc . t n — i k j cc e. t: / dn sne. c Te : 6—5 —5 09 3 5 90 4 l+8 51 69 6 6 96
C mp t K o  ̄ g n e h o g o ue n we ea d T c n l y电脑 知 识 与技术 r d o
n n dsn rtm ce r ino e t n c i ac l a o f C ( mp tr o a y es et 3 co ue mmu i t n& C nu l t c mi o t n a dse i i t nb c mete i C nc i ao o s me e r ) c ma o c l a o e o n E c i, r i n p az i h ma
i hema n fcorw hih a e t t o e sofe be de st i a t c f cs hepr c s m d d~s t m sde l pm e t yse veo n .Thsis e st oc s h e a to i GU Io i sue tH hepr e soft e rpln ft M m he n t nu ltor , oc e r m cua o ii n,tpo ta sho o r p a ot de,kene, eyse h r i lo a lyssa d heLi x p af m pr e d fo a t lc nd to i rry w t e lntBo Loa r r l  ̄ s t m on t eboad,tas na e n d srbe a t od s fn ly tr pa st e s e aeM i i ec i sp rsoft c e , al ,i e lnt h ofw r n GU Ia d hep og a v l d tt heAR M ltor . he i n t r rm de eope on i o t p af m
采用ARM+Linux架构的基于CAN总线和MiniGUI的虚拟仪表设计

采用ARM+Linux架构的基于CAN总线和MiniGUI的虚拟仪表设计当今发达国家普遍使用全数字式汽车仪表,且绝大部分是步进电动机式汽车仪表,并准备向更高方向发展。
由于受到成本的限制,目前国内显示汽车仪表只能选用字段显示方式的显示屏,无法选用显示分辨率更高的点阵式显示屏,因此其视觉效果和显示精度还不能令人满意。
ECU性能不断提高,抗强电磁干扰、工作温度范围和对工作电源稳定性要求等方面得到较大的改善,同时价格大幅度降低,因而目前有条件在汽车仪表上使用ECU控制的全数字仪表,国内汽车仪表界一致看好全数字式汽车仪表[1]。
随着现代电子技术的发展,要求汽车仪表与汽车上其他装置交换数据,即要求接入到汽车的计算机系统总线上,因此本文设计了一个基于嵌入式系统、CAN总线技术和TFT LCD液晶显示技术的全数字式汽车仪表系统。
1 系统软硬件平台的选择本文选取Intel公司的PXA270为微处理器,选配MiniARM270核心板;64 MB SD RAM为系统运行随机存储器;256 MB NAND Flash程序存储器;MCP2515 CAN控制器负责CAN报文的接收与发送;8英寸640×480真彩TFT液晶屏显示GUI图形界面;Linux为嵌入式操作系统[2]。
选用目前较为流行的嵌入式GUI系统MiniGUI进行应用程序界面的编写。
运用ZLG/BOOT启动Jflashmm、Flash FXP软件进行内核的烧写与移植。
软件编制调试完毕后,进行操作系统内核定制,裁减出最小操作系统,并将应用程序与最小系统在仿真环境下进行联合调试。
虚拟仪表系统结构如图1所示。
2 MiniGUI的程序开发和移植将MiniGUI及应用程序移植到目标机上需要经历编写相应的驱动程序、交叉编译Mi niGUI及应用程序、安装MiniGUI到目标系统、在目标系统上运行MiniGUI应用程序等几个步骤。
MiniGUI程序是建立在MiniGUI和ANSIC库之上,所以程序的编写要按照MiniGUI 的程序框架来定,并通过调用ANSIC库以及MiniGUI自身提供的API函数来实现。
嵌入式Linux的MiniGUI研究和移植

嵌入式Linux的MiniGUI研究和移植摘要:分析嵌入式操作系统下典型的图形用户界面MiniGUI的结构和特点,并提出将其移植到SUNPLUS的DVD720上的方案。
关键词:图形用户界面(GUI) 嵌入式系统Frame Buffer引言1 嵌入式Linux下的GUI概况1.1 GUI在嵌入式系统中的地位随着嵌入式系统的广泛应用,PDA、机顶盒、DVD/VCD播放机及WAP手机已经迅速普及。
图形用户界面(GUI)的广泛流行,是当今计算机技术的重大成就之一。
它极大地方便了非专业用户的使用,因此实时嵌入式系统对GUI的需求越来越明显,而这一切均要求有一个高性能、高可靠的GUI 的支持。
由于嵌入式系统实时性要求非常高,对GUI的要求也更高。
这些系统一般不希望建立在庞大累赘的、非常消耗系统资源的操作系统和GUI之上,比如Windows或X Window,太过庞大和臃肿。
这样,这些系统对轻型GUI的需求更加突出。
另外嵌入式系统往往是一种定制设备,它们对GUI的需求也各不相同。
有些系统只要求一些图形功能,而有些系统要求完备的GUI支持,因此,GUI也必须是可定制的。
嵌入式系统对GUI的基本要求包括轻型、占用资源少、高性能、高可靠性及可配置[1]。
1.2 目前嵌入式系统中GUI的实现尽管实时嵌入式系统对GUI的需求越来越明显,但目前GUI的实现方法各有不同[1]:①某些大型厂商有能力自己开发满足自身需要的GUI系统。
②某些厂商没有将GUI作为一个软件层从应用程序中剥离,GUI的支持逻辑由应用程序自己来负责。
③采用某些比较成熟的GUI系统,比如Mini GUI、MicroWindows 或者其它GUI系统。
比较常用的有如下几种GUI系统:紧缩的X Window 系统、MiniGUI、MicroWindows、OpenGUI及QT/Embedded 等。
下面简单介绍这些系统。
(1)MiniGUIMiniGUI[2]由原清华大学教师魏永明先生开发,是一种面向嵌入式系统或者实时系统的图形用户界面支持系统。
基于ARM_LINUX的嵌入式GUI的研究和移植

基于ARM LINUX的嵌入式GUI的研究和移植摘要:随着嵌入式系统的发展,用户对嵌入式系统的要求越来越高,因此用于实现与用户交流功能的嵌入式GUI成为嵌入式研究中的一个重点。
该文首先介绍了什么是嵌入式系统和嵌入式系统中的GUI,并阐述了开发基于嵌入式Linux平台的GUI系统的必要性。
然后详细的介绍了三种常见的嵌入式GUI系统(Microwindows、MiniGUI和QT)的设计结构和使用上的优缺点等,并列表进行了比较。
最后,描述了每个系统基于ARMLinux平台的移植,包括编译环境的建立、编译选项的配置和修改以及运行时参数的设置等等。
什么是嵌入式系统嵌入式系统一般指以嵌入式微处理器为核心,有别于PC系统,有计算机的部分功能但又不称之为计算机的设备或器材。
它主要是以应用为目的,系统软硬件于一体,通常要求具有代码小、响应速度快、可靠性高、低功耗、集成度高等特点。
嵌入式系统遍布于各个行业以及人们的日常生活当中,比如掌上PDA、移动计算设备、电视机顶盒、手机、汽车、数字相机、家庭自动化系统、安全系统、自动售货机、工业自动化仪表与医疗仪器等。
什么是嵌入式系统中的GUI随着后PC时代的到来,嵌入式系统的性能有了大幅度的提高,应用范围也越来越广,当初的一些简单的人机交互接口已经无法满足人们的要求。
而与此同时,在台式PC机上图形交互界面早已普及并成熟,于是在嵌入式系统中也逐渐出现了图形用户界面(GraphicUserInterface,GUI),特别是在一些消费类产品中。
嵌入式系统中的GUI就是在嵌入式系统中为特定的硬件设备或环境而设计的图形用户界面系统。
由于受到当前嵌入式系统本身特点的影响,并受其发展限制,所以嵌入式系统中的GUI应该有如下特点:占用的存储空间以及运行时占用资源少;运行速度以及响应速度快;可靠性高;便于移植和定制。
Linux有开放的源码、高效稳定的内核、良好的开发环境以及支持多种硬件平台等特点,而且由于Linux 的可配置性和可模块化,一个Linux内核经过配置和裁减可以只占用几百K左右的存储空间,使其在嵌入式系统中也得到广泛应用。
MiniGUI的移植

在AT91SAM9261EK上移植MiniGUI当前流行的图形用户界面有MiniGUI、ucGUI、QT/Embedded等,ucGUI需要付费才能使用,QT/Embedded占用资源多,内存消耗大。
MiniGUI是遵循GPL条款发布的自由软件,目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统,与其他GUI比,MiniGUI的特点是轻型、占用资源少。
交叉编译工具:arm-linux-gcc-4.3.2宿主机:fedora7 ——linuxLinux kernel: 2.6.21开发平台:A T91SAM9261EK一、准备相关资源Libminigui-1.6.10.tar.gz MiniGUI函数库源代码Miniguires-1.6.10.tar.gz MiniGUI所使用的资源,包括基本字体、图标、位图等。
Mg-samples-str-1.6.10.tar.gz MiniGUI的演示程序。
Mde-1.6.10.tar.gz MiniGUI 图像界面应用程序二、建立相关目录、解压缩文件⑴mkdir /mtemp/minigui 存放源文件⑵展开各个文件:tar –xvzf libminigui-1.6.10.tar.gztar –xvzf miniguires-1.6.10.tar.gztar –xvzf mg-samples-str-1.6.10.tar.gztar –xvzf mde-1.6.10.tar.gz在/mtemp/minigui/下面会生成四个对应的文件。
三、交叉编译MiniGUi在宿主机上建立/usr/local/minigui用于存放编译安装生成的库文件⑴libminigui的编译安装cd libminigui-1.6.10运行配置脚本文件:./configure –prefix=/usr/local/minigui –build=i386-linux –target=arm-linux –host=arm-linux执行完后生成Makefile文件,然后依次执行make make install命令,如果没有错误出现,那么成功,MiniGUI的函数库和头文件以及配置文件等资源被安装在/usr/local/minigui下面。
基于ARM-Linux的MiniGUI的应用研究

需要 指定 一些选项 , C= r11 u—c C al.i xgc(指定 编译 3 n
器 ),t g t r —n x 指定 目标 平 台 ),pe x= a e =al l u ( r ni rf i
( nG I函 数库 的 安装 路 径 ) ,h s =i 6p — MiiU ot 6 一c 8 l u — n (宿 主 机 类 型 ,本 文 的 宿 主 机 的版 本 是 i x gu n
…
R d e90 eH t. ),然 后 使 用 m k ae编 译 库 , aeisl m k ntl a 安装 库 、 文 件 、 置 文 件 到 pex选 项 指定 的地 头 配 rf i 方。
维普资讯
第2 7卷第 3期
Vo. 7, . 1 2 No 3
西 华 大 学 学 报 ( 自 然 科 学 版 )
J u n lo h a Unv ri ・ Nau a ce c o r a fXiu ie st y t rlS in e
20 08年 5月
Ma .0 8 v20
文 章 编号 :6 319 (0 8 0 - 6 -5 17 — x 2 0 )30 40 5 0
基 于 A M—iu R Ln x的 Mii U 的 应 用 研 究 nG I
李旭升 , 李 兵 , 曲尚勇 , 松 渊 , 玲 , 李 陈 兴佰 明
交 叉编译 环境 的建立 主 要 是 安装 交 叉编 译 器 ,
并 交叉 编译 MiiU 库 的源代码 ,生成 应 用程 序 需 nG I
要链 接 的动态 和静 态的库 文件 。 首先 , 安装 和板 载 Ln x相 同 版本 的 al l u — iu r —n x ni gc编译 器到 采用 Ln x操 作 系 统 的 宿 主机 的某 个 c i u 路径 下 , : urlcla / i, 编 译 器有 特 殊要 如 / s oa r bn 若 / /m 求 , 一定要 安装 到它 指 定 的 路径 下 , 将 该 路径 则 并 添加 到宿 主机 的 P T A H环 境变 量 中 , 果 此时 在字 如 符终 端 中命 令行 下输人 al—n xgc有使用 格式提 r l u .c ni 示, 则说 明 P T A H变量 添加成 功 。 其次, 解压 l mii i 1 3 3 t . z 件包 , i ng 一 . . .a g 软 b u r 进 人该 目录 , 运行 . cn g r( / o f ue 产生 M k l i a fe文件 ) 但 i ,
arm-linux学习笔记之minigui移植

arm-linux学习笔记之minigui移植/u3/90065/showart_1793732.htmlminigui-1.6.10在s3c2410平台的移植开发板:SBC2410CPU:S3C2410linux-2.6.25.5fs:jffs2LCD:TFT320 X 240PC:fc8 linux-2.6.25.5(一)准备工作下载软件包libminigui-1.6.10.tar.gzmg-samples-1.6.10.tar.gzminigui-res-1.6.10.tar.gzmg-samples-str-1.6.2.tar.gz在/home/arm/创建一个minigui的目录,然后把这些载在的软件包放在该目录下,在分别解压缩。
再在/home/arm/minigui下创建一个miniguitmp的目录,用于安装编译以后的库文件。
(二)编译libminigui首先修改configure文件,在文件的开头加入交叉编译的路径CC=arm-9tdmi-linux-gnu-gccCPP=arm-9tdmi-linux-gnu-cppLD=arm-9tdmi-linux-gnu-ldAR=arm-9tdmi-linux-gnu-arRANLIB=arm-9tdmi-linux-gnu-ranlibSTRIP=arm-9tdmi-linux-gnu-strip然后执行[root@localhost libminigui-1.6.10]# ./configure --prefix=/home/arm/minigui/miniguitmp/ \--build=x86_64-linux \--host=arm-unknown-linux \--target=arm-unknown-linux[root@localhost libminigui-1.6.10]# make[root@localhost libminigui-1.6.10]# make install这个过程基本上不会有什么错误的执行make install的时候会把编译以后的资源安装到/home/arm/minigui/miniguitmp中,在这之下会有etc include lib usr几个目录产生。
基于嵌入式Linux系统的MiniGUI的移植

Libraries Conf=(ADL。98),Santa Barbara,CA,Apdl 1998,
pp.19—29.
【2】何坤鹏,郭海波.WEB日志挖掘技术及其应用研究【l】.中国 科技信息,信息科技,2007.
【3】3周琪锋.基于WEB的数据挖掘技术的研究卟电脑知识与技
术,网络通讯与安全,2006.
【关键词】嵌入式系统;图形用户界来自;;MiniGUI;移植【中图分类号】TP39
【文献标识码】A
【文章编号】1008-1 151(2007)12-0024-02
(一)引言 近年来,随着软硬件资源的成熟与完善,对嵌入式系统的 研究,激起了人们极大的兴趣。选择开放源码的Linux操作系 统开发新一代嵌入式产品已经成为其中新的技术热点。与此同 时,配备一个优秀的图形用户界面,使产品和用户能进行友善 可靠地交互也已成为开发工作中非常紧迫的要求。本系统中使 用的biiniGUI是嵌入式Linux系统下一个轻量级的图形用户界 面支持系统,具有占用资源少、高性能、高可靠性和可配置等 特点,它已广泛应用于嵌入式各个领域。 移植目标板是由三星公司推出的基于AR姻内核的 ¥3C2440开发板,它具有64M SDRAM,64M NAND FLASH,以及 5寸液晶触摸屏。开发板上采用嵌入式Linux作为操作系统, 由标准1inux2.4.18内核经过小型化裁剪处理之后,固化在开 发板的NAND FLASH中。
(二)MiniGul的体系结构
从结构上看,MiniGUI是分层设计的,层次结构见图1所示。 在最底层,GAL和IAL为MiniGUI提供了底层的Linux控制台或者 X Window上的图形接口以及输入接口;中间层是MiniGUI的核 心层,其中包括了窗口系统必不可少的各个模块;最顶层的API 则向应用设计提供偏程接口。利用GAL和IAL,在极大程度上屏 蔽了底层具体图形设备与输入设备硬件的的技术实现细节,为 开发人员提供了一个统一的编程接口,大大提高了MiniGUl的 可移植性,使程序的开发和调试变得更加容易,MiniGUI的移 植工作主要是IAL与GAL的移植。
MiniguiV1.3.3在uClinux中的移植经验总结[转]
![MiniguiV1.3.3在uClinux中的移植经验总结[转]](https://img.taocdn.com/s3/m/a885734c24c52cc58bd63186bceb19e8b9f6ec4f.png)
MiniguiV1.3.3在uClinux中的移植经验总结[转]Minigui V1.3.3在uClinux中的移植经验总结 [转]经过一个星期的努力,终于将Minigui移植到我的ARM7开发板上了,在这个过程中我遇到了很多困难和问题,但是通过网络,通过以前很多前辈在网络上分享的经验,终于取得成功,也让我更加体会到只有大家都互相帮助,互相分享经验才能使大家都受益。
所以基于这一点,我将我的移植过程分享给大家,并且写得尽量详细点,希望给大家一些帮助,使后来者少走一些弯路。
有不对的地方,欢迎大家板砖!首先说明一下我的开发平台,我用的是Samsung S3C44B0X芯片的开发板,已经移植好的uClinux操作系统和FrameBuffer驱动。
我的uClinux安装在"/s3c44b0fu/uClinux-dist"目录下,交叉编译工具安装在"/usr/local/arm-elf"目录下。
具体步骤:一. 从网站下载libminigui-1.3.3.tar.gz, mde-1.3.0.tar.gz, mg-samples-1.3.0.tar.gz和minigui-res-1.3.3.tar.gz四个压缩文件,并将这四个文件保存到交叉编译环境的目录下,因为我的arm-elf-gcc交叉编译工具安装在"/usr/local/arm-elf"目录下,所以将minigui的四个压缩包同样拷贝到"/usr/local/arm-elf"目录下.二. 在终端中输入"cd /usr/local/arm-elf",进入minigui的四个压缩文件所在目录,然后分别执行"tar zxvf xxxxx.tar.gz"将这四个压缩包解压缩.解压后生成libminigui-1.3.3, mde-1.3.0, mg-samples-1.3.0和minigui-res-1.3.3四个文件夹.三. 1) 进入minigui-res-1.3.3文件夹内,修改config.linux,在prefix = $(TOPDIR)/usr/local/后添加我们的交叉编译安装目录arm-elf,即prefix = $(TOPDIR)/usr/local/arm-elf.2) cd minigui-res-1.3.33) make install四. cd mde-1.3.0./configuremakecd mg-samples-1.3.0./configuremake五. 1) 编写交叉编译minigui函数库的配置脚本domain.sh.domain.sh的具体内容为:#!/bin/shrm config.cache config.status -fCC=arm-elf-gcc \CFLAGS="-I/s3c44b0fu/uClinux-dist/uClibc/include -Dlinux -D__linux__ -D__uClinux__ -Dunix " \LDFLAGS="-Wl,-elf2flt -static -Wl,-move-rodata -Wl,-L/s3c44b0fu/uClinux-dist/lib/uClibc/lib -Wl,-L/s3c44b0fu/uClinux-dist/linux-2.4.x/lib -Wl,-lc -Wl,-lm" \ ./configure --prefix=/usr/local/arm-elf \--build=i686-pc-linux-gnu \--host=arm-elf-linux \--target=arm-elf-linux \--disable-shared \--disable-lite \--disable-standalone \--enable-incoreres \--disable-flatstyle \--enable-newgal \--disable-nativegal \--disable-galcommlcd \--enable-galfbcon \--enable-adsial \--disable-micemoveable \ --disable-cursor \--disable-fblin1r \--enable-fblin8 \--disable-fblin16 \--disable-fblin32 \--disable-textmode \--enable-dummyial \--disable-mc68x328ial \--disable-nativeial \--disable-qvfbial \--disable-qpfsupport \--disable-ttfsupport \--disable-type1support \ --disable-latin9support \ --disable-gbksupport \--disable-big5support \--disable-unicodesupport \ --disable-savebitmap \--disable-imegb2312 \--disable-imegb2312py \ --disable-aboutdlg \--disable-savescreen \--disable-grayscreen \--enable-tinyscreen \--enable-video-fbcon \--disable-video-qvfb \--disable-nativegalqvfb \ --with-osname=uclinux编写好后拷贝到libminigui-1.3.3下.2) cd libminigui-1.3.33) sh domain.sh4) make5) make install6) ldconfig上面六步即完成了用arm-elf-gcc对minigui的函数库的交叉编译.可以进入/usr/local/arm-elf目录中,你会看到新增加了etc和lib两个文件夹,这两个文件夹就是我们刚才用arm-elf-gcc交叉编译minigui 的函数库所产生的结果,以后编译在目标板中运行的应用程序时,就会对这两个文件夹里的内容进行编译,从而产生适合于在arm开发板中运行的应用程序.六. 编写测试minigui的应用程序1) 测试程序miniguidemo.c其实就是从mg-samples-1.3.0中拷贝过来的helloworld.c程序,不过要根据具体的LCD做一点修改,如我的LCD是640x480的256色STN彩色屏,所以要将#ifdef _LITE_VERSIONSetDesktopRect(0, 0, 1024, 768);#endif修改为:#ifdef _LITE_VERSIONSetDesktopRect(0, 0, 640, 480);#endif根据你的不同的LCD修改这个参数,还可以修改这个窗体显示的位置,根据你的喜好修改即可.最后将编写好的miniguidemo.c保存到/s3c44b0fu/uClinux-dist/user/guidemo中(注:guidemo是我在user目录中新建的文件夹)2) 在/s3c44b0fu/uClinux-dist/user/guidemo中编写Makefile 文件,具体内容为:EXEC = miniguidemoOBJS = miniguidemo.oLDFLAGS=-L/s3c44b0fu/uClinux-dist/uClibc/liball: $(EXEC)$(EXEC): $(OBJS)$(CC) $(LDFLAGS) -o $@ $(OBJS) -lminigui -lmgext $(LIBPTHREAD) $(LIBM) $(LDLIBS) -elf2fltromfs:$(ROMFSINST) /bin/$(EXEC)clean:-rm -f $(EXEC) *.elf *.gdb *.o3) 修改user/Makefile为了让编译器编译上述添加的内容,在user/Makefile中添加一句(一般按照字母排列):dir _$(CONFIG_USER_GUIDEMO_MINIGUIDEMO) +=guidemo4) 修改config/config.inconfig/config.in文件中添加的内容会在对用户选项进行配置时反映出来。
基于ARM-Linux的MiniGUI的仿真与移植

基于ARM-Linux的MiniGUI的仿真与移植近几年,随着嵌入式系统的日益发展和32位嵌入式处理器以及图形显示设备的广泛应用,目标产品对GUI(图形用户界面)的需求越来越多。
由于嵌入式系统一般实时性要求很高,所以嵌入式系统下的GUI需要具有轻量级型、占用资源少、高性能等特点。
此外,嵌入式系统往往是一种定制设备,它对GUI的需求各不相同,因此,GUI必须也可以定制。
而MiniGUI是一个非常适合实时嵌入式产品的高效、可靠、可定制、小巧灵活的图形用户界面支持系统,被广泛的应用于高端科技产品中。
利用MiniGUI开发出良好的人机交互界面已成为嵌入式开发中的迫切需求。
本文实现了在ARM-Linux环境下进行基于QVFB的MiniGUI的模拟开发、调试,通过在PC机上的仿真模拟,将应用程序完成之后,利用交叉编译工具编译产生在目标机上运行的代码,然后把MiniGUI和可执行应用程序移植到S3C2410目标板上,这样既节省了开发时间,又提高了开发效率和质量。
1 MiniGUI的特点和体系结构MiniGUI项目的最初目标是为基于Linux的实时嵌入式操作系统提供一个轻量级的图像用户界面支持系统。
作为操作系统和应用程序之间的中间件,MiniGUI将底层操作系统与硬件平台之间的差别隐藏起来,并对上层应用程序提供了一致的功能特性。
1.1MiniGUI的特点(1)占用资源少:MiniGUI本身占用的空间非常小,整个MiniGUI系统占用空间在2~4MB,在某些系统上,MiniGUI系统本身所占用的空间可进一步缩小到1MB以内。
(2)高性能、高可靠性:MiniGUI良好的体系结构及优化的图形接口,可确保最快的图形绘制速度。
(3)可定制配置:和Linux内核类似,MiniGUI也具有大量的编译配置选项,通过这些选项可指定MiniGUI库中包括哪些用户所需要的功能。
(4)跨操作系统支持:MiniGUI支持Linux/uClinux、eCos、uC/OS-II、VxWorks等嵌入式操作系统。
基于嵌入式ARM-Linux系统的MiniGUI应用设计

基于嵌入式ARM-Linux系统的MiniGUI应用设计
李云松;刘国繁;曹少坤
【期刊名称】《湖南工程学院学报(自然科学版)》
【年(卷),期】2008(018)001
【摘要】MiniGUI是国内著名的为数不多的几个自由软件之一,也是目前比较成熟的嵌入式GUI产品.它是根据嵌入式系统的应用特点量身定做的图形支持系统,具有小巧、可配置和可移植等特点.本文分析了MiniGuI在嵌入式ARM-Linux系统中的移植与配置过程,详细介绍了在交义编译环境下开发MiniGuI程序的方法和步骤.【总页数】4页(P12-15)
【作者】李云松;刘国繁;曹少坤
【作者单位】湘潭大学,信息工程学院,湖南,湘潭,411105;湖南工程学院,湖南,湘潭,411101;湘潭大学,信息工程学院,湖南,湘潭,411105
【正文语种】中文
【中图分类】TP316
【相关文献】
1.基于MiniGUI的嵌入式显控系统的设计与实现 [J], 李虎;郑凤;吕林森
2.基于MiniGUI的嵌入式个人财务管理系统 [J], 孙维伯;张立岩
3.基于嵌入式操作系统的MINIGUI图形组件的分析与移植 [J], 陈程;张磊;董延军
4.基于ARM-Linux的GUI系统体系分析及其应用设计 [J], 杜智敏; 谢维波; 谢毅勇
5.基于ARM-Linux的GUI系统体系分析及其应用设计 [J], 杜智敏; 谢维波; 谢毅勇
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3 MiniGUI 的安装
本 文 中 使 用 的 主 机 系 统 为 Red Hat Linux 9.0, 移 植 目 标 系 统 为 Linux2.4.20,MiniGUI 的 版 本 是 1.3.3。 在 主 机 上 交 叉 编 译 MiniGUI 链 接 库,制 作 自 己 的 根 文 件 系 统 后,将 自 己 的 根 文 件 系 统烧写到目标板上, 以后将运行在目标板上的图形用户界面直 接链接到该库,脱离主机独立运行。
在 操 作 系 统 方 面,使 用 虚 拟 机 工 具 VMware Workstation 5.0 安 装 Red Hat Linux 9.0(Kernel:2.4.20)作 为 宿 主 机 ,在 开 发 板 上 是 裁 剪 过 的 同 样 的 Kernel 版 本 。 系 统 使 用 的 交 叉 编 译 器 是 arm- Linux- gcc。
2 开发环境
UP-NETARM2410-S 开 发 板 由 北 京 博 创 兴 业 科 技 有 限 公 司设计开发,它基于 Samsung 公司的 S3C2410X 嵌 入式 ARM 处 理器。 S3C2410X 内嵌 ARM920T 核,带有全性能的 MMU,具有高 性能、低功耗、低成本、小体积等优点,适用于手持设备、汽车等 领域。
er interface is more and more important. MiniGUI is based on a lightweight GUI support system. This paper describes the structure
and characteristics of MiniGUI, explains the method and process in porting of MiniGUI graphical system under the ARM Linux, and
技 gives the test result. In the end forecasts the embedded system based on MiniGUI. Key words: Embedded Linux; GUI; MiniGUI
术
创
前言
近年来随着嵌 入 式设 备 与 市场 需 求 的广 泛 结 合,手 机 、PDA
- 130 - 360元 / 年 邮局订阅号:82-946
《 现场总线技术应用 200 例》
您的论文得到两院院士关注
ARM 开 发 与 应 用
各 个 模 块;最 顶 层 是 API,即 编 程 接 口 。 GAL 和 IAL 为 MiniGUI 提供 了 底 层的 Linux 控 制 台或 者 X Window 上 的图 形 接 口以 及 输入接口,而 Pthread 用于提供内核级线程支持的 C 函数库。 利 用 GAL 和 IAL,大大提高了 MiniGUI 的可移植 性,并 且 使 程序 的 开发和调试变得更加容易。
3.2 MiniGUI 的安装和配置 我们可以从网上(/download)免费 得 到 MiniGUI- 1.3.3 的资源文件压缩包,MiniGUI1.3.3 的源程序 包包 括 以 下 四 个 部 分 :libminigui- 1.3.3.tar.gz,MiniGUI 函 数 库 源 代 码 ; minigui-res- 1.3.3.tar.gz,MiniGUI 所使用的资源,包括基本字体、图标、 位图、 输入法等;mde- 1.3.0.tar.gz,MiniGUI 的 综合 演 示 程序;mgsamples-1.3.1.tar.gz,《MiniGUI 编程指南》的配套示例程序。 3.2.1 MiniGUI 函数库的安装和编译 安 装 libminigui-1.3.3.tar.gz,MiniGUI 函 数 库 源 代 码,其 中 包 括 libminigui、libmgext 和 libvcongui。 安装过程: # tar -zxf libminigui-1.3.3.tar.gz # cd libminigui-1.3.3 ; # ./configure // 最简单的编译方式,让它自己去配置 # make # make install 这里 采 用缺 省 的 Thread 模式 而 不 是 Lite 模 式,因 为这 种 方 式在 PC 机上使用最方便。 最后使用 make 和 make install 进行 安装。 默认 情 况下,MiniGUI 的 函 数 库 将 安 装 在 /usr/local/lib 目 录 中。 您应该确保该目 录已 经 列 在 /etc/ld.so.conf 文 件 中 。 修改 / etc/ld.so.conf 文件,将 /usr/local/lib 目录添加到该文件最后一行。 修改后类似: /usr/lib /usr/X11R6/lib /usr/i486-linux-libc5/lib /usr/local/lib 安装 MiniGUI 之后, 运行下面的命令更新共 享 函数 库 系 统 的缓存:# /sbin/ldconfig 3.2.2 MiniGUI 资源的编译安装 安装 minigui-res-1.3.3.tar.gz,安装过程: # tar -zxf minigui-res-1.3.3.tar.gz # cd minigui-res-1.3.3 # make install 安装成功后所 有 资源 文 件 便安 装 到/usr/local/lib/minigui/res 目录下。 3.2.3 MiniGUI 的综合演示程序编译安装 安装 mde-1.3.0.tar.gz,安装过程: # tar -zxf mde-1.3.0.tar.gz # cd mde-1.6.2 ./configure # make 最 后 使 用 make 命 令 进 行 编 译 就 行 了,成 功 编 译 后,进 入 该 目录就可以运行综合演示程序了。
唐 敏: 硕士 基金项目: 基金申请人: 宋杰; 项目名称: 仿生计算在生物信息 学中的应用; 基金颁发部门: 安徽省教育厅自然科学基金委 (KJ2007B239)
图 1 MiniGUI 层次结构图 1.2 MiniGUI 的体系结构 1.2.1 多线程的分层设计 从整体结构上看,MiniGUI 是分层设计的,结构如图 1 所示。 在 最 底 层,GAL(图 形 抽 象 层)和 IAL(输 入 抽 象 层)及 鼠 标 和 键 盘 的 驱 动;中 间 层 是 MiniGUI 的 核 心 层,包 括 窗 口系 统 必 不 可 少 的
新 等产品的应用对可视化操作界面的简洁和方便提出了更高的 要求,这都需要一个稳定可靠的高性能 GUI 系统来提供支持。
字体和 TrueType、Type1 等矢量字体;(4) 全拼和五笔等汉字输入 法 支 持;(5) BMP、GIF、JPEG 及 PCX 等 常 见 图 像 文 件 的 支 持;(6) Windows 的 资 源 文 件 支 持,如 位 图 、图 标 、光 标 、插 入 符 、定 时 器 及加速键等;(7) 可移植性好。
环境变量中,这样在每次编译时系统才能找得到编译器。 当然我们也可以不要自己去编译, 直接去下载一个交叉编
译器就行了。 在这里我们下载的是 cross-2.95.3.tar.bz2。 以 root 用户 登 陆 Linux 系 统, 在 主 机 上 使 用 命 令 解 压 并 安 装 交 叉 编 译 器,arm-linux-gcc 将被安装到/usr/local/arm/2.95.3/下面。 此时,交 叉 编 译 器 为/usr/local/arm/2.95.3/bin/arm- linux- gcc, 而 它 的 include 为/usr/local/arm/2.95.3/arm - linux/include, 对 应 的 lib 为/ usr/local/arm/2.95.3- /arm- linux/lib。 然后,在你的 bashrc 中添加 环境变量 即 可 。 执 行 vi .bashrc, 最 后 一 行 加 入 :export PATH= $PATH:/usr/local/arm/2.95.3/bin 路 径 , 保 存 退 出 后 执 行 source .bashrc 。
3.1 交叉编译环境的构建 图形界面的编译通常都是在 PC 机上执行的, 也 就 是说,编 译 器本 身 能 够在 PC 机 上 执行, 同 时 编译 源 代 码生 成 的 二 进 制 文件必须能在目标机上执行,这类编译器通常称为交叉编译器。 对于 ARM 平台, 我 们 可 以安 装 cross - arm- binutils - x.xx- x. i386.rpm、cross - arm - gcc - 2.95.3 - x.i386.rpm、cross - arm glibc- x.x.x- x.i386.rpm 这三个包(x 代表版本号码)。这些包都可 以从网上免费 获 取。 arm- binutils 这 个 包 一般 包 含 了一 些 针 对 ARM 平台的二进制工具, 比如 arm- strip、arm- ar 等命令;armglibc 这 个 包 包 含 的 是 标 准 C 的 函 数 库 的 ARM 的 版 本 以 及 对 应 的 头文 件;arm- gcc 中 包含 的 则 是生 成 ARM 平 台 代 码 的 x86 上的交叉编译器。 执行 rpm 命令将这些包安装到 PC 机上,若不 在系 统 默认 搜 索 目录 下, 则 必须 将 安 装 目 录 加 到 系 统 的 PATH