EDN China > 技术文章 > 嵌入式系统 > 开发工具 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

嵌入式Linux系统下Microwindows的应用

来源:CE china / 作者:吴升艳 岳春生 胡 冰?? 2006年04月13日 ?? 收藏0

?????? Microwindows在运行过程中仅需要50~250KB的内存空间,远小于X Windows系统所需空间。这主要是因为Microwindows对于在驱动层的每一个绘图函数采用的是单进程的方式,由驱动层核验是否裁减并调用驱动程序来绘制未被裁减的像素点或线;而在X Window系统中,则是出于对速度的考虑,包含所有像素点的绘制程序并分别有裁减和未裁减的版本。Microwindows完全支持新的Linux内核的帧缓冲区结构,同时支持1、2、4、8、16、24、32位像素点显示,支持调色板、真彩色、灰度等颜色模式,并对渲染提供内置支持。在其API函数的支持下,还可以以RGB的格式描述上述的颜色模式,系统中包含颜色转换的程序,可将像素点转换成相近的可显示颜色或相应单色系统中的灰度级。虽然Microwindows支持Linux系统,但它是基于相对简单的屏幕驱动界面结构,因此,可在许多不同的实时操作系统(RTOS)上运行,甚至于那些无硬件的实时操作系统也可运行Microwindows。这样,可使得客户的图形应用程序在不的工程中共享使用,也可在不同的RTOS上运行不同的目标程序而不需要重新编写图形应用程序,大大提高了编程效率。

?????? Microwindows支持图形目标平台的主机平台竞争,也就是说应

用于Linux的Microwindows应用程序不需要跨平台编译,就可在桌面上直接运行和测试,同时仍可在目标平台上运行。这一点需通过使用Micorwindows的X11屏幕驱动器实现,同时驱动器可以根据像素点和颜色值来模拟目标平台的显示。因此,即使桌面系统是24位的颜色模式,它也可以以2色模式显示目标系统中的应用程序。对于那些熟悉使用Microsoft Windows或Linux X Windows的程序员页言,经编写应用程序时是有一定区别的。Microsoft Windows的编程员一般使用MS-Visual C++的类库(MFC)中的C++应用程序框架或者是更新的ATL框架,在绘制图形时使用Win32图形设备接口(GDI)。Windows中还包括有许多Win32 GDI中的应用界面控件,如按钮、列表等。而X Windows系统提供了一个低级接口——Xlib,仅用于实现最低级简单的绘图功能,并将其封装成程序包在需显示时在显示设备上运行。在用户界面中,大多数的解决利用插件,在Xlib的上层加入插件集来实现更高级的函数。目前,对Microwindows的应用正在逐步地加入GTK+/GDK以及FLTK插件,以实现更多的用户界面控件。

?????? 3 Microwindows的体系结构

?????? 由于Microwindows在设计上有着明显的分层结构,其设备与平台相关层、设备与平台无关层和应用层之间层次清晰、结构明显,因此勿需改动其整体结构,只需在其相应的部分添加代码即可实现一些更为复杂的功能。

?????? 在Microwindows的最底层(设备与平台相关层),系统针对显示屏、鼠标、触屏以及键盘等各定义了一个数据结构。该数据结构和顶层结构一样,供图形引擎使用,包含了针对指定设置和硬件驱动代码。Microwindows中还包含了诸多设备和操作系统的各种版本的驱动程序。屏幕驱动可支持系统1的、2、4、8、16、24、32位显示和调色板、真彩色、灰度等颜色模式。屏幕驱动中还包括一些入口指针,这些指针分别用读写像素、绘制水平或垂直线,在屏幕和内存之间相互映射内存空间。在实现这些基本指针的过程中需运行包括TrueType或Adobe Type1的字体支持、RGB颜色支持、JPEG以及BMP图形处理等Microwindows上层函数。如果屏幕驱动中还包括有硬件加速的话,仅需更改驱动程序即可;也可在系统中添加触屏、键盘、按键等的输入。

?????? Microwindows的中间层是图形引擎层(也称为设备与平台无关层),因为所有的绘图函数都通过调用屏幕驱动来实现,该层与硬件无关。图形引擎层为应用层提供了一系列相应的入口指针调用绘图函数,还为所有的颜色指定了RGB的颜色模型;同样,该层也与显示设备无关,可以由RGB值为判断硬件中的像素值。除此之外,Microwindows还在中间层实现裁减功能,它采用多矩形算法,可在任意复杂的区域中实现绘图功能。中间层还要控制所有字体的显示,支持FreeType以及使用T1Lib的Adobe Type 1字体、支持比例字体,同时还支持ASCII、Unicode-16、Unicode-32、UTF-8编码规则。


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

操作系统? 嵌入式?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈