靳晓园 马颖劲
北京航天自动控制研究所,北京 100854
一种基于MiniGUI的多任务嵌入式软件设计
靳晓园 马颖劲
北京航天自动控制研究所,北京 100854

分析图形界面支持系统MiniGUI的消息循环机制、介绍了MiniGUI分层设计的体系结构,设计了一种基于MiniGUI的多任务多窗口嵌入式软件。该软件采用消息队列和信号量处理机制以及多窗口共用一个消息循环的设计思想,加强了基于MiniGUI的嵌入式软件的应用性,对于嵌入式软件图形开发有很强的借鉴意义。
MiniGUI ;多任务; 嵌入式软件
目前,嵌入式VxWorks操作系统已经广泛应用于航天型号中的各个领域。其传统的图形工具WindML由于绘制界面只是“点画线”的方式,绘制过程繁琐、实现功能单一,已越来越不能满足VxWorks图形应用的需要。在图形界面资源如此受限的嵌入式环境下,如何实现高效、人机交互灵活的界面应用成为嵌入式环境开发中一个重点关注的问题。
MiniGUI是一个面向嵌入式系统的轻量级图形用户界面支持系统,其优点如下:
1)提供了完备的多窗口机制,实现了类win32的消息传递机制;
2)不同于WindML字符集局限性,能够支持多字符集和多字体;
3)可以支持常见的图像文件导入Vxworks操作系统,如BMP,GIF,JPEG等;
4)支持windows的资源文件,如位图、图标、光标等。
本文以MiniGUI为参考,运行平台为Vxworks操作系统,在此基础上开发多任务的嵌入式应用,实现控制台界面的实时显示和刷新,并对实现后的软件结构进行分析与研究。
从整体结构上看,MiniGUI是分层设计的。在最底层,GAL(图形抽象层)和IAL(输入抽象层)提供底层图形接口以及鼠标和键盘的驱动,而Pthread(POSIX thread)是用于提供内核级线程支持的C函数库。……