摘要:跟着嵌入式体系的开展,嵌入式图形用户界面需求越来越显着,MiniGUI是现在比较老练的嵌入式Linux体系的图形用户界面。为了满意嵌入式图形用户界面的需求,将MiniGUI移植到根据S3C2440的处理器方针板。首要阐明了怎么树立穿插环境,接着评论MiniGUI 1.6.10库和资源的移植,最后闸述运转环境的装备。完结了对S3C2440开发板的MiniGUI移植,完结嵌入式Linux图形用户界面的构建,并为其他嵌入式设备的移植供给学习。
关键词:嵌入式体系;MiniGUI;S3C2440;移植
跟着嵌入式体系的迅速开展,图形用户界面(Graphic User Interface,GUI)需求越来越显着。MiniGUI是面向实时嵌入式体系的轻量级图形用户界面支撑体系,以轻型、占用资源少、高功能、可装备等特色广泛运用于通讯、医疗、工控、电子、机顶盒、多媒体等范畴。本文正是针对这种需求,介绍怎么在S3C240上移植MiniGUI的全过程。
1 图形用户界面MiniGUI
MiniGUI是由原清华大学教师魏永明掌管开发的轻量级图形体系,遵从GPL条约。所支撑的操作体系已不只是限于Linux,它还能够在μCli nux,μC/OS-Ⅱ,eCos和VxWorks等体系上运转。已验证的硬件渠道包含Intelx86,ARM(ARM7/AMR9/StrongARM/xScale),Power-PC,MIP S,M68K(DragonBall/ColdFire)等。
1.1 MiniGUI与嵌入式体系的联系
MiniGUI具有杰出的软件架构,经过笼统层将MiniGUI上层和底层操作体系阻隔开来。如图1所示,根据MiniGUI的运用程序一般经过ANSIC库以及MiniGUI本身供给的API来完结自己的功用;MiniGUI中的“可移植层”可将特定操作体系及底层硬件的细节躲藏起来,而上层运用程序则无需联系底层的硬件渠道输出和输入设备。
1.2 MiniGUI体系结构
从结构上看,MiniGUI是分层规划的,层次结构如图2所示。在底层,GAL和IAL为MiniGUI供给了底层的Linux控制台或许X Window上的图形接口以及输入接口。中间层是MiniGUI的中心层,其间包含了窗口体系必不可少的各个模块。最顶层的API向运用规划供给编程接口。
2 S3C2440开发渠道简介
本文运用的方针渠道是三星公司推出的高度集成的S3C2440(ARM920T core with MMC),最高主频可达532 MHz微处理器,供给64MB SDRA M,64 MBNAND FLASH以及2 MB NOR FLASH的存储设备,别的包含IDE和PCM%&&&&&%A接口的丰厚的外围电路和多功用的扩展接口。S3C2440选用高功能ARM9微处理器以其优化的片上功能,在视频会议、楼宇的对讲体系、网络监控、GPS定位/导航仪、医疗电子设备、多媒体终端产品等运用范畴有广泛运用。
3 MiniGUI的移植
宿主主机体系为redhat Linux 9.0,要求完全装置,移植过程如下:
3.1 树立穿插编译环境
在移植之前首要树立好穿插编译环境,简略地说是指在一个渠道上能够生成能在另一个渠道上运转的代码,编译东西为arm-linux-gcc-3.3.2。
#tar-xvjf rm-linux-gcc-3.3.2
默许的装置途径是/usr/local,为了防止每次设置PATH,在.bash_profile文件中添加PATH=/usr/local/arm/3.4.1bin:MYMPA TH,并运转以下指令:
#source.bash_profile
3.2 源代码预备
从http://www.minigui.org/res.shtml下载源代码包如下:
(1)libminigui-1.6.10.tar.gz:MiniGUI函数库源代码。
MiniGUI由3个函数库的组成,它们分别是libminigui,libmgext和libvcongui。libminigui是供给窗口办理和图形接口的中心函数库,也供给了很多的规范控件;libmgext是libminigui的一个扩展库,供给了一些高档控件及“文件翻开”、“色彩挑选”对话框等;libvcon gui则为Linux操作体系供给了一个运用程序可用的虚拟控制台窗口,然后能够方便地在MiniGUI环境中运转字符界面的运用程序,libmgext和libvcongui库现已包含在这个源代码包中。
(2)minigui-res-1.6.10.tar.gz:MiniGUI所运用的资源,包含根本字体、图标、位图和鼠标光标。
(3)mg-smaples-1.6.10.tar.gz:配套示例程序。