MiniGUI arm移植
Helper2416开发板移植minigui3.0.12系列

Helper2416开发板移植minigui3.0.12之一:让PC运行minigui笔者最近有时间学习嵌入式linux,于是熟悉了一下基本操作之后,选定了移植minigui作为一个练习。
看了看官网说明,移植过程挺简单的,但整整三天之后,开发板首次显示出minigui版的helloworld。
第一阶段:PC运行minigui这个工作是一定要做的,因为minigui同其他GUI程序开发类似,都是先在PC上编程、调试、模拟,成型之后再交叉编译灌入嵌入式设备。
Helper2416开发板随机所带的虚拟机fedora12已经安装好了交叉编译链、zlib库,png库,jpeg库等,使移植工作大为简化。
此文也不涉及到这几个库的移植,相关方法在手册4.6节有详述,网上文章也未提及移植这几个库出什么问题。
一. 搞定qvfbqvfb是QT的一个附属程序,可以单独运行,跟minigui本身没什么联系,只是minigui可以拿它当作在PC上运行时的模拟屏幕。
qvfb大致有以下几个获取方式。
1. minigui官网有一个qvfb2-2.0.tar.gz程序包,编译这个包需要Qt3的库。
Qt3的库可以从QT官网下载编译。
2.Helper2416开发板随机提供了qtopia和Qt4的源码。
按手册 4.6节编译完qtopia之后,.../qtopia-2.2.0/qt2/bin/qvfb便是qvfb的可执行文件。
将此文件拷入PATH路径,然后用$lddqvfb命令查看一下所依赖的库,在.../qtopia-2.2.0/qt2/lib目录中找到相应的库,拷入/lib目录。
此时命令行直接输入$qvfb即可看到窗口界面。
3.对于Qt4,按手册4.7节编译完之后并不会自动生成qvfb可执行文件,需要单独进行编译。
网上的参考步骤是:(1).复制…/qt-everywhere-opensource-src-4.7.2/tools/shared/deviceskin.h,deviceskin.cpp两个文件到…/qt-everywhere-opensource-src-4.7.2/tools/qvfb目录下(2). 在qvfb文件夹下手动生成qvfb工程,即$qmake-project,生成qvfb.pro(3). $qmake,生成Makefile(4). 手动修改Makefile 中LIBS 选项:末尾添加-lXtst(5). $make即可得到可执行文件qvfb按照这个步骤可以编译得到qvfb,但笔者实测发现Qt4编译出来的qvfb运行minigui程序时鼠标不正常,而qtopia的qvfb鼠标正常。
tslib+Mnigui移植到2440总结

}
tslib与minigui中对于压力参数的规定刚好相反,tslib规定samp[0].pressure> 0是按下,samp[0].pressure == 0是手松开而事实是相反的
{
..................................................................
..................................................................
修改的代码
/* Read until we get a touch. */
*x = samp[middle].x;
else
*x = (samp[middle-1].x + samp[middle].x) / 2;
////////////////////////////////////////////////////////////////////////////
do {
if (ts_read_raw(ts, &samp[0], 1) < 0) {
perror("ts_read");
close_framebuffer();
exit(1);
}
} while (samp[0].pressure > 0);
do {
if (ts_read_raw(ts, &samp[0], 1) < 0) {
以上两点是我修改的地方,在各位达人的帖子中还看到了其他的一些修改,我开始也照搬用了,反而出错
基于嵌入式ARM-Linux的播放器的设计与实现

基于嵌入式ARM-Linux的播放器的设计与实现摘要随着21世纪的到来,人类进入了PC时代。
在这一阶段,嵌入式技术得到了飞速发展和广泛应用。
由此,本文提出了一种基于嵌入式ARM-Linux的播放器设计与实现的方案。
本文首先详细分析了ARM体系结构,研究了嵌入式Linux操作系统在ARM9微处理器的移植技术,包括交叉编译环境的建立、引导装载程序应用、移植嵌入式Linux内核及建立根文件系统,并且实现了嵌入式Linux到S3C2410开发板的移植。
由于嵌入式系统本身硬件条件的限制,常用在PC机的图形用户界面GUI系统不适合在其上运行。
为此,本文选择了Minigui作为研究对象,在对其体系结构等方面进行研究基础上,实现了Minigui到S3C2410开发板的移植,完成了嵌入式图形用户界面开发,使得系统拥有良好的操作界面。
对于播放器,本文实现了Linux系统下的通用媒体播放器—Mplayer到S3C2410开发板的移植。
通过对音频数据输出的研究,解决了Mp1ayer播放声音不正常的问题,实现了一个集音乐和视频播放于一体的嵌入式多媒体播放系统。
最后,总结了论文所做的工作,指出了嵌入式播放器所需要进一步解决和完善的问题。
关键词:嵌入式ARM-Linux; S3C2410; Mplayer; GUI界面; MiniguiPlayer Designing and Implement Based On Embedded ARM-LinuxAbstractAlong with the 21st century arrivals, the humanity enters the post PC time. In this stage, embedded technology gets rapidly developed and widely used. So, this paper aims to design a player based on embedded ARM-Linux.First, in this paper, ARM architecture and the characteristic are analyzed in detail. The emphasis of the study is put on the porting techniques of embedded Linux operation system based on the ARM9 micro-processor, which include setting cross complier、transplanting Bootloader、transplanting embedded Linux kernel and setting root file system; Furthermore, implement the technique of transplanting Embedded Linux to S3C2410 board.GUI (Graphical User Interfaces) systems which are supported by normal PCs cannot run well on the embedded systems, just because of the restriction of the hardware of embedded devices. So, this paper selects Minigui as research object. Based on the Minigui architecture and its other aspects, the technique of transplanting Minigui to S3C2410 board is given in detail, and then an embedded GUI system is established and it also makes the handle interface friendly.About the player, this paper implements transplanting the universal player on Linux-Mplayer to S3C2410 board. By learning of audio data, it solves the problem of sound abnormality, and achieves an embedded multimedia system which could play audio and video files.Key words: Embedded ARM-Linux; S3C2410; Mplayer; GUI interface; Minigui目录摘要 (I)Abstract ........................................................... I I 目录.............................................................. I II 第一章绪论.. (1)1.1系统研究背景 (1)1.1.1 多媒体播放器与嵌入式系统 (1)1.1.2 嵌入式多媒体播放器国内外发展现状 (1)1.2 嵌入式处理器 (3)1.3 嵌入式系统 (4)1.3.1嵌入式系统的概述 (4)1.3.2 嵌入式系统的选择 (5)1.4 本文的意义和主要工作 (7)第二章系统软硬件平台的搭建 (8)2.1 硬件开发平台的介绍 (8)2.1.1 核心板 (8)2.1.2 外设板 (8)2.1.3 设计所用硬件介绍 (9)2.2 硬件平台的设计方案 (9)2.2.1 核心板设计 (9)2.2.2 外设电路设计 (14)2.3 嵌入式软件开发环境 (15)2.3.1 引导装载程序 (16)2.3.2 宿主机开发环境配置 (17)2.3.3 交叉开发环境的建立 (18)2.3.4 内核的编译 (18)2.3.5 烧制内核映像和文件系统 (20)2.4 嵌入式图形用户界面的实现 (20)2.4.1 图形用户界面minigui的简介 (20)2.4.2 MiniGUI在S3C2410开发板上的移植过程 (21)第三章 Mplayer的移植 (25)3.1 Mplayer的简介 (25)3.2 Mplayer的移植 (25)3.2.1 安装交叉编译工具及解压源代码 (25)3.2.2 编译Mplayer (25)3.3 调试 (27)第四章嵌入式播放器Mplayer的设计 (31)4.1 播放器的工作流程 (31)4.2 播放器的逻辑结构 (31)4.3 Mplayer播放器的目录文件组织结构 (32)4.4 播放器对解码器和输出设备的管理方式 (34)第五章总结与展望 (36)5.1 本文主要完成的工作及结论 (36)5.2 完善与展望 (36)致谢 (37)参考文献: (38)第一章绪论1.1系统研究背景从上世纪末开始,随着计算机和电子技术的发展走上快车道,便携式电子设备,诸如智能手机,个人电子助理(PDA)的运算存储能力和通信能力都得到了长足的进步,便携式设备的用户界面也变的越来越友好,从早期的只能显示单色文字的LED,发展到现在大尺寸6万色彩色液晶屏幕。
MiniGUIPortGuide4Linux-2.0C

MiniGUI 移植指南版本 2.0适用于 MiniGUI 版本 2.0.3/1.6.9及Linux/uClinux操作系统北京飞漫软件技术有限公司2006 年6 月版权声明《MiniGUI 移植指南》版本 2.0,适用于MiniGUI 版本 2.0.3/1.6.9及Linux/uClinux 操作系统。
版权所有 (C) 2003~2006,北京飞漫软件技术有限公司,保留所有权利。
无论您以何种方式获得该手册的全部或部分文字或图片资料,无论是普通印刷品还是电子文档,北京飞漫软件技术有限公司仅仅授权您阅读的权利,任何形式的格式转换、再次发布、传播以及复制其内容的全部或部分,或将其中的文字和图片未经书面许可而用于商业目的,均被视为侵权行为,并可能导致严重的民事或刑事处罚。
目录版权声明 (i)1 Linux/uClinux简介 (1)2 MiniGUI与Linux/uClinux (2)3在运行 Linux 的 PC 机上安装并运行 MiniGUI (4)3.1 MiniGUI对Linux内核的要求 (4)3.2 Linux下的软件维护和建立工具 (4)3.2.1 make 和 makefile (4)3.2.2 Autoconf/Automake (4)3.2.3 ldd 和 ldconfig (5)3.3 MiniGUI 的图形引擎 (6)3.3.1 MiniGUI 在字符控制台上的运行:配置 FrameBuffer (6)3.3.2 MiniGUI 在 X Window 上的运行:运行 QVFB (8)3.4 MiniGUI 的依赖库 (9)3.4.1 LibTTF 和 LibT1 (9)3.4.2 LibJPEG、LibPNG 等函数库 (9)3.5 编译并安装 MiniGUI (10)3.5.1 编译并安装 MiniGUI (10)3.5.2 安装MiniGUI的资源 (11)3.5.3 编译并安装MiniGUI的演示程序mde (11)3.6 运行MiniGUI示例程序 (11)4在SkyEye的EP7312模拟器上运行MiniGUI (13)4.1 安装交叉编译工具链 (13)4.2 安装SkyEye (13)4.3 配置、编译Linux (14)4.4 SkyEye EP7312模拟器的MiniGUI输入引擎 (14)4.5 交叉编译MiniGUI (15)4.6 交叉编译MiniGUI示例程序 (17)4.7 准备文件系统 (18)4.8 运行MiniGUI示例程序 (20)5在Xcopilot模拟器上运行MiniGUI (22)5.1 安装交叉编译工具链 (22)5.2 安装Xcopilot (22)5.3 配置、编译和运行uClinux (22)5.4 Xcopilot模拟器的MiniGUI输入引擎 (23)5.5 为Xcopilot模拟器交叉编译MiniGUI (27)5.6 交叉编译MiniGUI示例程序 (30)5.7 准备文件系统 (31)5.8 运行MiniGUI示例程序 (32)1 Linux/uClinux简介Linux操作系统核心最早是由芬兰的Linus Torvalds 1991年8月在芬兰赫尔辛基大学上学时发布的,经过众多世界顶尖的软件工程师的不断修改和完善,Linux得以在全球普及开来,在服务器领域及个人桌面版得到越来越多的应用,在嵌入式开发方面更是具有其它操作系统无可比拟的优势。
MiniGUI3.0+tslib1.4移植过程

只支持 1.3.1 版本的 ttf 库:
注意:MiniGUI 的文档说只支持 1.3.1 版本的 ttf 库,不要把版本弄错了
[root@localhost jpeg-6b]# cd /root/cross/
[root@localhost cross]# tar zxvf freetype-1.3.1.tar.gz
注意:这里配置指向/usr/local/arm/arm-2008q3-linux/arm-none-linux-gnueabi 目录,会自动安 装在/usr/local/arm/arm-2008q3-linux/arm-none-linux-gnueabi / [include,lib] 目录下。
./configure CC=arm-none-linux-gnueabi-gcc --build=i686-pc-linux --target=arm-linux
--host=arm-linux
prefix=/usr/local/arm/arm-2008q3-linux/arm-none-linux-gnueabi
第四步:安装 jpeg 库
[root@localhost libpng-1.2.18]# cd /root/cross/
[root@localhost cross]# tar zxvf jpegsrc.v6b.tar.gz
[root@localhost cross]# cd jpeg-6b/
[root@localhost jpeg-6b]#
[include,lib] ,假如 include 中没有 zlib.h 之类的头文件,lib 中没有 libz.so.1.2.3 等
基于ARM的MiniGUI设计与实现

Mi G l n U 的设计与移植 ,具有指导研发此类设计的实际意义。 i 关键词 : R A M;MiiUI nG ;网络通信 ;移植
中图分类号 : P 7 T 23
文献标识码 : A
具有较好的可移植性。图1 中,顶层A I P 嵌 入式系统广泛应用于工业领域和家用领域 ,如 用分层设计 , 汽车、安全系统 、医疗仪器 、D DV D V [C 播放机 、电 应用程序接 口,在M n U 的开发中,交互界面直接 iG I i 视机顶盒、掌上电脑及手机等。而每一种应用都要求 通过M n U 图形系统的A I 口函数实现。MiG I ii I G P接 n U i
字体 ;支持多种操作系统 ;支持多种图形文件格式 ; 2 系统设计方案
可 配 置 成 MiiU — hed、 MiiU— i nG IT ras nG ILt Mii e及 n
系统硬件结构 :本系统中, 硬件主要由嵌入式开 发板、P 机、路由器等组成,如图2 C 所示。主控芯片
G IS na nJ行模式 ; U— t dl e a o  ̄ 遵循L P 条款。 GL
技术 交流
2 0 . 数 据 通 信 0 86
T c n lg s u so e h oo y Dic s in
基于A M的Mii U 设计与实现 R nG I
王 波’ 冷建筑 (.重庆大学通信工程学 院 重庆 4 0 4 ; 1 0 0 4 2 .中国人 民解放军7 1 8 队 重庆4 2 8 ) 8 部 5 0 24 摘 要 :采 用A RM 的3 4微 处 理 器 为硬 件 平 台 ,分 析 了Mii 的特 点 和 体 系结 构 ,将 网络 通信 与 2-  ̄ nGUI MiiUI nG 相结 合 ,设 计 了一个嵌 入 式Ln x iu 下的 图形界 面终端 ,并 成功应 用 到数据 采 集平 台 中 ;详 细阐述 了
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
嵌入式Linux系统中的GUI系统的研究与移植

嵌入式Linux系统中的GUI系统的研究与移植摘要:针对嵌入式Linux系统中几种常见的GUI系统,讨论嵌入式GUI实现的底层技术方式;详细分析Microwindows、MiniGUI、Qt/Embedded等三种GUI的实现特点、体系结构、API接口。
结合这三种嵌入式GUI在以Motorola i,MX1为核心的实际应用系统中移植开发的问题,讨论移植技术与中文化技术。
关键词:嵌入式Linux GUI 应用与移植中文化引言嵌入式GUI为嵌入式系统提供了一种应用于特殊场合的人们交互接口。
嵌入式GUI要求简单、直观、可靠、占用资源小且反应快速,以适应系统硬件资源有限的条件。
另外,由于嵌入式系统硬件本身的特殊性,嵌入式GUI应具备高度可移植性与可裁减性,以适应不同的硬件条件和使用需求。
总体来讲,嵌入式GUI具备以下特点:*体积小;*运行时耗用系统资源小;*上层接口与硬件无关,高度可移植;*高可靠性;*在某些应用场合应具备实时性。
1 基于嵌入式Linux的GUI系统底层实现基础一个能够移植到多种硬件平台上的嵌入式GUI系统,应用至少抽象出两类设备:基于图形显示设备的图形抽象层GAL,基于输入设备的输入抽象层IAL。
GAL层完成系统对具体的显示硬件设备的操作,极大程度上隐蔽各种不同硬件的技术实现细节,为诮程序开发人员提供统一的图形编程接口。
IAL层则需要实现对于各类不同输入设备的控制操作,提供统一的调用接口。
GAL层与IAL层的设计概念,可以极大程序地提高嵌入式GUI的可移植性,如图1所示。
目前应用于嵌入式Linux系统中比较成熟,功能也比较强大的GUI系统底层支持库有SVGA lib、LibGGI、Xwindow、framebuffer等。
三种嵌入式GUI系统的分析与比较.1 MicrowindowsMicrowindows是一个典型的基于Server/Clinent体系结构的GUI系统,基本分为三层,如图2所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.MiniGUI在嵌入式ARM系统中的移植
MiniGUI在嵌入式ARM系统中的移植方法和本书6.1节中介绍的在上位Linux机器上的移植方法基本相同。
(1)确保系统硬件平台的底层FrameBuffer驱动已经安装好。
(2)在编译嵌入式Linux的内核时,必须要把FrameBuffer的支持加入:
在该选项下面的参数中进行选择,如在Linux Kernel v2.4.21-rmk1-omap1的内核配置中:
(3)安装资源文件的方法。
(4)编译库文件的方法。
编译库文件的方法和在主机Linux上的编译有所不同,这里可以写一个shell来做。
一个在arm-linux-gcc(2.95.3)编译器上配置的例子如例程6-1所示。
例程6 1 Buildlib-omap例子
--prefix=/usr/src/arm-linux/minigui/minigui-arm \ --build=i686-linux \
--host=arm-linux \
--target=arm-inux \
--disable-shared \
--disable-lite \
--disable-standalone \
--with-style=phone \
--enable-incoreres \
--enable-rbfgb12 \
--enable-rbf16 \
--enable-fonthelv \
--enable-newgal \
--enable-videofbcon \
--disable-videoqvfb \
--disable-qvfbial \
--disable-videodummy \
--disable-videocommlcd \
--disable-nativegal \
--disable-nativegalqvfb \
--disable-micemoveable \
--enable-cursor \
--disable-fblin1l \
--disable-fblin16 \
--disable-fblin32 \
--disable-textmode \
--disable-palm2ial \
--disable-dummyial \
--disable-nativeial \
--enable-hh2440ial \
--disable-qpfsupport \
--disable-ttfsupport \
--disable-type1support \
--disable-latin9support \
--enable-gbsupport \
--disable-gbksupport \
--disable-big5support \
--disable-unicodesupport \
--disable-savebitmap \
--enable-imegb2312 \
--enable-imegb2312py \
--disable-aboutdlg \
--disable-savescreen \
编译好后,在/usr/src/arm-linux/minigui/minigui-arm目录下就有了对应的目标,在子目录lib下有libmgext.a、libminigui.a和libvcongui.a 3个库文件。
(5)编译例子代码如下。
①修改configure.in文件
指定MiniGUI的头文件及库文件的参考路径。
②修改头文件路径:
编译好之后就可以把demo程序放到目标板的文件系统中,烧录到目标板上。
当然要把程序在目标板上启动起来,还需要修改和配置 MiniGUI.cfg 文件。
修改
PATH/etc/MiniGui.cfg文件内容如下:
将res的目录改成PATH/res目录。
另外需要注意库文件的链接问题。
有一个比较好的嵌入式调试工具是strace,用strace命令来调试程序。
比如说程序a,可以用strace ./a 来执行,这样把执行过程打印出来,可以看到出错的地方。