首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
基于ATMEL AT91SAM9261开发板的MiniGUI移植
杭州迈冲科技有限公司
收藏本文     查看收藏
1、 图形用户界面MiniGUI 简介
MiniGUI 是遵循GPL 条款发布的自由软件,其目标是为基于Linux的实时嵌入式系统提供一个轻量级的图形用户界面支持系统。与QT/Embedded、MicoroWindows 等其它GUI 相比,MiniGUI的最显著特点就是轻型、占用资源少。据称MiniGUI 能够在CPU主频为30MHz,仅有4MB RAM 的系统上正常运行, 这是其它多种GUI所无法达到的。目前,MiniGUI已经非常成熟和稳定,并且在许多实际产品和项目中得到了应用。
2、 MiniGUIAT91SAM9261开发板上的移植过程
(1)       构建Linux 交叉编译环境
使用的交叉编译工具链是arm-linux-gcc-3.4.1.tar.bz2。
详细步骤:
[root@localhost /]# tar zxvf arm-linux-gcc-3.4.1.tar.bz2
[root@localhost /]# vi ~/.bashrc
在.bashrc 添加一行 export PATH=/usr/local/arm/3.4.1/bin/:$PATH
保存退出后执行
[root@localhost /]# source ~/.bashrc
至此交叉编译环境已经建立好了。
(2)       交叉编译MiniGUI
首先,从网上http://www.minigui.com/download/cindex.shtml) 得到MiniGUI 的源程序包,包括三个部分:
libminigui-1.6.2.tar.gz——MiniGUI函数库源代码;
miniguires- 1.6.2.tar.gz——MiniGUI所使用的资源,包括基本字体、图标、位图等;
mg-samples-str-1.6.2. tar.gz——MiniGUI的演示程序。
首先进行M i n i G U I 函数库的编译和安装。解开libminigui-1.6.2.tar.gz软件包,进入该目录,运行./configure脚本
CC=arm-linux-gcc \
./configure --prefix=/usr/local/arm/3.4.1/arm-linux \
    --build=i386-linux \
    --host=arm-linux \
    --target=arm-linux
生成定制的Makefile 文件,然后可以继续执行make 和make install命令编译并安装libminigui,安装成功后,MiniGUI 的函数库和头文件以及配置文件等资源将被安装到/usr/local/arm/3.4.1/arm-linux 目录中,具体情况为:函数库被装在lib/子目录中;头文件被装在include/ 子目录中;手册被装在man/ 子目录中;配置文件被装在etc/ 子目录中。
下面进行MiniGUI资源的编译安装。解压minigui-res-1.6.2.tar.gz,进入相应目录。这里需要说明的是,在执行 make install操作之前,需要对目录中的configure.linux文件做一些修改。打开configure.linux文件,你会发现prefix 选项部分的默认值为$(TOPDIR)/usr/local,需要将这里修改为prefix=$(TOPDIR)/ usr/local/arm/3.4.1/arm-linux/,这样执行make install 操作之后,安装脚本会自动把MiniGUI资源文件安装到/usr/local/arm/3.4.1/arm-linux/lib/minigui/res/目录下。
最后,编译并安装MiniGUI 的演示程序。解压mg-samples-str-1.6.2. tar.gz,执行脚本:
CC=arm-linux-gcc \
CFLAGS=-I/usr/local/arm/3.4.1/arm-linux /include \
LDFLAGS=-L/usr/local/arm/3.4.1/arm-linux /lib \
./configure \
    --build=i386-linux \
    --target=arm-linux \
    --host=arm-linux \
执行make操作, 完成演示程序的编译。
(3)       拷贝MiniGUI 资源到开发板
进入/usr/local/arm/3.4.1/arm-linux/目录,在etc,lib子目录下有我们需要拷贝到目标机上的资源。将lib下的libminigui.a ,libminigui.la两个库文件拷贝到9261板子的文件系统/usr/local/lib,将lib/minigui/res/的所有文件也拷贝到9261板子的文件系统/usr/local/lib/minigui/res下,最后将配置文件MiniGUI.cfg拷贝至9261板子文件系统的/usr/local/etc/目录下。重新制作文件系统,烧写至9261板子的NANDFLASH中。
(4)       板载Linux 的环境配置
修改MiniGUI.cfg文件,主要几个参数如下:
[system]
ial_engine=console
mdev=/dev/input/mouse0
mtype=PS2
[fbcon]
defaultmode=480x272-16bpp
板子的输入设备是USB的鼠标、键盘,输出设备是群创4.3寸TFT液晶屏。
(5)       MiniGUI运行
拷贝mg-samples-str-1.6.2/src/下的显示程序到9261板子上,运行button程序,效果如下。
       minigui-res-1.6.2版本里的字体中是没有中文字库的,不能正常显示中文,我们需要通过移花接木来增加MiniGUI 1.6对中文的支持。
       minigui-res-1.3.3里面的font就有两个中文字库,分别是song-12-gb2312.bin和song-16-gb2312.bin,把这两个字库复制到我们的res编译的路径/usr/local/arm/3.4.1/arm-linux/lib/minigui/res/font下。因为要显示中文,用上刚才下载的字库(内建资源),就要使内建资源可用,这个是在执行./configure时设置的。编译mg-libminigui-1.6.2时的./configure另外加上选项--enable-incoreres=yes --enable-rbfgb12=yes --enable-rbfgb16=yes 。重新编译安装。
       修改/usr/local/arm/3.4.1/arm-linux/lib/minigui/res/font/font.name文件,在其中增加两行:
        song-12-gb2312.bin Raw Bitmap Font   rbf-fixed-rrncnn-12-12-GB2312.1980-0
        song-16-gb2312.bin Raw Bitmap Font   rbf-fixed-rrncnn-16-16-GB2312.1980-0
MiniGUI的配置文件中进行修改,MiniGUI的应用程序便可显示中文了。
MiniGUI.cfg的[systemfont]和[rambitmap font]就要做相应的改动,如下:
# The first system font must be a logical font using RBF device font.
[systemfont]
font_number=3
font0=rbf-fixed-rrncnn-8-16-ISO8859-1
font1=rbf-fixed-rrncnn-12-12-GB2312.1980-0
font2=rbf-fixed-rrncnn-16-16-GB2312.1980-0
default=1
wchar_def=1
fixed=1
caption=2
menu=1
control=1
[rawbitmapfonts]
font_number=3
name0=rbf-fixed-rrncnn-8-16-ISO8859-1
fontfile0=/usr/local/lib/minigui/res/font/8x16-iso8859-1.bin
name1=rbf-fixed-rrncnn-12-12-GB2312.1980-0
fontfile1=/usr/local/lib/minigui/res/font/song-12-gb2312.bin
name2=rbf-fixed-rrncnn-16-16-GB2312.1980-0
fontfile2=/usr/local/lib/minigui/res/font/song-16-gb2312.bin
重新编译mg-sample-src-1.6.2时的./configure,要加上选项--with-lang=zhcn。再将MiniGUI 资源拷贝到开发板,重新运行例程,就可显示中文了。
4、增加触摸屏输入
在libminigui-str-1.6.2/src/ial目录下添加触摸屏的接口驱动程序,我是将libminigui-str-1.6.2自带的S3C2410触摸屏的代码进行适当修改,并在编译libminigui-str-1.6.2前./configure时增加--enable-smdk2410ial=yes,编译进了2410.c 2410.h这两个文件。修改配置文件MiniGUI.cfg文件,
[system]
# GAL engine
gal_engine=fbcon
# IAL engine
ial_engine=SMDK2410
#ial_engine=console 
mdev=/dev/input/ts0
#mdev=/dev/input/mouse0
 
还要对触摸屏进行校准,可以移植tslib进行校准(参考tslib移植文档)。
5、结语
MiniGUI 移植过程已通过实践检验。对于其它型号的开发板而言, 移植过程大体相似。可以肯定,带有简洁、美观图形用户界面的嵌入式系统将会在更多的领域具有更好的实用价值。

 

状 态: 离线

公司简介
产品目录

公司名称: 杭州迈冲科技有限公司
联 系 人: 朱——
电  话: 0571-87973488
传  真: 0571-87976488
地  址: 杭州市西湖区西湖科技园金蓬街366号1号楼3楼
邮  编: 310013
主  页:
 
该厂商相关技术文摘:
基于ATMEL AT91SAM9261开发板的QT移植
QT中文字体的显示方法
更多文摘...
立即发送询问信息在线联系该技术文摘厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved