新闻中心

EEPW首页>嵌入式系统>设计应用> 基于Linux的嵌入式GUI研究与应用

基于Linux的嵌入式GUI研究与应用

作者: 时间:2012-03-24 来源:网络 收藏

3.2基本性能需求

应在基于操作系统的基础上,为用户提供丰富的图形编程接口,使其能够方便快速的编制界面友好的应用程序。
GUI模块的性能指标为单位时间实例化个数,如下所列:
基本图形绘制速度,即点、线、框、块、圆、弧、椭圆等图形单元绘制速度。在显示设备可见范围内任意位置产生随机大小的基本图形。量化指标为单位时间内绘制的个数,并以较长测试时间中取得的单位时间平均值为准。
窗口创建速度。在显示设备可见范围内任意位置创建随机大小的窗口。量化指标为单位时间内成功创建及绘制完毕的窗口个数,并以较长测试时间中取单位时间平均值为准。
控件创建速度。在显示设备可见范围内任意位置创建随机大小、包含随机内容的窗口。量化指标为单位时间内成功创建及绘制完毕的控件个数,并以较长测试时间中取单位时间平均值为准。
事件驱动机制反应速度。针对窗口及不同控件的典型事件及耗时事件,测试其完成时间。窗口及控件的大小、复杂程度随机产生。量化指标为单位时间内成功处理完毕的事件数,并以较长测试时间中取单位时间平均值为准。

3.3移植

在基于的嵌入式系统中,输入设备可能只有触摸屏和为数不多的按键,相对图形引擎来说,输入设备的处理没有统一接口,在此情况下,提供一个抽象的输入层,显得尤为重要。
这里我们参考MiniGUI,并结合实际工程机械控制系统来实现的移植工作。MiniGUI简单可分为三层,最顶层为API,即编程接口;中间层是 MiniGUI的核心层,其中包括了窗口系统必不可少的各个模块,如消息事件处理模块、图形设备接口等;而最底层则是GAL和IAL。
该实际工程机械控制系统拟采用触摸屏作为主要的输入设备,需要编写自己的。首先定义一个结构体用来从触摸屏设备(/dev/ts)中接受数据,结构体定义如下:
typedefstruct
{
unsignedshortb;//触摸屏状态(是否被点击)
unsignedshortx;//触摸屏x坐标
unsignedshorty;//触摸屏y坐标

unsignedshortpad;//32位填充域,无实际意义
}POS;
接下来定义输入引擎的初始化函数,该函数打开触摸屏设备文件:/dev/ts,类似PC上的/dev/psaux设备。在成功打开设备文件后,该函数通过 mouse_getxy和mouse_getbutton等函数将获得的状态信息通过INPUT结构体传递给GUI应用程序。
BOOlInitPADInput(INPUT*input,constchar*mdev,constchar*mtype)
{
ts=open(“/dev/ts”,O_RDONLY);
if(ts0){
fprintf(stderr,“PAD:Cannotopentouchscreen!n”);
returnFALSE;
}
……
input->get_mouse_xy=mouse_getxy;
input->get_mouse_button=mouse_getbutton;
……
}
staticvoidmouse_getxy(int*x,int*y)
{
*x=mousex;
*y=mousey;
}
staticintmouse_getbutton(void)
{
returnpos.b;
}
最后通过wait_event函数调用select系统调用,当select系统调用返回值大于0时,该函数检查是否有可读的数据等待读取,如果是,则从该文件描述符中读取触摸屏数据。
限于篇幅原因,这里只列出了其中输入引擎的移植代码中较为关键的部分。代码编写完成后,还需要在“/src/ial/ial.c”中添加自定义的输入引擎的入口项。
staticINPUTinputs[]=
{……
#ifdef_PC104_IAL
{"pc104",InitYKInput,TermYKInput},
#endif
……
}

4.结束语

本文具体介绍了作为嵌入式操作系统的实现方法,结合技术,在PC104主板上利用创建了一个拥有用户界面的微型操作系统,并通过对抽象层接口及相关技术的分析,自定义输入引擎,实现了设备的可定制,在实际工程机械项目中有较大的实用价值和市场前景。
创新点:利用Linux在嵌入式主板上搭建了一个微型操作系统,在此基础上实现了针对触摸屏的输入引擎的移植。

参考文献:
[1]GRUB主页[EB].http://www.gnu.org/software/grub
[2]Linux内核主页[EB].http://www.kernel.org
[3]魏永明等.Linux/uClinux+MiniGUI:嵌入式系统开发原理、工具及过程[M].北京:飞漫软件公司,2006
[4]马记平等.嵌入式Linux操作系统在PC104上的实现[J].微计算机信息,2007,2-2:39-41

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭