MiniGUI到EV44B0Ⅱ上的移植研究.

合集下载

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

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

基于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以内。

基于uClinux系统的MiniGUI的研究与移植

基于uClinux系统的MiniGUI的研究与移植

定 时 器等 。

的外观非常华丽的图形界面。 通过两种不同的内部软件结构支持低端显

示设 备( 如单色 L D 和高端显示设备( C ) 如彩色显 示器) 后者在前 者 的基 础上提供 了强大 的图形 ,
功能 。

2 M nG 1 iiU 的特 点和体 系结构
2 1 MiiU 的特 点 . nG I
l s s te sr c ue a d c aa trsiso n G ,a d p e e t a s h me ta r n p a t Mi i UIt a g tp afr fe o f u y e h t t r n h r ce it fMi i UI n r s ns c e h tt s ln s n G o tr e l t m atrc n g — u c a o i
T 9 17 N 1 .3
和特点 , 并在配置和编译好 u l u 后 , Ci x 提出一种将 Mi G 1 n n U 移植到 目标平 台上的方案 。 u 关键词 移植
中图分类号
Re e r h a d P ri g o ii sa c n o t fM nGUIBa e n u iu y tm n sd o Ci x S se n
l 引言
嵌入式系统是当今一个非常重要的发展方向,
嵌入 式 的广 泛应 用 已经 无所不 在 , 手机 、 电话 座机 、
G I 统 : 缩 的 X Widw 系 统 、 nG IMi U 系 紧 no MiiU 、 —
co n o s pn U 及 Q / m e d d 等 ,而 r d w 、O e G I Wi T E bde
( o p t ea m n , egagN r l o ee , egag4 10 ) C m u r pr e tH n n oma C l g H n n 2 08 eD t y l y

嵌入式LINUX系统中的GUI系统的研究与移植

嵌入式LINUX系统中的GUI系统的研究与移植

嵌入式Linux系统中的GUI系统的研究与移植来源:单片机及嵌入式系统应用作者:北京航空航天大学徐广毅张晓林崔迎炜杨欣昕吴小伟摘要:针对嵌入式Linux系统中几种常见的GUI(Graphic User Interface)系统,讨论嵌入式GUI实现的底层技术方式;详细分析Microwindows、MiniGUI、Qt/Embedded等三种GUI的实现特点、体系结构、API接口。

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

关键词:嵌入式Linux GUI 应用与移植中文化引言嵌入式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等。

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 ,如下所示,修改完成后保存文件并 重新启动系统。

基于嵌入式Linux系统的MiniGUI的移植研究

基于嵌入式Linux系统的MiniGUI的移植研究
Li u r phia s r i t r a e i o s r c e n x ga c l u e e f c s c n t u t d. n
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

MiniGUI及其移植与应用

MiniGUI及其移植与应用

Tn n o 、 TE b d e 。 iy Wid w Q /m ed d X
由 软件 之 一 。 nG I 三 种 运 行 模 式 : ) ii U— hed: 行 p r rt r 其 中 d s t Mi U 有 i ( M nG IT ra s 1 运 as 、 me。 e i eko p用 于 管 理 Mii U 窗 口中 的 所有 主窗 nG I 在 MiiU — h a s 程 序 可 在不 同 的线 程 中建 立 多 个 窗 口 . nG IT r d 的 e 但 口 ;a e 线 程 用 于 采 集 键 盘 鼠 标 事 件 并 转 换 成 A I 消 息 ; pr r s P层 所有 的窗 E在 一 个 进 程 中运 行 。可 以配 合 的操 作 系统 有 uOi t e 线 程用 来 触 发定 时 器 事 件 。 l Cs 、 i r i m vw rsl u 。( Mi G Iie每 个 程 序 是 单 独 的 进 程 . 个 进 x ok 、nx 2 n U —l : i ) i t 每 程可 建 立 多 个 窗 口 . 有 具 备 完 整 ui 性 的操 作 系 统 才 可 运 只 n x特 行 这 一模 式 。3MiiU —t dl e可 以 以独 立 进 程方 式 运 行 而 () nG Is n ao , a n 不 需 要 其 它 任 何 支 持 ,这 种 方式 几 乎 可 以 支 持 所 有 操 作 系 统 。 M nG I 有 以 下特 点 : ) 巧 可 订 制 . 含 全 部 功能 的库 文 件 ii U 具 (小 1 包 只有 3 0 。() 定 性 , 移植 性 好 。() 面皮 肤 支持 。 户 可 0 k 2高稳 可 3界 用 通 过皮 肤 支 持 获得 华 丽外 观界 面 。() 供 了完 备 的 多 窗 E机 制 4提 l 及 消 息传 递 机 制 。() 富 的控 件 资 源 , 括 菜 单 、 度 条 、 表 5丰 包 进 列 框、 钮、 具栏等。() 按 工 6 多种 键 盘 布 局 支 持 , 字 符集 及 多字 体 多 支持 , 常见 的 图像 文 件 支持 。7多种 汉 字 输 入 法 支持 , idw 资 () wn o 源文 件 支持 。

嵌入式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下面。

基于Qt_E的嵌入式GUI的研究及其移植

基于Qt_E的嵌入式GUI的研究及其移植
face is straight, brief, and easy to operate.
Key wor ds: Qt/Embedded; Qt/E; Embedded GUI; Por tability

1 引言
图形用户界面系统(GUI)是系统级的 底 层 软件 , 它 可 以和 文 件系统、操作系统内核等一 起 构 成一 个 完 整的 操 作 系统 。GUI 为用户提供了与应用系统交互 的 可视 化 通 道, 同 时 GUI 为 程序 员 提 供 了 一 种 编 程 模 式 , 即 GUI 负 责 系 统 的 可 视 化 界 面 的 生 成 、管 理 以 及 系 统 与 用 户 之 间 的 信 息 交 互 , 而 程 序 员 只 需 专 注 于对实际应用的分析。
的。当 Qt/E 客户使 用 Qt API 画 线时 , Qt/E 库 直 接访 问 显 存, 完
成画线工作。嵌入式 Qt 客户库还负责处理所有的绘画操作, 另
外, 他还处理那些定制的窗口装饰(如标题条等)。
3.1.3 Qt/E 图形引擎的实现
Qt/E 的 底 层 图 形 引 擎 基 于 帧 缓 冲(frame buffer)。 帧 缓 冲 是
(重庆邮电大学移动通信技术重点实验室) 游 燕 珍 赵 国 锋 徐 川
YOU Yan-zhen ZHAO Guo-feng XU Chuan
摘要: 图 形 用 户 界 面 (Graphic User Interface, 简 称 GUI)的 广 泛 流 行 是 当 今 计 算 机 技 术 的 重 大 成 就 之 一 , 它 极 大 地 方 便 了 非 专
Qt/Windows: 用 于 Microsoft Windows xp、2000、NT4、Me/98。 Qt 库使用 Windows 的 GDI API 来实现, 并且使用 微 软 的窗 口 系 统 ; Qt/X11:包 括 Linux、HP- UX、Sun Solaris、Digital UNIX、SGI Ir- ix、IBM AIX 等 。Qt 库使 用 X11 库 来实 现 , 并 且使 用 X 窗 口 系 统; Qt/E:包括一个完整的窗口系统, 并允许设计者轻易地加入各 种 显 示 设 备 和 硬 件 输 入 设 备(如 鼠 标 、键 盘 、触 摸 屏 等); Qt/Mac: 用于 Mac OS X 平台。Qt 对不同平台的专门 API 进行了封装, 如 文件处理、网络(操作, 协议)、进程处理、线程、数据库访问等。

MiniGUI3.0在mini6410上的移植

MiniGUI3.0在mini6410上的移植

MiniGUI3.0在mini6410上的移植简介MiniGUI 是一款面向嵌入式系统的高级窗口系统(Windowing System)和图形用户界面(Graphical User Interface,GUI)支持系统,由魏永明先生于1998 年底开始开发。

2002 年,魏永明先生创建北京飞漫软件技术有限公司,为MiniGUI 提供商业技术支持,同时也继续提供开源版本,飞漫软件是中国地区为开源社区贡献代码最多的软件企业。

最后一个采用GPL 授权的MiniGUI 版本是 1.6.10,从MiniGUI 2.0.4 开始MiniGUI 被重写并使用商业授权,从3.0.12开始,部分版本使用GPL授权。

历经十余年时间,MiniGUI 已经成为性能优良、功能丰富的跨操作系统嵌入式图形用户界面支持系统,支持Linux/uClinux、eCos、uC/OS-II、VxWorks、ThreadX、Nucleus 、pSOS、OSE 等操作系统和数十种SoC芯片,已验证的硬件平台包括ARM-based SoCs、MIPS based SoCs、IA-based SoCs、PowerPC、M68K(DragonBall /ColdFire)、Intel x86 等等。

准备工作交叉编译器友善提供,具体安装参考mini6410的使用手册;源码的下载从miniGUI官网上下载,需要有新浪账号或者twitter账号。

下面是我下载的版本。

[root@localhost minigui]# ls -l *.tar.gz-rwxrw-rw-. 1 root root 1427072 Jan 16 17:30 freetype-1_3_1.tar.gz-rw-rw-r--. 1 root root 63582 Jan 16 17:31 gvfb-1_0_0.tar.gz-rw-rw-r--. 1 root root 602762 Jan 16 17:32 qvfb2-2_0.tar.gz-rwxrw-rw-. 1 root root 557220 Feb 11 00:56 zlib-1.2.6.tar.gz-rwxrw-rw-. 1 root root 1059513 Feb 11 00:55 libpng-1.5.8.tar.gz-rwxrw-rw-. 1 root root 986681 Feb 10 23:42 jpegsrc.v8c.tar.gz-rw-rw-r--. 1 root root 340656 Jan 16 17:33 libmg3d-1_0_2.tar.gz-rw-rw-r--. 1 root root 1545209 Jan 16 17:34 libmgi-2_0_4.tar.gz-rw-rw-r--. 1 root root 1116885 Jan 16 17:33 libmgp-1_2_2.tar.gz-rw-rw-r--. 1 root root 648207 Jan 16 17:34 libmgplus-1_2_4.tar.gz-rw-rw-r--. 1 root root 659702 Jan 16 17:33 libmgutils-1_0_4.tar.gz-rw-rw-r--. 1 root root 3202804 Jan 17 00:29 libminigui-gpl-3_0_12.tar.gz-rw-rw-r--. 1 root root 2608473 Jan 16 17:29 mg-samples-3_0_12.tar.gz-rw-rw-r--. 1 root root 3449215 Jan 16 17:29 minigui-res-be-3_0_12.tar.gz官网上有几个库的版本太低,所以需要自己去网上下载,其中jpegsrc.v8c.tar.gz、libpng-1.5.8.tar.gz和zlib-1.2.6.tar.gz都是从网上找的最近版本(png和zlib这两个soucefoge上都有,前面一个是网上搜的,所以不能保证链接长期有效,但是网上搜一下还是比较容易找到的)。

移植uClinux到44B0X的实现

移植uClinux到44B0X的实现

移植uClinux到S3C44B0X平台的实现方法和要点uClinux作为支持无MMU MCU的操作系统,并且借助其支持的丰富的MCU种类,已经广泛应用于各种嵌入式系统领域。

S3C44B0X是三星公司生成的集成了ARM7TDMI CPU 核以及丰富的外围接口的MCU。

它以很高的性价比占领了我国低端嵌入式市场的很大一块的阵地。

目前国内已经有许多嵌入式系统设计提供商成功的将uClinux操作系统成功的移植到以S3C44B0X为核心的嵌入式平台上。

并且有许多成熟的捆绑方案提供。

获得方案的工程师只需关注外围驱动程序和应用程序的开发。

如果想深入的研究S3C44B0X系统结构以及真正具备uClinux移植的经验就要求工程师亲自动手,对相关的源码的进行修改和理解。

本文介绍了在S3C44B0X平台实现uClinux的几种实现方法,为各位自己动手实现uClinux 的移植提供借鉴。

一、准备工作进行uClinux移植之前,我们要作一些准备工作。

首先,要有一块基于S3C44B0X MCU的硬件电路板。

该硬件电路板应该最少具备:2M NorFlash、1个串行口、8M以上的SDRAM。

并且确保其上电工作正常。

其次,就是要搜集相关的源码和工具。

源码主要包括:支持44B0平台的uClinux的源码、支持uClinux的Bootloader源码。

工具包括:串口下载工具DNW、通过JTAG烧写工具和三星公司提供的PLL参数计算工具PLLSET.exe、linux下的arm交叉编译工具包arm-elf-tools-20030314.sh。

支持44B0平台的uClinux源码的获得途径一般有三个:■从uClinux网站上获得最新的uClinux源码压缩包uClinux-dist-20040408.tar.gz。

由于uClinux项目目前并不直接支持Samsung公司的44B0芯片。

然后,获得针对44B0的源码补丁文件。

较完整的44B0补丁文件uClinux-20040408-ARMSY.patch可以从立宇泰公司的网站上获得。

嵌入式Linux系统中MiniGUI的研究与移植

嵌入式Linux系统中MiniGUI的研究与移植

充 .嵌入 式 Ln x系统是 由一 个 内核及 一些 根据 需要 动态 加载 的系 统模 块组成 . iu
2 M i GUI ni
MiiU m 由原清 华 大 学 教师 魏 永 明主 持 开 发 的轻 量 级 图形 系 统 , 遵 循 G L公 约 , nG I是 现 P 能运 行 于 Lnx iu
关 键 词 :Mii U ; 嵌 入 式 Ln x 移 植 nG I i ; u
中图 分 类 号 :T 1 P3 1
文 献标 识 码 :A
Ln x秉承“自由的思想 , iu 开放 的源 码 ” 的原 则 , 1 9 从 9 1年 问世 到现在 的短短 十几 年 时 间 内, 已经 发展 成
及 一切具 有 P SX线 程支 持 的 P SX兼 容系 统 , 在 由北京 飞漫 软技 术有 限公 司进 行维护 和 商业运 作 . OI OI 现
21 Mii I的体 系结构 . nGU
从整 体结构 来看 , nG I 分层设计 的嘲 其层次 结构见 图 1 Mii U 是 , .在最 底层 , A G L和 I L提 供 了 Ln x控 制 A iu 台和 x Widw图形接 口以及 输入 接 口, tra no Phed则是 提供 了 内核 级线程 支持 的 函数 库 ; 间层是 Mii U 的 中 nG I 核 心层 , 括 窗 口系 统 必不 可少 的各 个 模块 ; 包 最顶 层 是 A I即编 程接 口, 供给 应用 程 序 使用 的 A I P, 提 P 函数 .

l2 一 52




第 2 卷 第 1 期 6 2
问 的同步 操 作 , 实现 了客户 线 程 和服 务 线程 之 间 的微 客户 端 务 器机 制 , 艮 因为 它 的客 户和 服 务器 是 同~ 进 程 的两 个不 同线 程1 3 ] . 其 采用 多线 程模 式 的主要 优 点 : 1 数据 共享 . 由于共享 地址 空 间 , ) 线程 之 间就 没有 额外 的数据 复制 开销 .

Mini440之uboot移植之源码分析u-boot重定位(三)

Mini440之uboot移植之源码分析u-boot重定位(三)

Mini440之uboot移植之源码分析u-boot重定位(三)所谓的relocation,就是重定位,u-boot运⾏后会将⾃⾝代码拷贝到SDRAM的另⼀个位置继续运⾏。

但基于以前的理解,⼀个完整可运⾏的bin⽂件,link时指定的链接地址,load时的加载地址,运⾏时的运⾏地址,这3个地址应该是⼀致的。

relocation后运⾏地址不同于加载地址,特别是链接地址,ARM的寻址会不会出现问题?u-boot启动后会计算出⼀个靠近SDRAM顶端的地址,也就是gd->relocaddr,将⾃⾝代码拷贝到该地址,继续运⾏。

但是这样会有⼀个问题,relocation后u-boot的运⾏地址跟其链接地址不⼀致,compiler会在link时确定了其中全局变量的绝对地址,链接地址加载地址运⾏地址应该⼀致,这样看来,arm在寻址这些变量时找到的应该是relocation之前的地址,这样relocation就没有意义了!因此我们在进⾏u-boot重定位需要包含代码段、rodata、data以及全局变量、函数的重定位。

⼀、u-boot重定位1.1 重定位原理我们C代码编译成汇编后,我们需要思考以下⼏个问题:我们的函数跳转转为汇编代码后是怎样的;全局变量⼜是如何寻址的;实际上函数⽤b/bl相对跳转,因此代码进⾏重定位之后函数跳转是没有影响的。

但是全局变量使⽤的是绝对地址,是有影响的。

这⾥我们以为例,来介绍全局变量的寻址原理。

我们定义了const常量为例:const u8 sunflower_320x240[] = {...}LCD项⽬的链接地址为0x30000000,代码反汇编后,查看只读数据段:Disassembly of section .rodata:30005634 <sunflower_320x240-0x18>:30005634: aeb0d2ce cdpge 2, 11, cr13, cr0, cr14, {6}30005638: f5c1e3c4 .word 0xf5c1e3c43000563c: 4920e0d1 stmdbmi r0!, {r0, r4, r6, r7, sp, lr, pc}30005640: 564f4c20 .word 0x564f4c2030005644: 4f592045 svcmi 0x0059204530005648: 00002055 .word 0x000020553000564c <sunflower_320x240>:3000564c: 73229322 .word 0x7322932230005650: 73229322 .word 0x7322932230005654: 93229322 .word 0x9322932230005658: 93229322 .word 0x932293223000565c: 93227322 .word 0x9322732230005660: 93229322 .word 0x93229322...我们在lcd_test函数使⽤到了sunflower_320x240全局变量:void lcd_test(){300017f0: e92d4800 push {fp, lr}300017f4: e28db004 add fp, sp, #4; 0x4300017f8: e24dd010 sub sp, sp, #16; 0x10/* ⽂件必须采⽤GBK编码 */lcd_draw_bmp(0,0,LCD_WIDTH,LCD_HEIGHT, sunflower_320x240);300017fc: e59f3050 ldr r3, [pc, #80] ; 30001854 <lcd_test+0x64>30001800: e58d3000 str r3, [sp]30001804: e3a00000 mov r0, #0; 0x030001808: e3a01000 mov r1, #0; 0x03000180c: e3a02d05 mov r2, #320; 0x14030001810: e3a030f0 mov r3, #240; 0xf030001814: ebfffe7c bl 3000120c <lcd_draw_bmp>char *data = "我爱你刘燕 I LOVE YOU ";30001818: e59f3038 ldr r3, [pc, #56] ; 30001858 <lcd_test+0x68>3000181c: e50b3008 str r3, [fp, #-8]lcd_draw_char_lib(100, 50, 0xFF00FF, data, strlen(data));30001820: e51b0008 ldr r0, [fp, #-8]30001824: eb0003c8 bl 3000274c <strlen>30001828: e1a03000 mov r3, r03000182c: e58d3000 str r3, [sp]30001830: e3a00064 mov r0, #100; 0x6430001834: e3a01032 mov r1, #50; 0x3230001838: e3a028ff mov r2, #16711680; 0xff00003000183c: e28220ff add r2, r2, #255; 0xff30001840: e51b3008 ldr r3, [fp, #-8]30001844: ebffff83 bl 30001658 <lcd_draw_char_lib>}30001848: e24bd004 sub sp, fp, #4; 0x43000184c: e8bd4800 pop {fp, lr}30001850: e12fff1e bx lr30001854: 3000564c .word 0x3000564c30001858: 30005634 .word 0x30005634我们可以发现:在函数的后⾯有label,PC+offset找到label;label存放全局变量地址;函数后⾯的label作为text段的⼀部分;可以看到[pc,#80]地址处保存sunflower_320x240全局变量的地址0x3000564c。

基于MiniGUI的Java AWT包的移植实现

基于MiniGUI的Java AWT包的移植实现

基于MiniGUI的Java AWT包的移植实现周巍;杨竹;周兰江【摘要】为了嵌入式的Java平台能支持完整的Java类库,采用M in iGUI做为底层图形库,重点研究了GNUC lasspath里AWT包M in iGUI实现方法与步骤。

%The paper adopts MiniGUI as bottom-level graphics library in order that the embedded Java platform could support the while Java class libraries and the research emphasizes on the MiniGUI's realization methods and steps in AWT package of GNU Clasepath.【期刊名称】《江西科学》【年(卷),期】2011(029)004【总页数】4页(P539-542)【关键词】MiniGUI;JavaAWT;移植【作者】周巍;杨竹;周兰江【作者单位】昆明理工大学信息工程与自动化学院,云南昆明650051;昆明理工大学信息工程与自动化学院,云南昆明650051;昆明理工大学信息工程与自动化学院,云南昆明650051【正文语种】中文【中图分类】TP311为使Java对嵌入式应用开发者有吸引力,本文针对Java AWT在嵌入式平台的移植进行研究。

作为AWT在嵌入式平台“对等体”的选择,GTK、QT、MiniGUI都是可利用的本地图形库,然而,GTK作为本地图形库的支持在嵌入式系统里使用比较少,移植困难较大;QT移植后的本地图形库对存储空间占用的较大,再加上Java平台后就需要更大容量的存储芯片,这样,对于嵌入式硬件资源受限的情况下选择QT会加大成本。

针对国内大多数嵌入式的硬件厂商都提供了北京飞漫公司的MiniGUI本地图形库,而且MiniGUI具有小巧、高性能和高效率的特点。

uC-GUI在ARM内核S3C44B0X的移植实例

uC-GUI在ARM内核S3C44B0X的移植实例

uC/GUI在ARM内核S3C44B0X的移植实例uC/GUI是MICrigm公司推出的用于嵌入式系统的图形用户接口(graphics user interface,GUI)软件包,由于uC/GUI完全以ANSI-C编写,因此它与处理器无关,可以很方便地移植到不同的操作系统和嵌入式微处理器上,并可支持不同尺寸的图形液晶显示器。

它采用层次化的设计,功能强大,移植方便,被广泛地应用于嵌入式领域,如PDA、机顶盒以及DVD NCD播放机等。

本文详细介绍了uC/GUI在ARM 内核S3C44B0X的移植。

实践证明uC/GUI具有良好的实时性和稳定性以及广泛的应用前景。

1、硬件连接与液晶显示原理本设计使用的硬件采用ARM7开发板,液晶模块为L78C64,它是7.8in 256色STN型LCD显示屏,分辨率为640480。

LCD控制器外部接口信号的定义及其与LCD模块各信号之间的对应关系如下:(1)VFRAME:LCD控制器与LCD驱动器之间的帧同步信号。

该信号负责指出LCD屏新的一帧开始的时间。

LCD控制器在一个完整帧显示完成后立即插入一个VFRAME信号,并开始新一帧的显示。

该信号与LCD模块的YD信号相对应;(2)VLINE:LCD控制器和LCD驱动器之间的线同步脉冲信号。

该信号用于将LCD驱动器水平线(行)移位寄存器的内容传送给LCD屏显示。

LCD控制器在整个水平线(整行)数据移入LCD控制器后,插入一个VLINE信号。

该信号与LCD模块的LP信号相对应; (3)VCLK:LCD控制器和LCD驱动器之间的像素时钟信号。

由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿被LCD驱动器采样。

该信号与LCD模块的XCK信号相对应;(4)VM:LCD驱动器的AC信号。

VM信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示和熄灭。

VM信号可以与每个帧同步,也可以与可变数量的VLINE 信号同步;(5)VD3~0 LCD:像素点的数据输入端口。

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

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

嵌入式Linux环境下MiniGUI的研究与移植前言近年来随着嵌入式设备与市场需求的广泛结合,手机、PDA、DVD 播放机等产品的应用对可视化操作界面的简洁和方便提出了更高的要求,这都需要一个稳定可靠的高性能GUI 系统来提供支持。

图形用户界面(Graphic User Interface,简称GUI)的广泛流行是当今计算机技术的重要成就之一,它极大地方便了非专业用户的使用,人们可以通过窗口、菜单方便地进行操作。

由于嵌入式系统实时性要求高,同时嵌入式系统硬件配置又有限,所以对轻型GUI 的需求更加突出。

另外,嵌入式系统往往是一种订制设备,它们对GUI 的需求也各不相同,因此GUI 也必须是可订制的。

综上所述,嵌入式系统对GUI 的基本要求应包括轻型、占用资源少、高性能、高可靠性以及可配置。

MiniGUI 是目前比较常用的几种GUI 系统之一,与其他的GUI 相比,MiniGUI 最显著的特点就是轻型、占用资源少,而且在这几年的发展里,MiniGUI 已经非常成熟和稳定了,在许多产品和项目中都已得到了实际应用。

1 MiniGUI 的特点和体系结构1. 1 MiniGUI 的特点MiniGUI 是由原清华大学教师魏永明主持开发的轻量级图形系统,是一种面向嵌入式或实时系统的图形用户界面支持系统。

它遵循GPL 公约,是基于SVGALib 及LinuxThread 库的多窗口GUI 支持系统。

能跨多种操作系统,主要运行于linux 及一切具有POSIX 线程支持的POSIX 兼容系统,包括普通嵌入式Linux、eCos、uC/OS-II、VxWorks 等系统,是国内最早的自由软件之一。

MiniGUI 的主要特点有:(1) 遵循GPL 条款的纯自由软件;(2) 提供了完备的多窗口机制;。

基于uClinux系统MiniGUI的移植研究

基于uClinux系统MiniGUI的移植研究

基于uClinux系统MiniGUI的移植研究
李战明;龚思远;陈若珠
【期刊名称】《微计算机信息》
【年(卷),期】2007(000)04Z
【摘要】随着嵌入式技术的迅猛发展,图形用户界面(Graphics?User?Interface)的应用越来越多地出现在消费电子以及工业实时控制领域中。

本文选择了一种占用资源少,对实时性支持较好的图形用户界面——MiniGUI和目前流行的uClinux系统为对象,简单介绍了两者的特点。

并以S3C44B0为核心的ARM开发板为硬件平台,给出了一种MiniGUI的移植方案。

【总页数】3页(P46-48)
【作者】李战明;龚思远;陈若珠
【作者单位】兰州理工大学电气工程与信息工程学院,甘肃兰州730050
【正文语种】中文
【中图分类】TP334
【相关文献】
1.基于嵌入式Linux系统的MiniGUI的移植与应用 [J], 陈长华;冀小平;王哲;王光玲
2.基于嵌入式Linux系统的MiniGUI的移植研究 [J], 李国光;王文海
3.基于uClinux系统的MiniGUI的研究与移植 [J], 谢新华;李端明
4.基于嵌入式Linux系统的MiniGUI移植研究 [J], 唐力强;徐国平
5.基于uClinux系统MiniGUI的移植研究 [J], 李战明;龚思远;陈若珠
因版权原因,仅展示原文概要,查看原文内容请购买。

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

MiniGUI到EV44B0Ⅱ上的移植研究
摘要: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.。

相关文档
最新文档