当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]基于嵌入式Linux系统界面的研究

1概述

1.1什么是嵌入式系统

嵌入式系统一般指非PC系统,有计算机功能但又不称之为计算机的设备或器材。他是以应用为中心,以计算机技术为基础,并且软硬件可裁减的,适用于对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。

1.2嵌入式操作系统的发展

嵌入式技术的发展,大致经历了4个阶段:

第一阶段是以单芯片为核心的可编程控制器形式的系统,同时具有与监测、伺服、指示设备相配合的功能。这种系统大部分应用于一些专业性极强的工业控制系统中,一般没有操作系统的支持,通过汇编语言编程对系统进行直接控制,运行结束后清除内存。

第二阶段是以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统。这一阶段的操作系统具有一定的兼容性和扩展性,但用户界面不够友好。

第三阶段是以嵌入式操作系统为标志的嵌入式系统。这一阶段系统的主要特点是:嵌入式操作系统能运行于各种不同类型的微处理器上,兼容性好;操作系统内核精小、效率高,并且具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(API),开发应用程序简单;嵌入式应用软件丰富。

第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。目前大多数嵌入式系统还孤立于Internet之外,但随着Internet的发展以及Internet技术与信息家电、工业控制技术等结合日益密切,嵌入式设备与Internet的结合将代表着嵌入式技术的真正未来。

1.3嵌入式操作系统的特点

与其他类型的操作系统相比,嵌入式操作系统具有以下一些特点。

(1)体积小

嵌入式系统有别于一般的计算机处理系统,他不具备像硬盘那样大容量的存储介质,而大多使用闪存(FlashMemory)作为存储介质。这就要求嵌入式操作系统只能运行在有限的内存中,不能使用虚拟内存,中断的使用也受到限制。因此,嵌入式操作系统必须结构紧凑,体积微小。

(2)实时性

大多数嵌入式系统都是实时系统,而且多是强实时多任务系统,要求相应的嵌入式操作系统也必须是实时操作系统(RTOS)。实时操作系统作为操作系统的一个重要分支已成为研究的一个热点,主要探讨实时多任务调度算法和可调度性、死锁解除等问题。

(3)特殊的开发调试环境

提供完整的集成开发环境是每一个嵌入式系统开发人员所期待的。一个完整的嵌入式系统的集成开发环境一般需要提供的工具是编译/连接器、内核调试/跟踪器和集成图形界面开发平台。其中的集成图形界面开发平台包括编辑器、调试器、软件仿真器和监视器等。

2嵌入式Linux

嵌入式Linux是按照嵌入式操作系统的要求而设计的一种小型操作系统。由一个Kernel(内核)及一些根据需要进行定制的系统模块组成。其Kernel很小,一般只有几百kB左右。即使加上其他必须的模块和应用程序,所需的存储空间也很小。他有多任务、多进程的系统特征,有些还具有实时性。一个小型的嵌入式Linux系统只需要引导程序、Linux微内核、初始化进程3个基本元素。运行嵌入式Linux的CPU可以是x86,Alpha,Sparc,MIPS,PPC等。与这些芯片搭配的主板都很小,与一张PCI卡大小相当,有的甚至更小。嵌入式Linux所需的存储器不是软磁盘、硬盘、Zip盘、CDROM,DVD这些众所周知的常规存储器,他使用Rom,CompactFlash,MSystems的DiskOnChip,Sony的MemoryStick,IBM的MicroDrive等体积极小与主板上的BIOS大小相近,存储容量不太大的存储器。他的内存可以使用普通的内存,也可以使用专用的RAM。与其他嵌入式操作系统相比,Linux的源代码是开放的,不存在黑箱技术。Linux作为一种可裁剪的软件平台系统,是发展未来嵌入式设备产品的最佳资源。

3图形用户界面系统MiniGUI

3.1图形用户界面简介

计算机用户界面是指计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。计算机的发展史不仅是计算机本身处理速度和存储容量飞速提高的历史,也是计算用户界面不断改进的历史。用户界面的重要性在于他极大地影响了最终用户的使用,影响了计算机的推广应用,甚至影响了人们的工作和生活。由于开发用户界面的工作量极大,加上不同用户对界面的要求也不尽相同,因此,用户界面已成为计算机软件研制中最困难的部分之一。

GUI在嵌入式系统或者实时系统中的地位将越来越重要,这些系统对GUI的基本要求包括:

①轻型、占用资源少。

②高性能。

③高可靠性。

④可配置。

3.2MiniGUI图形用户系统

3.2.1MiniGUI特色

MiniGUI由原清华大学教师魏永明先生开发,是中国人做得较好的自由软件之一。MiniGUI是一种面向嵌入式系统或者实时系统的图形用户界面支持系统。他主要运行于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函数库。???[!--empirenews.page--]

利用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正提供了一个这样的平台。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

刚入门嵌入式,选入门级RZ/G2L开发板,采用邮票孔形式封装了RZ/G2L核心板。

关键字: 开发板 嵌入式LINUX 嵌入式系统

上海2022年7月6日 /美通社/ -- 近日,江森自控正式发布Metasys 12.0楼宇自控系统。自Metasys系统1990年问世以来,江森自控紧跟全球前沿技术发展趋势和楼宇功能演变,不断对Metasys系统进行优...

关键字: 楼宇自控系统 BACNET 用户界面 控制器

摘 要:为了满足人们对智能家居系统终端控制界面的个性化需求,结合MVC设计模式,提出了一种可支持用户界面定 制的方法,并给出了智能家居系统的框架。通过该软件架构,可以实现个性化用户界面的快速生成,减少界面开发的工作量。...

关键字: 智能家居 MVC 界面定制 用户界面

在本次升级中,DxO 的旗舰 RAW 照片编辑工具还提供了更优秀的稳定性和中文支持。

关键字: DXO LAB PHOTO 用户界面

据 Windowslatest 报道,在 Windows 10 预览版构建中发现的新代码表明 Windows 10 的开始菜单和操作中心可能会加入新设计,并且微软可能对 Windows 10 UI 进行重大调整。

关键字: win10 微软 用户界面

与其他Google服务随着时间的发展和变化类似,我们也在Android TV上看到了这一点。 该公司最近更改了Android TV用户界面的外观,然后更改了第三方应用程序与主屏幕交互的方式。 新的用户界面使继续使用旧系统...

关键字: androidtv google 用户界面

物联网解决方案通常包括四个基本要素: 1、传感器 2、网络连接 3、数据处理 4、用户界面 在本文中,我们将集中讨论最后一个要素:用户界面。浏览我们之前解

关键字: 传感器 数据处理 物联网 用户界面

很多客户网站服务器被入侵,被攻击,找到我们SINE安全公司寻求技术支持与帮助,有些网站被篡改,被跳转,首页内容被替换,服务器植入木马后门,服务器卡顿,服务器异常网络连接,有的客户使用的是阿里云服

关键字: Linux LINUX系统 IP PID

工业主机,也称为工业控制式主要机器,是工业控制计算机的简称。也是我们常常听别人说的工业电脑,工控电脑等。工业主机的硬件组成有哪一些?工业主机拥有计算机的基本特征,其组成是由工业主板,中央处理器,

关键字: LINUX系统 硬件 WINDOWS系统 进程

整理自网络,排版:付斌 对嵌入式系统工程师及嵌入式硬件工程师而言,2020年将是振奋人心的一年。随着物联网应用的普及,MCU市场将再次繁荣。因此,市场上对嵌入式系统工程师人才的需求也将出现新高。这些都是底层编程领域中即将...

关键字: 嵌入式 软硬件 BSP 嵌入式LINUX
关闭
关闭