微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于Microwindows的嵌入式GUI分析及应用

基于Microwindows的嵌入式GUI分析及应用

时间:04-05 来源:互联网 点击:

结构定义如下:

Microwindows 的API

Microwindows 提供两个应用程序接口:一是Win32 接口,这种API 不是很成熟;二是Nano-X ,这种API 比较好,结构上清晰,功能上也完全。

在Microwindows 上的API 接口函数的基本模型都是用来初始化屏幕、键盘和鼠标的驱动程序,然后一直等待select () 消息循环。当事件发生时,这条信息将送到用户程序。如果是用户请求图形操作,那参数将被编码后送到适当的GdXXX 核心程序上。与原始图形操作相对的窗口概念是被该层所控制的,也就是说该层的API 函数定义了窗口及其对应系统的概念。这样,系统坐标就能被转成屏幕上显示的坐标,并且可将数据传给GdXXX 核心程序,由它进行实际操作。该层亦定义图形/ 显示文件,并且会将此信息(包括裁减信息) 送到核心程序上。

Microwindows 的API 支持大多数图形绘制、裁减、窗口工具条绘制及拖拉窗口等程序。Nano-X 最先是由Davin Bell 为minix 设计的,它被设计为C/ S 模式,一般是通过Unix Domain socket 在客户与服务器端进行通信的,但没有实现窗口管理,所以对窗口的处理需要使用系统提供的一个插件集,或者完全由应用程序员自已开发。另外,Nano-X 不是消息驱动的,而是基于X 协议模式。在这种模式下,驱动整个系统运行的可以说是请求与事件。

请求就是客户端为了完成某一动作而对服务器端所发出的申请,并且为每一个请求都定义了一个标识数。每个请求的结构都是不同的,但类似如下结构:

事件是每个窗口系统必不可少的部分,它反映系统运行的状态,一共有22 种。对于每个事件都要提供有关它的结构,但没有必要提供22 种事件结构,有一些事件所需要的数据是一样的,如所有鼠标的事件都使用一个事件结构表示,如下所示:

Microwindows 在仿真环境下的应用

Microwindows 最为显著的优势在于它可以在桌面计算机上仿真运行目标平台的GUI 及其支撑软件。这就意味着面向Linux 的Microwindows 应用软件可以在桌面计算机的Linux 环境下编制和调试,而没有必要建立跨平台交叉编译环境,并在目标平台上对软件进行编制和调试。这一点对于Embedded GUI 移植和开发而言,意义非同寻常。这完全归功于Microwindows 的X Screen Driver ,而非Linux 的Framebuffer 。

我们在桌面计算机上的Linux 8. 0 仿真环境下运行Microwindows ,并通过一个简单实例演示仿真环境下的Microwindows 应用编程。显然,我们应采用Nano-X API。

仿真环境下Microwindows 主要的安装步骤:

(1) 下载并安装最新源代码Microwindows20. 90. tar和最新字体microwindows2FONT s20. 90. tar。

(2) 修改安装目录下的配置文件,如mirowin/ src 下的config file ,主要包括以下几项:

ARCH = LINUX-NATIVE;   

/ / 高速系统为主机LINUX 建立应用程序

HAVE_FREETYPE_SUPPORT = Y;  

/ / 设置对Free Type 和T1lib 字体的支持

HAVE_ T1LIB_SUPPORT = Y;

HAVE_HZK_SUPPORT = Y;

X11 = Y;

SCREEN_WIDTH = 640 ;

SCREEN_HEIGHT = 480 ;

SCREEN_PIXTYPE = MWPF_TRUECOLOR0888 ;

Microwindows 在桌面Linux 8. 0环境下的运行效果如图2 所示。

结束语

嵌入式相关研究和应用正在以前所未有的速度发展着,而作为嵌入式系统核心内容之一的Embedded GUI 一定会随着嵌入式系统的发展处于举足轻重的地位。具有高可移植性、丰富API 支持、开放源代码及可仿真运行的Microwindows ,在诸多Embedded GUI 技术中必将脱颖而出。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top