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函数库。
使用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正供给了一个这样的渠道。