- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于 ulTRON 操作系统的嵌入式 GUI 设计
关键词:uITRON 操作系统,嵌入式应用,图形用户界面,窗口管理,接口
随着嵌入式系统技术的不断发展,各类嵌入式应用对人机交互界面的要求也越来越高,这就使得对嵌
入式图形用户界面的需求越来越迫切。与一般系统上的图形用户界面相比,嵌入式系统图形用户界面
要求轻型、占用资源少、高性能、高可靠性、可配置等特点。
本设计是在东南大学国家专用集成电路系统工程技术研究中心自主研发的,并在遵循 uITRON 3.0
标准的 RTOS-ASIX OS 基础上设计出一套适合于手持设备、仪器仪表等应用的图形用户界面一一
ASIX Window 。该图形用户界面采用面向对象的设计思想,基于消息循环和事件驱动机制,构建了比
较完整的窗口系统,为用户提供了类 Win32 API 的用户编程接口。考虑到一般嵌入式应用的屏幕较
小,以及嵌入式系统处理器与存储器容量的限制,ASIX Window 在设计上放弃了窗口剪切等复杂特
性,大大降低了系统的复杂性,减少了对系统资源的占用。由于采用基于控件的设计概念,ASIX
Window 非常适合裁减,可以根据用户的需求方便地增加或删减控件,增加了系统的可裁减性。该图
形用户界面已成功应用于 PDA,电子词典,税控收款机等多款产品设计中。
1 与操作系统内核的接口
ASIX Window 的整体架构是基于消息分发,消息循环以及消息处理之上的。整个ASIX OS 平台的结
构如图 1 所示。图 1 中,最底层的是系统的消息源,包括中断(键盘、触摸屏等)和定时器,一般将它
们统称为中断源。中断发生后,进入中断处理程序,该中断处理程序维护其对应的缓冲区后(如果它
需要缓冲区),设置事件发生(通过调用内核的事件标志系统调用)。因为系统任务是阻塞在这个事件标
志上的,而且系统任务的优先级最高,系统任务将被内核调度运行,系统任务根据所发生事件的类型,
来进行相应的处理。比如说,如果是笔中断事件,中断处理程序将笔的坐标信息存放在相应的缓冲区
中,并设置相应的事件标志,系统任务将笔坐标的数据转换为相应活动区域(Active Area)的消息,并
由系统任务将这个消息发送到当前需要该中断事件的任务中。LCD 显示,键盘和笔中断一定是由前
台任务(拥有屏幕的任务)接管的,其他外围设备所对应的中断源则由占用该资源的任务接管。
每个任务都有一个自己的信箱(Mail B0x),在每个信箱上都维护着一条消息队列,所有发往该任务的
消息都连接在这个队列中。任务代码应该通过消息循环不断地从该队列中取消息并处理,如果消息队
列为空,则该任务阻塞,由 ASIX OS 内核选择下一个就绪的高优先级任务运行。
系统任务是内核的扩展,提供系统基本的服务功能和接口。它接管系统所有的中断资源并将相应的中
断事件翻译成为相应的系统消息,并将该消息分发到对应的应用程序任务;系统任务同时维护系统中
所有任务的信息,负责确定前台任务(拥有显示屏幕和用户输入焦点的任务,前台任务不一定是 CPU
正在运行的任务)以及前台任务的切换。系统任务阻塞在底层中断的事件标志上,系统任务拥有最高
的优先级。
在系统任务之上是服务任务。服务任务负责提供系统的其他扩展服务。服务任务没有屏幕显示(类似
于 Linux 中的守护进程),服务任务阻塞在自己的消息队列
上。服务任务拥有第二高的优先级。
应用程序任务是用户使用的各个应用。应用任务阻塞在自己的消息队列上,所有的应用程序一般都应
该拥有屏幕显示,所有的应用程序在同一优先级上。
2 窗口管理
ASlX Windows 是基于消息驱动的图形用户接口。从 ASIXWindows 的角度来看,应用程序是由一组
窗口和控件组成的,程序的功能是通过窗口的操作来实现的。控件是在 ASIX Windows 中定制的具有
特定功能的独立模块,例如:按钮、菜单、下拉框、软键盘等。在 ASIX Windows 中,每一个控件在
数据结构上都被描述为一个窗口(也就是说,在数据结构上,窗口和控件是一样的),不同的是,控件
是作为某个窗口的子窗口。在数据结构上将窗口与控件统一,使得整个系统的结构更简单,对窗口的
操作与对控件的操作可以统一到一起,这使得系统的编程接口可以统一到窗口的操作函数上。在 ASIX
Windows 中所有的窗口操作,不管是窗口或是控件,都使用这些统一的函数。系统通过下面这个统
一的数据结构来对所有的控件进行管理。
typedef struct asix_window
{ struct asix window *prey} //指向前一个兄
文档评论(0)