新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于Microwindows的嵌入式GUI设计

基于Microwindows的嵌入式GUI设计

作者: 时间:2011-01-24 来源:网络 收藏

microwindows 的api

  microwindows 采用分层体系结构设计,提供了丰富的api 支持,支持win32/ wince gdi 和nano-x两种api 集。

microwindows 体系结构

  microwindows 的体系结构由下至上,分别为具体硬件、驱动层、图形引擎层和api 层,如图1 所示。用户可以根据具体应用需求对不同层的代码进行修改或重写。

  (1) 设备驱动程序。

  键盘驱动程序主要有两个,分别是kbd _ tty. c 和kbd _ bios. c 。前者主要用于linux 和el ks 系统,而后者主要用于msdos 实模式。

  鼠标驱动程序主要有三个:mou_gpm. c ,用于linux 的一个gpm 驱动; mou _ ser. c ,用于linux 和el ks 系统;mou_gpm. c ,主要用于msdos 系统。

  屏幕驱动程序有面向16 位el ks、msdos 实模式的v ga 驱动( scr_bios. c、vgaplan4. c、memp14. c 、scr_here. c)和面向linux 的framebuffer ( scr_fb. c、fb. c 等) 两种。这部分驱动程序最复杂,在设计时可以参考scr_fb. c 来设计自己的屏幕驱动程序。

  (2) 设备独立的图形引擎。

  microwindows 的图形引擎是设备独立的。引擎的每一例程都接受screendevice 结构的指针( psd) 来作为第一个参数。psd 说明了底层的显示细节,如屏幕大小的x 、y 值,屏幕颜色ncolors ,以及诸如打开、关闭、画线等函数指针。


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 协议模式。在这种模式下,驱动整个系统运行的可以说是请求与事件。

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

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

上一页 1 2 下一页

关键词: 嵌入式

评论


相关推荐

技术专区

关闭