基于ARM-Linux的MiniGUI的仿真与移植.

合集下载

嵌入式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的研究和移植_纪竞舟

基于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移植

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应用设计

基于嵌入式ARM_Linux系统的MiniGUI应用设计
( 5 ) 打开一个“终端 ”窗口 , 用 cd 命令 进入 / arm2410 s/m inigui/m inigui - res. 1. 6 目 录 , 使 用 “make install”命令安装资源文件. 默认的安装脚本 会把 m inigui资源文件安装到 / usr/ local/ lib /m inigui/ res/目录下. 然后退出此目录 (用 cd . . 命令 )进入 / arm2410 s/m inigui/ libm inigui - 1. 6. 0 目录 ,先用“. / configure”命 令 配 置 并 生 成 M akefile 文 件 , 再 运 行 “make”命令编译源文件 ,编译完成后 ,用“make in2 stall”命令安装. 至此 , M iniGU I就安装完成了 ,也即 建立了交叉编译环境.
#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移植

MiniGUI移植
#cd /home/minigui/libminigui-str-1.6.2 # ./autogen.sh # ./buildlib-magicarm2410 #make clean #make #make install
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及其应用程序的移植

基于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

MiniGui安装和移植

MiniGui安装和移植

MiniGui安装和移植一MiniGui的安装首先从MiniGui官网上下载安装文件。

一共需要下载三个压缩文件:libminigui-1.6.10.tar.gz、minigui-res-1.6.10.tar.gz、mg-samples-1.6.10.tar.gz。

安装步骤如下:一:解压缩安装包。

# tar xzvf libminigui-1.6.10.tar.gz二:运行配置程序。

# cd libminigui-str-1.6.10#./configure –disable-jpgsupport –disable-pngsupport三:编译MiniGui源代码# make四:安装MiniGui函数库# su –c “make install”五:查看安装好的库文件MiniGui的动态库文件和静态库文件都被安装到了/usr/local/lib目录下:#ls –l /usr/local/lib而MiniGui相关的头文件则被安装到了/usr/local/include/minigui/目录下Ls –l /usr/local/include/minigui运行时需要配置文件在/usr/local/etc/目录下Ls –l /usr/local/etc这样便完成了MiniGui函数库libminigui-1.6.10.tar.gz的安装接下安装资源包资源包minigui-res-1.6.10.tar.gz并不需要编译,直接安装即可。

解压缩文件#tar xzvf minigui-res-1.6.10.tar.ga打开minigui-res-1.6.10文件#cd minigui-res-1.6.10安装函数库# su –c ”make install”默认情况下,这些资源文件被安装在/usr/local/lib/minigui/res目录下# la /usr/local/lib/minigui/res解压示例代码包# tar mg-samples-1.6.10.tar.gz 打开mg-samples-1.6.10文件# cd mg-samples-1.6.10#./configure编译#make成功编译完成后,就可以在mg-samples-1.6.10/src目录下看到一些被编译好的可执行程序。

采用ARM+Linux架构的基于CAN总线和MiniGUI的虚拟仪表设计

采用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研究和移植

嵌入式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]由原清华大学教师魏永明先生开发,是一种面向嵌入式系统或者实时系统的图形用户界面支持系统。

MiniGUI的移植

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移植

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的移植

基于嵌入式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中的移植经验总结[转]

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的嵌入式GUI的研究和移植

基于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左右的存储空间,使其在嵌入式系统中也得到广泛应用。

嵌入式Linux系统中的GUI系统的研究与移植介绍

嵌入式Linux系统中的GUI系统的研究与移植介绍

嵌入式Linux系统中的GUI系统的研究与移植介绍嵌入式Linux系统中的GUI系统的研究与移植介绍摘要:针对嵌入式Linux系统中几种常见的GUI(Graphic User Interface)系统,讨论嵌入式GUI实现的底层技术方式;详细分析Microwindows、MiniGUI、Qt/Embedded等三种GUI的实现特点、体系结构、API接口。

结合这三种嵌入式GUI在以Motorola i,MX1为核心的实际应用系统中移植开发的问题,讨论移植技术与中文化技术。

引言嵌入式GUI为嵌入式系统提供了一种应用于特殊场合的人们交互接口。

嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。

另外,由于嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。

总体来讲,嵌入式GUI具备以下特点:*体积小;*运行时耗用系统资源小;*上层接口与硬件无关,高度可移植;*高可靠性;*在某些应用场合应具备实时性。

(收集整理)1 基于嵌入式Linux的GUI系统底层实现基础一个能够移植到多种硬件平台上的嵌入式GUI系统,应用至少抽象出两类设备:基于图形显示设备(如VGA卡)的图形抽象层GAL (Graphic Abstract Layer),基于输入设备(如键盘,触摸层等)的输入抽象层IAL(Input Abstract Layer)。

GAL层完成系统对具体的显示硬件设备的操作,极大程度上隐蔽各种不同硬件的技术实现细节,为诮程序开发人员提供统一的图形编程接口。

IAL层则需要实现对于各类不同输入设备的控制操作,提供统一的调用接口。

GAL层与IAL层的设计概念,可以极大程序地提高嵌入式GUI的可移植性,如图1所示。

目前应用于嵌入式Linux系统中比较成熟,功能也比较强大的GUI系统底层支持库有SVGA lib、LibGGI、Xwindow、framebuffer等。

基于ARM和Linux的MiniGUl的研究与实现

基于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 和 如 ,

miniGUI移植

miniGUI移植

MiniGUI 1.3.3 移植详解作者:大漠孤狼 E-Mail:yuqiang0107@最近移植了 MiniGUI 1.3.3 到一个开发板上,中间遇到许多问题,在论坛上发问题,结果也没多少人回我,就算偶尔有回的,基本上回答也没有什么用,网上找不到一个完整的移植文章,所以就决定把自己这次移植摸出来的一些方法写出来,给像我一样的小菜鸟做个参考吧。

本文不教你怎么写驱动,只是教怎么样在最短的时候在你的PC机上搭建起开发环境,同时在你的板子上跑起MiniGUI 来,这样你就可以在PC 上开发好程序,调试完毕,然后交叉编译一下,直接Copy到板子上就可以了。

首先,你需要下载的MiniGUI 的包:/download/libminigui-1.3.3.tar.gz/download/minigui-res-1.3.3.tar.gz这两个包的下载需要你在 上注册过才可以下载,免费注册的,自己去下吧/downloads/minigui13/mde-1.3.0.tar.gz图形界面程序/downloads/minigui13/mg-samples-1.3.0.tar.gz一些小例子好,首先就下载这几个包吧,后面还有需要下载的包,后面再说1.PC环境的搭建首先你需要一个 Linux 环境,我安装的是 RedHat 9.0 安装时记着选 everything ,这样可以避免到时候编译少了东西。

这里搭建的环境是让 MiniGUI 在你的 PC 上可以跑起来,这样以后你开发程序就可以只在 PC 上开发,调试好,最后交叉编译一下放到板子上就行了。

后面会讲怎么为板子编译MiniGUI ,耐心的看吧:)首先建立自己的开发目录[Root]# mkdir /opt[Root]# cd /opt[Root]# mkdir st2410 //这个是我的板子,[Root]# chmod 777 st2410 //给一般用户操作权限[user]# cd /opt/st2410 //进到目录中去,在这个目录下工作,用普通用户来工作把 libminigui-1.3.3.tar.gz 解开[user]# tar zxf libminigui-1.3.3.tar.gz[user]# tar zxf minigui-res-1.3.3.tar.gz编译 libminigui ,这个是 minigui 运行所必需的库文件,必须编译成功[user]# cd libminigui-1.3.3[user]# ./configure //最简单的编译方式,让它自己去配置,这里采用缺省的Thread 模式而不是Lite模式,因为这种方式在 PC 机上使用最方便,后面移到板子上再改成 Lite 模式即可注意屏幕上的输出,特别是下面几条checking for FrameBuffer console support... yeschecking for pthread library... yeschecking for TT_FreeType_Version in -lttf... yeschecking for T1_InitLib in -lt1... nochecking for jpeg_std_error in -ljpeg... yeschecking for png_check_sig in -lpng... yes其中–lttf –lpng 必须是 yes ,不然后面你的程序肯定会有问题,如果这里不是 yes 的话,肯定是你的 Redhat 9 安装不对,告诉过你安装时选 everything ,你选了吗???其中 ttf 库是对 TrueType 字体的支持,png 库是对 png 图形的支持,MiniGui 里都需要这两个,在后面为板子交叉编译的时候也需要这两个,不然你的程序跑不起来,切记切记。

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

基于ARM-Linux的MiniGUI的仿真与移

摘要:实现了一种全集成可变带宽中频宽带低通滤波器,讨论分析了跨导放大器-电容(OTA—C)连续时间型滤波器的结构、设计和具体实现,使用外部可编程电路对所设计滤波器带宽进行控制,并利用ADS软件进行电路设计和仿真验证。

仿真结果表明,该滤波器带宽的可调范围为1~26 MHz,阻带抑制率大于35 dB,带内波纹小于0.5 dB,采用1.8 V电源,TSMC 0.18μm CMOS工艺库仿真,功耗小于21 mW,频响曲线接近理想状态。

关键词:Butte
近几年,随着嵌入式系统的日益发展和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等嵌入式操作系统。

同时,在不同操作系统上的MiniGUI,提供完全兼容的API接口。

1.2MiniGUI的体系结构
从整体结构上看,MiniGUI采用的是分层设计的,结构如图1所示。

图1
在最底层,GAL(图形抽象层)和IAL(输入抽象层)及鼠标和键盘的驱动;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是API,即编程接口。

GAL和IAL为MiniGUI提供了底层的Linux控制台或者X-Window上的图形接口以及输入接口,而Pthread用于提供内核级线程支持的C函数库。

利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序开发和调试变得更加容易。

2 MiniGUI在QVFB上的仿真应用
MiniGUI能够在PC机上运行,也能够移植到目标板上运行。

在运行Linux的PC机上,MiniGUI应用程序可以通过以下两种方式运行:
(1)在X-Window上,在虚拟Frame Buffer的QVFB中运行;
(2)在Linux的字符控制台上,在Linux内核提供的FrameBuffer驱动上运行;
这里主要介绍MiniGUI在QVFB中的仿真运行。

QVFB是Qt(Qt是Linux窗口管理器KDE使用的底层函数库)提供的一个虚拟FrameBuffer工具,该程序是基于Qt开发的。

2.1 建立MiniGUI在Linux上的运行环境
在Linux环境下,将已经下载好的压缩安装文件qvfb-
1.0.tar.gz复制到/opt目录下,在该目录下解压,利用make install命令把QVFB安装到系统默认的/usr/local/bin目录下。

在X-Window环境下,打开终端,键入qvfb&命令,启动QVFB模拟程序。

接下来对QVFB的运行环境进行配置,这里配置为640×480,Depth为16bit。

QVFB提供了一种软件的方法,通过这种方法,可以看到自己的图像应用程序在PC上运行的效果。

它能模拟不同的分辨率及显示的颜色数,因此可以模拟目标机上的嵌入式显示屏,从而大大方便了应用程序的开发与调试。

2.2 安装资源文件和配置MiniGUI的库文件
在Linux环境下,将已下载好的压缩资源文件
minigui-res-1.3.3.tar.gz(该文件包含字体、光标、图标、位图等资源)复制到/opt/emulation目录下(emulation目录为新创建的目录),然后运
行./configure脚本成功通过,就可以执行make和make install命令,将资源文件安装到系统默认的/usr/local/lib/minigui/res目录中。

将下载好的压缩库文件libminigui-1.3.3.tar.gz复制到/opt/emulation目录下,输入解压缩命令然后进入解压后的目录,在该目录下输入make menuconfig,启动图像界面的配置工具,当配置完成后,输入make对库文件进行重新编译,如果编译成功,输入make install命令,将MiniGUI库安装到默认的
/usr /local/lib/目录下。

接下来,查看文件/etc /ld.so.conf,如果文件中没有/usr/local/lib这一行,将该行添加到文件的最后,然后执行ldconfig。

2.3 MiniGUI在QVFB上的仿真
将已下载的mg-samples-1.3.1和mde -1.3.0.tar.gz复制到
/opt/emlation/目录下,在终端下进入该目录,依次执行./configure和make 命令,将这些示例程序编译成能够在QVFB上可执行的程序。

首先修改
/usr/local/etc目录下的配置文件MiniGUI.cfg,将gal_engine=fbcon改为gal_engine=qvfb,ial_engine=console改为ial_engine=qvfb。

然后使用qvfb&命令启动qvfb,运行/opt /emulation /mg-samples/src目录中的可执行程序,如bomb,即可看到运行在QVFB内的MiniGUI程序,如图2所示:
图2 MiniGUI在QVFB上的仿真。

相关文档
最新文档