微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于嵌入式Linux系统界面的研究

基于嵌入式Linux系统界面的研究

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

UI是一种面向嵌入式系统或者实时系统的图形用户界面支持系统。他主要运行于Linux控制台,实际可以运行在任何一种具有POSIX线程支持的POSIX兼容系统上。MiniGUI同时也是国内最早出现的几个自由软件项目之一。

MiniGUI的主要特色有:

(1)遵循LGPL条款的纯自由软件。

(2)提供了完备的多窗口机制。包括多个单独线程中运行的多窗口;单个线程中主窗口的附属;对话框和预定义的控件类(按钮、单行和多行编辑框、列表框、进度条、工具栏等)。

(3)消息传递机制。

(4)多字符集和多字体支持。

(5)BMP,GIF,JPEG,PCX等常见图像文件的支持。

(6)Windows的资源文件支持,如位图、图标、光标、插入符、定时器、加速键等。

(7)小巧

包含全部功能的库文件大小为300kB左右。

(8)可配置

可根据项目需求进行定制配置和编译。

(9)高稳定性和高性能。

(10)可移植性好。

(11)图形抽象层

图形抽象层对顶层API基本没有影响,但大大方便了MiniGUI应用程序的移植、调试等工作。目前包含2个图形引擎,SVGALib和LibGGI,利用LibGGI时,可在XWindow上运行MiniGUI应用程序,并可非常方便地进行调试。与图形抽象层相关的还有输入事件的抽象层。

3.2.2MiniGUI的体系结构

从整体结构上看,MiniGUI是分层设计的,层次结构如图1所示。在最底层,GAL和IAL提供底层图形接口以及鼠标和键盘的驱动;中间层是MiniGUI的核心层,包括窗口系统必不可少的各个模块;最顶层是API,即编程接口。GAL和IAL为MiniGUI提供了底层的Linux控制台或者XWindow上的图形接口以及输入接口,而Pthread用于提供内核级线程支持的C函数库。おお

利用GAL和IAL,大大提高了MiniGUI的可移植性,并且使程序的开发和调试变得更加容易。可以在XWindow上开发和调试自己的MiniGUI程序,通过重新编译就可以让MiniGUI应用程序运行在特殊的嵌入式硬件平台上。

MiniGUI本身运行在多线程模式下,他的许多模块都以单独的线程运行,同时,MiniGUI还利用线程来支持多窗口。从本质上讲,每个线程有一个消息队列,消息队列是实现线程数据交换和同步的关键数据结构。一个线程向消息队列中发送消息,而另一个线程从这个消息队列中获取消息,同一个线程中创建的窗口可共享同一个消息队列。

多线程有一定的好处,但不方便的是不同的线程共享同一个地址空间,因此,客户线程可能会破坏系统服务器线程的数据,但有一个重要的优势是,由于共享地址空间,线程之间就没有额外的数据复制开销。由于MiniGUI是面向嵌入式或实时控制系统的,因此,这种应用环境下的应用程序往往具有单一的功能,从而使得采用多线程而非多进程模式实现图形界面有了一定的实际意义,也更加符合MiniGUI之“Mini”的特色。

在多线程环境中,与多进程间的通讯机制类似,线程之间也有交互和同步的需求。比如,用来管理窗口的线程维持全局的窗口列表,而其他线程不能直接修改这些全局的数据结构,而必须依据“先来先服务”的原则,依次处理每个线程的请求,这就是一般性的C/S模式。MiniGUI利用线程之间的同步操作实现了客户线程和服务器线程之间的微C/S机制,之所以这样命名,是因为客户和服务器是同一进程中的不同线程。

4MiniGUI在雷达显示界面上的应用

我们自主裁剪了Linux系统,并在此基础上安装了基于SVGALib图形引擎的MiniGUI轻量级图形用户界面支持系统,基于MiniGUI编写了图形用户界面雷达终端显示应用程序。

5结语

嵌入式Linux系统是源代码开放的一种可裁剪的软件平台系统,不存在黑箱技术。他的小巧、稳定、多任务、可配置、高性能、高可靠性、硬件的良好支持和价格的优势,尤其网络功能的强大,使他迅速成长发展,受到广大开发人员的青睐。

MiniGUI是国人自行开发研制的适合嵌入式系统的轻量级图形用户界面支持系统,他采用WIN32体系架构,提供了完备的多窗口机制、对话框和预定义的控件类,消息传递机制等,大大地简化了开发人员的界面设计。

但是,国产的嵌入式操作系统在技术含量、兼容性、市场运作模式等方面也还有很多工作要做,我们应该在跟踪国外嵌入式操作系统的最新技术的同时,坚持自主产权,力争找到自己的突破点,探索出一条自己的发展道路。Linux正提供了一个这样的平台。

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

网站地图

Top