基于MiniGUI的多进程图形用户界面的研究

时间:2012-05-18来源:网络

2图形用户界面的开发重点

2.1 图形用户界面的窗口管理

MiniGUI提供了丰富的图形构件,如窗口、对话框、控件等,能够实现各种应用功能。MiniGUI本身是基于事件驱动的图形用户界系统,所谓事件是指当用户进行窗口操作时,如移动鼠标、单击鼠标、进行键盘输入的功能,这些动作会触发一个相应的“事件”,并由支持系统收集,以特定方式翻译为消息。应用程序一般包含自己的消息队列,以接受系统消息并建立循环,这样的循环称为消息循环。消息一般由代表消息类型的数和附加参数构成。

多窗口系统在屏幕上要同时显示多个应用程序窗口,程序窗口之间会有相互重叠关系。所以GUI系统运行后首先要创建一个根窗口,此窗口在系统启动时由启动脚本运行,是所有其他窗口的依附窗口。其他子窗口由用户在根窗口内点击相应图标产生,并且在子窗口内可以继续派生出自己的下一级子窗口,每个子窗口拥有一个窗口ID号,以标示与上级窗口的派生关系,据此便可以追溯到根窗口,而不至于产生窗口管理的混乱。窗口之间的可以为同级或者上下级派生关系。相互间的逻辑结构如图2所示:

12.gif

2.2 多任务优先级分配

由于嵌入式设备在硬件资源上的局限性,GUI系统对新的任务请求进行运行优先级的分配和管理,以避免低运行级任务造成系统资源的浪费。GUI系统优先运行级别较高的任务,对新产生的任务按照预定方式分配相应的运行级别,并与当前运行的任务级别进行比较,如果新任务是最高运行级别的任务,则挂起其他任务直到新任务处理结束;如果是相同运行级别的任务则把新任务加入到运行队列的队尾,由内核分配CPU时间片和内存资源,与其他的任务一起进行多任务的并发处理;如果新任务运行级别最低则将被放入到系统等待队列中,直到其他任务处理完成再处理新任务。判断流程如图3示:

10.gif
图3运行级别判断流程图

3嵌入式开发环境构建

完整的嵌入式开发环境由嵌入式目标板和宿主机构成,两者通过网线、计算机串口和JTAG连接。用户程序在宿主机平台上进行开发,交叉编译过的程序烧写到开发板中的Flash芯片中。

3.1宿主机

宿主机安装Redhat9.0操作系统、MiniGUI开发环境和开发工具集。工具集包括交叉编译器gcc、调试器gdb、C函数库glibc和二进制工具集binutils。

3.2 目标板

1)引导程序(Boot Loader)

是系统复位后执行的一段代码,首先完成系统硬件的初始化,包括时钟设置、存储区影射等,然后跳转到操作系统内核的入口,将系统控制权交给操作系统。 Boot Loader独立于操作系统而高度依赖系统硬件,必须自行设计。本文采用vivi作为系统的引导程序。其启动分为两个阶段:第一阶段代码采用汇编语言编写,主要进行与CPU以及存储设备密切相关的工作,并进行初始化;第二阶段采用C语言编写,来实现一般的流程及对板级的一些驱动支持。

2)Linux内核

一般的嵌入式操作系统如uClinux、uC/OS-II通常运行在没有MMU的CPU上,因此在进程编程时具有较大的困难度,所以选择具有完整 Unix特性的Linux作为操作系统。开发板采用打过补丁的Linux-2.4.18-rmk7的内核,内核和补丁可以从ARM的官方网站上下载。在配置内核时去掉无关的功能以减少内核大小,如SCSI、IrDA、手柄等。

3)根文件系统

嵌入式根文件系统(root filesystem)是嵌入式Linux系统的核心部分 ,包含系统使用的软件和库,以及所有用来为用户提供支持架构和用户使用的应用软件,并作为存储区读写结果的区域。

1 2 3

关键词: 面的 研究 用户 图形 MiniGUI 进程 基于

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版