已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 随着嵌入式系统的发展图形用户接口已经成为嵌入式操作系统的重要组件之一。由于a s i x0 s 嵌入式操作系统本身没有相应的图形用户接口系统的支持,限制了a s i xo s 的应用,因此我们需要 在a s i x0 s 之上构建图形用户接口a s i xw i n 来实现自己的可视化嵌入式系统平台。 课题是在东南大学a s i c 工程中心的s e p 3 2 0 3 微处理器和a s i xo s 嵌入式操作系统上构建个嵌 入式图形用户接口系统。在设计中,a s i xw i n 采用了层次化的模块结构。系统的底层由a s i xo s 操 作系统、a s i xg p c 图形库与a c t i v e a r e a 模块组成:a s i xw i n 在a s i x0 s 上封装了自己的系统任务 接口,实现应用程序间的调度和通信;a s i xg p c 模块为a s i xw i n 提供了基本的绘图函数集、位图 和软件光标,以及对彩色的支持:a c t i v e a r e a 模块为a s i xw i n 提供了响应用户笔中断的实时机制。 系统的上层构建了一套完整的函数接口,为应用程序提供了一组标准窗口和控件。对于要求实时性 强、消耗资源少的应用,a s i xw i n 采用异步回调策略对原有的基于任务的消息处理机制进行了优化, 并在模拟器上实现。 论文最后对整个工作做了归纳和总结,针对实现中的问题提出了解决办法,并对将来的发展方 向进行了展望。 关键词:嵌入式系统图形用户接口 a s i xw i ns e p 3 2 0 3 嵌入式微处理器 东南大学硕士论文 a b s t r a c t w i t l lt h ed e v e l o p m e n to fe m b e d d e ds y s t e m , g r a p h i c a lu s e ri n t e r f a c eh a sb e c o m eo n eo fk e y c o m p o n e n t si ne m b e d d e do p e r a t i n gs y s t e m s b e c a u s ea s i xo s ,o n ee m b e d d e ds y s t e m ,d o e sn o ts u p p o r t v i s u a lf u n c t i o no r i g i n a u y ,t h eg e n e r a la c c e p t a b i l i t ya n dp r a c t i c a la p p l i c a t i o no f a s i xo si sr e s t r a i n e d a sa r e s u l t w em u s td e v e l o po u ro w ng r a p h i c a lu s e ri n t e r f a c es u b s y s t e mo rm o d u l ec a l l e da s i xw i n f o ra s i x o s o p e r a t i n gs y s t e mt of u l l yp r o v i d eg r a p h i cd i s p l a yf u n c t i o n t h ea i mo ft h er e s e a r c hi st od e s i g n e m b e d d e dg r a p h i c a lu s e ri n t e r f a c es u b s y s t e mf o ra s i xo s e m b e d d e do p e r a t i n g s y s t e mb a s e do ns e p 3 2 0 3m i c r o p r o c e s s o rw h i c h i s d e v e l o p e db y n a t i o n a l e n g i n e e r i n gr e s e a r c hc e n t r ef o ra s i cs y s t e m s o u t h e a s tu n i v e r s i t y a s i xw a d o p t sl a y e r - c o m p o n e n t m i x e ds y s t e ma r c h i t e c t u r e 1 1 1 el o w e rs u p p o r t i n gl a y e ri n c l u d e sa s i xo sk e r n e l a s i xg p cm o d u l ea n d a c t i v e a r e am o d u l e a s i xw r na b s t r a c t so n es y s t e ml a y e rf r o ma s i xo st op r o v i d ed i s p a t c ha n d c o m m u n i c a t i o nf u n c t i o n sf o rt a s k s a s i xg p cs u p p o r t sc o m p l e xd r a w i n g ,b i t m a p ,s o f tc u l l e ra n d m u l t i e o l o u rf u n c t i o n sf o ru p p e rl a y e ra p p l i c a t i o n s a c t i v e a r e am o d u l ep r o v i d e sam e c h a n i s mt or e a l - t i m e r e s p o n dp e ni n t e r r u p t s t h eu p p e rl a y e ro fa s i xw r n h a sb e e nd e s i g n e da sas e to fv a r i o u sw i n d o w sa n d c o n t r o l st oo f f e rs t a n d a r di n t e r f a c e sf o rd e v e l o p m e n t s a sf o rs y s t e m sn e e d i n gr e a lt i m er e s p o n s ea n d m i n i m u ms o u r c ec o n s u n l p t i o n , t h ep e r f o r m a n c eo fo r i g i n a lt a s k - b a s e dm e s s a g ed r i v es t r a l e g yu s e db y a s i xw r ni sn o tg o o de n o u g h c o n s e q u e n t l y , a l la s y n c h r o n o u s - c a l l b a c km e t h o dh a sb e e ni m p l e m e n t e df o r t h eo p t i m i z a t i o no fa s i xw i nm e s s a g em e c h a n i s mt or e a c ht h u s e sg o a l s n o wa s i xw i nh a sw o r k e d s t a b l yo nt h es i m u l a t o r a tt h ee n d ,t h er e s e a r c ha l s om a k e sas u m m a r i z a t i o no fe n t i r ew o r k s ,s o l u t i o n so fc a r r e n tp r o b l e m s a n dw o r k sj nt h ef u t u r e k e yw o r d s :e m b e d d e ds y s t e m g r a p h i c a lu s e ri n t e r f a c e a s i xw i n s e p 3 2 0 3m i c r o p r o c e s s o r i l 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过 的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示了谢意。 研究生签名:j 叁型篁日期:二丞,甲 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复印 件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和纸质 论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布( 包括 刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 研究生签名:j 名血导师签名: 日期:l ,刁幺,尹 i 第一章绪论 1 1 论文的背景 第一章绪论 随着计算机硬件的发展,人和机器之间有效交互的需求就不可避免。应运而生的人机交互技术 ( h u m a nm a c h i n ei n t e r f a c e ) 对软件系统越来越重要,已成为现代软件研究的重要课题之一。而 图形用户界面( g r a p h i c a lu s e ri n t e r f a c e ) 作为人机交互技术的重要内容,以其丰富的图形图像信 息、直观的表达方式与用户交互,已经被越来越多的领域所采用。图形用户界面是一种以图形化为 基础的用户界面,使用统一的图形操作方式。如可移动的视窗、选项与鼠标,作为用户与操作系统 之间的中介。g i j i 最重要的优势在于使用户摆脱了在命令行提示符下与操作系统进行交互的方式, 用户可以仅仅通过鼠标点击来快速地熟悉程序的操作,而且由于图标、对话框等的引入,使得操作 直观形象。 从上世纪六十年代起,人们开始对g u i 技术进行研究,取得了重大突破,在x e r o x 的p a r c 项目 上得到了巨大的发展。七十年代开始,g u i 技术在桌面p c 系统上达到大量应用,成功推出了著名的 m a c i n t o s h 、xw i n d o w 和m i c r o s o f tw i n d o w s 等系统,g u i 技术逐渐成熟。 相对于桌面系统,人机交互技术在嵌入式系统中的研究还处于初级阶段。嵌入式系统和终端产 品是大众化的,对系统简洁、美观、方便好用、人性化设计等的要求更高。随着嵌入式系统技术的 发展,嵌入式软、硬件系统均取得了较大的进步。嵌入式硬件平台、操作系统、开发工具、以及应 用程序开发组件的很多方面都取得了较大的突破,嵌入式系统g u i 系统也得到了发展,涌现出了一 大批嵌入式g u i 系统或者组件,例如:m i c r o s o f t 公司的w i n c e 、s u n 公司的p e r s o n a lj a v a 和 v x w o r k s 集成的u g l 、z a f 等。但是面对嵌入式系统的不同领域的应用,对嵌入式g u i 系统的要求也 就不同,因此开发具有轻型、占用资源少、高性能、高可靠性和可配置性的嵌入式g i 系统越来越 重要。 要提供完整的解决方案,嵌入式图形用户界面系统必须满足下列要求: ( j ) 可扩展性和可配置性:几乎每种嵌入式设计方案都具有各自不同的特点,所以嵌入式图形 用户界面需要足够灵活以适应各种硬件设备,在不同的嵌入式环境中,应该仅仅包括那些必要的部 分。采用面向对象的设计方法和可扩展的体系结构可以获得较好的可扩展性。 ( 2 ) 资源使用的高效性:桌面系统的图形用户界面面向的是运行在高端处理器上、拥有巨大内 存空间资源的系统而一个嵌入式图形用户界面必须适应内存小、处理器能力差别大的系统环境。 ( 3 ) 可定制性:由于嵌入式设备一般都是服务于某种专门的目的。它们要求客户可定制的用户 界面,而不是那种静态的、预定义的、无法满足特殊图形用户界面需求的观感。图形用户界面的外 观和事件处理的方式等都应该能通过直观、简单的方法进行定制。 ( 4 ) 国际化:嵌入式设备必须使用相同的基本设计以适应不同国家用户的需要。关键在于图形 用户界面要有灵活的组件。通过支持应用的本地化,可对用户界面上的文本以及各种数据和数字格 式进行翻译。 ( 5 ) 简单性:对嵌入式应用开发来说,它具有严格的时间限制,即要求尽可能短的面市时间。 使用面向对象技术,设计清晰直观的类派生关系,更加容易让人理解。提供可视化的图形应用程序 开发工具是一种广受用户欢迎的方式 ( 6 ) 针对多线程环境的优化:一些没有删的嵌入式系统,不可能支持隔离的内存空间和完整 的进程模型。它们往往只提供一个多线程的环境。这就需要优化代码,在缺少完全的进程支持和不 同的内存空间的条件下提供各种方法支持多任务的运行。 下面是几种目前常见的几种嵌入式g u i 系统: ( 1 ) m i n i g u i 东南大学硕士学位论文 m i n i g u i 是l i n u x 控制台上运行的,基于s v g a l i b 和l i n u x t h r e a d 6 库的多窗口图形用户界 面支持系统。m i n i o u i 采用了类w i n 3 2 的a p i 接口,实现了简化的类w i n d o w s9 8 风格的图形用 户界面。m i n i g u l 也是一个窗口系统,它的主要组成元素是窗口,在这个基础上m i n i g u i 中的窗口 可以基本分四类,分别为主窗口、对话框、控件和主窗口中的窗片。m i n i g u l 中的主窗口和w i n d o w s 应用程序的主窗口概念类似,每个主窗口对应于一个单独的线程,通过函数调用可建立主窗口以及 对应的线程。每个线程有一个消息队列,主窗口从这一消息队列中获取消息并由窗口过程( 回调函 数) 进行处理。m i n i g u l 的目标是保持现有小巧的特点,在l i n u x 控制台上提供一个小的窗口系 统支持。同时m i n i g u i 又将尽力与微软的班w i n d o w sa p i 保持兼容,僦i n i g u l 可以在未来以l i n u x 为 基础的应用平台上提供一个简单可行的g u l 支持系统,让m i n i g u i 可以应用在w i n d o w sc e 可以应 用的任何场合。 ( 2 ) o p e n o u l 0 p e n g u i 基于一个用汇编实现的x 8 6 图形内核,提供了一个高层的c c + + 图形窗口接口。它和 m i n i g u i - - 样,也是使用l g p l 许可证。o p e n o u i 提供了二维绘图原语,消息驱动的a p i 、b m p 文件格式 支持。o p e n g u l 功能强大,使用方便。用户甚至可以实现b o r l a n db g i 风格的应用程序,或者是o t 风 格的窗口o p e n g u l 支持鼠标和键盘的事件。在l i n u x 上基于f r a m e b u f f e r 3 或者s v g a l i b 4 实现绘图。 l i n u x 下0 p e n o u l 也支持m e s a 3 d 。颜色模型方面,o p e n g u i 已经支持8 、1 6 、3 2 位模型。 由于o p e n g u i 基于汇编实现的内核并利用蛐峨指令进行了优化,0 p e n g u i 运行速度非常快。它支持 3 2 位的机器,能够栅s - d o s ,q n x 5 和l i n u x 下运行主要用来在这些系统中开发图形应用程序和游 戏。o p e n g u i 非常稳定,但可移植性因为其内核使用汇编语言实现会受到影响。 ( 3 ) 0 t e m b e d d e d q t 是t r o l l t e c h 公司的一个产品,是一个多平台的c h 图形用户界面应用程序框架。它提供给应 用程序开发者建立艺术级的图形用户界面所需的所有功能。q t 是完全面向对象的,很容易扩展,并 且允许真正地组件编程。自从1 9 9 6 年早些时候,q t 进入商业领域,它已经成为全世界范围内数千 种成功的应用程序的基础。0 t 也是流行的l i n u x 桌面环境k d e 的基础,k d e 是所有主要的l i n u x 发行版 的一个标准组件。 o t e m b e d d e d 是t r o l l t e c h 公司的另一个产品,虽然走o p e ns o u r c e 开发路线,采用g p l 授权, 但商业用的要付费。q t e m b e d d e d 是q t 的嵌入式l i n u x 端口,是完整的自包含c + + g u i 和基于l i n u x 的嵌 入式平台开发工具。大范围的o t e m b e d d e da p i 可用于多种开发项目。q t e m b e d d e d 可以开发市场上 多种类型的产品和设备,从消费电器( 移动电话、联网板和s e tt o p 盒) 到工业控制设备( 如医学成 像设备、移动信息系统等) 。这套环境提供的a p i 和o r w i n d o w s 与q t x l l 相同,但不需要使用l j x l l , 取而代之的提供从硬件接口、绘图程序库和完整的g u i i 具。q t e m b e d d e d 对存储内存的需求约在 8 0 0 k b 到3 m b ( i n t e l 下x 8 6 ) 。其另一个特点就是跨平台,用q ta p i 开发出来的应用程序,可以在不 同的操作系统和视窗系统上执行, 1 2 论文的主要工作 在上述背景下,本课题详细地描述了基于嵌入式微处理器s e p 3 2 0 3 的图形用户接r l a s i xw i n 底 层支持平台的设计以及上层各个模块的实现,并通过大量的实例来说明a s i xw i n 的工作流程。a s i x 0 s 是本文实现的软件平台,它是东南大学国家专用集成电路系统工程技术与研究中心( a s i c ) 自主 研发的嵌入式实时操作系统,它的内核遵循i t r o n ( i n d u s t r i a lt r o n ) 标准“1 。本论文验证硬件平 台是s e p 3 2 0 3 微处理器,它是 s i c 中心自主研发的基于a r m 7 t d m i 内核的1 6 3 2 位r i s c 型系列微处理 器,主要面向中低端手持设备和其它通用嵌入式设备。 论文的主要工作分为四个部分: 1 分析了a s i xw i n 的系统架构 2 第一章绪论 2 a s i xw i n 底层支持平台的设计和实现 3 a s i xw i n 上层系统任务管理模块、消息模块和窗口与控件的设计与实现 4 采用异步回调的策略来优化a s i xw i n 基于任务的消息处理机制 i 3 论文的结构 本课题的研究重点是嵌入式系统图形用户接口a s i xw i n 的实现以及优化。本章论述了课题的简 要情况。并介绍了课题的实现背景。第二章简单地介绍了s e p 3 2 0 3 微处理器、a s i x0 s 操作系统和 a s i xw i n 的系统架构;第三章介绍了a s i xw i n 底层支持平台的设计,包括a s i x0 s 任务的调度和 通信机制,a s i xg p c 图形库和a c t i v e a r e a 模块的设计。第四章重点讨论了a s i xw i n 各个功能模块 的设计思想和实现方法;第五章分析了a s i xw i n 在设计时采用基于任务的消息处理机制的性能,随 后针对轻型、占资源少、效率高的应用,a s i x w i n 采用了异步回调策略对原有消息处理机制的优化: 最后一章分析了本课题的不足之处并提出相应的改进意见,总结出未来嵌入式图形用户界面的发展 趋势,拟定将来研究的重点。 东南大学硕士学位论文 第二章a s i xw i n 实现平台概述 2 1s e p 3 2 0 3 微处理器介绍 s e p 3 2 0 3 微处理器“1 是由东南大学国家专用集成电路系统工程技术研究中心设计的1 6 3 2 位r i s c 微控制器,面向中低端手持设备和其它通用嵌入式设备。s e p 3 2 0 3 微处理器使用2 5 岫标准c 1 1 0 s 的工 艺设计,使用a p 珏1 7 t d m i 处理器内核“”具有低功耗、低成本的优点。s e p 3 2 0 3 微处理器还提供了完 整的通用外设接口,可以满足系统用户的各种需求。如图2 1 所示。s e p 3 2 0 3 微处理器中集成各种 功能包括: a 础7 t d m i ,最高支持7 5 姗z 2 0 k b y t e ( 暂定) 片上内嵌e s r a m 单色4 级灰度1 6 级灰度4 k 彩色6 4 k 彩色l c d 控制器 多媒体加速模块,支持m p 3 解码 a c 9 7 音频接口 u s b 客户端控制器 删c 卡控制器 中断控制器,3 2 个中断源其中1 6 个外部中断 i 通道r t c ,支持日历功能 4 通道t i m e r ,其中2 通道可配置成p 删 2 通道u a r t ,其中l 通道支持红外 i 通道s p i ,用于触摸屏 a c 9 7 音频接口 2 通道片上p l l ,1 个用于系统时钟。1 个用于u s b 控制器 4 种功耗模式,i d l e 、s l o 霄、n o 跚a l 、s l e e p 支持从n o r 凡a s h 或者n a n df l a s h 启动 图2 1s e p 3 2 0 3 微处理器系统架构框图 2 2a s i xo s 操作系统简介 a s i x o s 是a s i c t 程中心自主的嵌入式实对操作系统平台。该平台主要包括内核( a s i x k e r n e l ) ; 4 苎三兰堂垒壅堡堡墨竺塑竺! ! ! 望堑垄 以时钟服务任务( t i m e rt a s k ) 和系统服务任务( s y st a s k ) 为代表的系统服务;基本图形库( a s i x g p c ) ;图形用户界面( g s i xw i n ) :o s 模拟器( a s i xs i m u l a t o r ) “1 ,如图2 2 所示: n e t w o r ka s i x w i na s i x g p c i s y s t e mt a s k t i m e rt a s k a s i xk i e r l r l c i d r i v e r s a s i x o s 图2 2a s i x0 8 系统模块层次划分 l ,驱动模块 键盘、触摸屏、l c d 、f l a s h 、硎,定时器,实时钟,串口,i c 卡读卡器等等 2 ) 内核模块 内核是0 s 的核心,它提供在所有设备中都出现的基本操作系统功能。a s i xo sk e r n e l 分为两 大块,任务管理和非任务管理。任务管理包括任务调度、任务问通信与同步机制两个功能模块。而 非任务管理包括中断管理、时钟管理和软定时器管理三个功能模块( 如图2 ,3 ) 。这里为了突出时钟 中断的重要性,而将时钟管理从中断管理中分开。 l系统调用函数接口 lilll i 任务调度任务间通信与同步时钟管理中断管理软定时器管理 图2 3a s i xo sk e r n e l 的框架结构 a s i x0 s 的内核( a s i xk e r n e l ) 目前是在e p s o n 基于u l t r o n 3 0 标准的r o s 3 3 内核上改造而来 的;& s i xk e r n e l 是一个基于优先级的抢占式多任务实时操作系统内核,目前该内核支持8 级优先 级,提供符合u l t r o n 3 0 标准的系统调用,支持信号量( s e m a p h o r e ) ,事件标志( e v e n tf l a g ) ,邮 箱( m a i lb o x ) ,消息缓冲区( m e s s a g eb u f f e r ) 等任务间通信和同步机制。大多数系统调用支持 超时机制。目前a s i xk e r n e l 已经用标准c 进行重写,对必须要使用汇编语言对处理器硬件进行操 作的部分通过定义硬件抽象层屏蔽具体硬件信息。通过这部分的改造。a s i xk e r n e l 已经可以方便 地移植到其他硬件平台 2 3a s i xw i n 概述 一个图形用户界面系统通常由三个基本层次组成,它们是显示模型、窗口模型和用户模型。用 户模型包含了显示和交互的主要特征,因此图形用户界面这一术语有时也仅指用户模型。 东南大学硕士学位论文 桌面管理系统 用户模型 窗口模型 显示模型 操作系统 硬件平台 图2 4 图形用户界面系统的层次结构 图2 4 中的最底层是计算机系统硬件平台。硬件平台之上是计算机的操作系统。操作系统之上 是图形用户界面的显示模型,决定了图形在屏幕上的基本显示方式。不同的图形用户界面系统所采 用的显示模型各不相同:例如大多数在u n i x 之上运行的图形用户界面系统都采用了x 窗口作显示模 型;惦w i n d o w s 采用m i c r o s o f t 公司自己设计的图形设备接口( g d i ) 作显示模型。显示模型之上 是图形用户界面系统的窗口模型。窗口模型确定窗口如何在屏幕上显示、如何改变大小、如何移动 以及窗口的层次关系等。它通常包括两个部分:一是编程工具:二是对如何移动、输出和读取屏幕 显示信息的说明。窗口模型之上是用户模型,包括两个部分:一是构造用户界面的工具:二是对于 如何在屏幕上组织各种图形对象以及这些对象之间如何交互的说明。图形用户界面系统的应用程序 接口由其显示模型、窗口模型和用户模型的应用程序接口共同组成。 a s i xw i n 是 s i x0 s 操作系统的自主g o i ,通过在a s i xo sk e r n e l 上构建a s i xg p c 基本图形 库、a c t i v e a r e a 和笔中断模块,实现类似于微软w i n 3 2a p i 的编程接口。a s i xw i n 在a s i x0 s 操作 系统的基础上封装了自己拥有的系统任务接口。从应用程序角度看,用户创建应用程序是在a s i xw i n 的平台上创建a s i xw i n 的任务,与操作系统本身无关。a s i xw i n 任务间、各窗口之间、各控件之 间的通信和交互都依赖于a s i xo s 操作系统提供的任务间通信机制。a s i xw i n 在a s i x0 s 的邮箱和 事件标志模块之上封装了自己的消息体系结构,通过把来自a s i xo s 的消息转化成a s i xw i n 定义的 格式再分发至目标任务,来实现a s i xw i n 体系结构中的消息传递。a s i xg f c 模块为a s i xw i n 提供 了基本的绘图函数集、位图和软件光标,以及对彩色和多任务的支持。设计中我们采用了硬件抽象 层的概念:图形函数( g r a p h i ca p i ) 不直接操纵硬件,而是通过调用硬件抽象层提供的一组基本函 数来做具体的图形绘制工作。硬件抽象层的函数将按照设备相关的格式把将要显示的内容首先填写 到系统内存中的片缓冲区( v r 埘) , 然后硬件抽象层的函数将根据传入的参数决定是否将数据复 制到l c d 控制器中。a c t i v e a r e a 模块为a s i xw i n 提供了与应用程序用户交互的一种实时手段:每 个窗口或控件都定义了相应的活动区,只要触摸屏的该区域被点击,系统就会响应笔中断,产生并 发送a s i xw i n 消息,使得窗口和控件作相应的调整。 a s i xw i n 是个层次化的系统。系统由初始化模块、s h e l l 、消息处理模块、控件管理工具、 标准控件和高级控件组成。初始化模块主要负责系统全局量的初始化以及s h e l l 任务和其它任务的 创建。s h e l l 任务负责提供系统主菜单,创建应用程序任务并管理任务的注册与注销。消息处理模 块接收系统消息并处理与转换。消息处理模块还负责控件消息的处理。控件管理工具负责控件的创 建和修改。标准控件包括窗口、按钮、菜单、单选框、复选框、下拉框、进度条、滚动条和软键盘 等等。标准控件模块负责具体的控件动作及与此控件相关的消息发送预处理。高级控件时构件在标 准控件的基础之上的。一个高级控件由若干个标准控件组合而成,这些标准控件之间有着某些特定 的关系。a s i xw i n 封装这些特定的关系并对外提供与其高级控件相关的消息,以此与用户的应用程 序发生联系和交换数据。a s i xw i n 系统结构如下图2 5 所示: 6 墨三里堂垒壅丝堡墨竺塑竺! ! ! ! ! 堡堕 图2 5a s i x i n 系统层次架构 7 东南大学硕士学位论文 第三章a s i xw i n 底层支持平台的实现 从整个系统角度看,a s i xw i n 在& s i xo s 系统中不是孤立的功能模块,而是依赖于系统相关模 块的支持。也就是说,& s i xw i n 是构建在a s i xo x 系统之上的子系统。下图3 1 是整个系统的结构: a s i x w i n 系统 上j r八丁上 i z a c t i v ea r e a 模块 fa s i x g p c 模块 丁亡 i 笔中断 u il c d 驱动程序 、7 事件标志邮箱 j 亡v丁亡j 亡 la s i x o s 操作系统平台 图3 1 & s i xw i n 底层支持平台的结构 图3 1 中左侧,a s i xw i n 所有窗口和控件图像的绘制都是由a s i xg p c 模块提供的基本绘图函 数集来完成的,而最终在l c d 显示屏上显示的图像则是通过l c d 驱动程序在内存中为l c d 创建f r a m e b u f f e r ,并控制处理器的l c d c 模块来实现的。图中右侧,a s i x0 s 操作系统本身为a s i xw i n 提供 事件标志和邮箱等任务间通信机制,以实现应用程序间的交互和响应用户点击触摸显示屏对a s i x w i n 界面的操作。触摸点击的笔中断的实现又依赖于a c t i v e a r e a 模块的设计。a c t i v e a r e a 模块为 s i xw i n 提供了与应用程序用户交互的一种实时手段:每个窗口或控件都定义了相应的活动区,只 要触摸屏的该区域被点击,系统就会响应笔中断,产生并发送a s i xw i n 消息,使得窗口和控件作相 应的调整。所以说,a s i xw i n 的实现依赖于底层平台的实现。 3 1a s i xo s 对a s i xw i n 在系统调用上的支持 图形用户接口a s i xw i n 在a s i xo s 操作系统的基础上封装了自己拥有的系统任务接口。从应用 程序角度看,用户创建应用程序是在a s i xw i n 的平台上创建& s i xw i n 的任务,与操作系统本身无 关。而实际上所有由& s i xw i n 创建的& s i xw i n 任务最终都将由a s i x0 s 操作系统内核来创建, 并挂到由内核控制的任务队列中。因此,& s i xw i n 的系统任务都是由a s i xo sk e r n e l 来实现任务 的创建、删除、调度等功能。 s i x w i n 任务间、各窗口之间、各控件之间的通信和交互也依赖于a s i x 0 s 操作系统提供的任务间通信机制。& s i xw i n 在a s i x0 s 的邮箱和事件标志模块之上封装了自己的 消息体系结构,通过把来自a s i x0 s 的消息转化成a s i xw i n 定义的格式再分发至目标任务,来实现 a s i xw i n 体系结构中的消息传递。 3 1 1 任务的状态和调度 & s i xo s 定义的任务( t a s k ) ,就是拥有自己堆栈的函数。系统维护多个就绪任务队列,其中优 先级最高的任务获得运行每个任务都有一个i d ,任务i d 从1 到2 5 5 ,也就是最多能有2 5 5 个任务 8 第三章a $ 1 xw i n 底层支持平台的实现 可以同时运行。任务的优先级规定从l 到9 ,数值越小,优先级越高。同优先级任务按先后就绪的 顺序被排列在该优先级对应的就绪队列中。可以通过系统调用来改变任务在就绪队列中的位置或者 它的优先级。 a s i xo s 中,任务有六种状态:r u n 、r e a d y 、w a i t 、w a i t _ s u s p e n d 、s u s p e n d 、d o r e n t 。任务 刚被创建时,处于d o r m a n t 状态;等到任务被启动,变为r e a d y 状态时,才有机会等待运行。任务 状态的转换如图3 2 所示: 图3 2a s i xo s 内核任务状态转换图 ( i ) r e a d y 状态 如果任务处于可被调度运行状态,则此前的状态必为r e a d y 状态,如果被调度运行,则状态会 变为r u n ,如果被其它的任务挂起。则状态变为s u s p e n d ,如果被强制终止,则状态变为d o p j i a n t 。 ( 2 ) r u n 状态 当前的任务如果正在被运行,m 其状态为r u n 。如果任务运行时调用优先级抢占函数,此时状 态将变为r e a d y 。如果任务运行过程中等待某个条件,则状态变为w a i t 。如果执行完退出,则任务 的状态为d o r 姒盯。 ( 3 ) w a i t 状态 当任务等待一个事件,或者自己执行一个系统调用,会将当前任务置为w a i t 状态,当等待事件 完成后状态为r e a d y ,如果被其他程序s u s p e n d 则状态为张i t _ s u s p e n d ,任务被终止状态为d o r m a n t 。 ( 4 ) w a i ts u s p e n d 状态 当任务处于w a i t 态的时如果被其它任务s u s p e n d ,该任务的状态就变为w a i t _ s u s p e n d 状态, 如果此时的任务的w a i t 态解除,则任务状态变为s u s p e n d ,相应地,任务的s u s p e n d 态解除,状态 将变为w a i t ,如果任务被强行终止,状态为d o r m a n t 。 ( 5 ) s u s p e n d 状态 如果当前任务被其它任务挂起,状态将变为s u s p e n d 。如果其它任务恢复它,其状态将变为 r e a d y ,如果任务被强行终止,其状态将变为d o p 3 l 【a n t 。 a s i xo s 调度相对简单,系统中维护了多个就绪任务队列、一个延迟任务队列、多个等待队列。 1 就绪任务队列 a s i xo s 中任务的优先级有9 个,从1 到9 。系统定义了一个全局数组,共有9 个单元,分别代 表对应的优先级。每个优先级都维护着一个就绪队列。a s i xo s 的调度策略就是,从最高优先级对 应的就绪队列开始找起,如果该队列不为空,则取它的头部的任务作为下一个将要运行的任务。如 9 东南大学硕士学位论文 果队列为空,则寻找低一级优先级的队列,如此循环操作,因此,a s i xo s 的调度机制有如下特点: ( 1 ) 它是静态优先级调度,但提供了系统调动态修改任务优先级。没有运行时间的概念,低优 先级的任务只有当高优先级的任务主动放弃c p u ,它才可能运行, ( 2 ) 同等优先级的任务不能够轮转,但提供了系统调用来将当前任务放到队列的末尾。 2 等待队列 a s i xo s 定义等待的状态按照原因可以分为:t t 胃- s 聊( 信号量) 、t t w _ f l g ( 事件) 、t i wm b x ( 邮 箱) 、t 伸- s m b f ( 消息) 、t 伸肝l ( 共享内存) 几种。举个例子,以t t 霄- s 删来说,它表示该任务 是因为对某信号量的操作而引起的。每个信号量都维护自己的等待队列。a s i x 依靠s u s t s k ( ) 挂 起其他进程。 3 延迟任务队列 & s i xo s 中维护了一个延迟任务队列,用来维护那些为了等待某操作而主动或者被动将自己挂 起的任务。等到时间一过,系统就会将该任务转移到就绪队列中去。t s l p _ t s k ( i n tt i m e o u t ) 延迟 一个任务的执行。 3 1 2 任务间通信与同步机制 a s i x o s 提供了提供了常用的任务间通信机制,有信号量( s e m a p h o r e ) 、事件标识( e v e n tf l a g ) , 邮箱( m a i l b o x ) ,消息缓冲区( m e s s a g eb u f f e r ) 、内存( m e m o r yp 0 0 1 ) 。a s i xw i n 中用到的通信机 制主要有邮箱( 妇i1 b o x ) 和事件标志( e v e n tf l a g ) 。 1 邮箱( 1 i a i l b o x ) : 邮箱的数据结构定义如下所示: t y p e d e fs t r u c tt _ m s g s t r u c tt - s 驴p n x t :消息队列 v b m s g c o n t 1 0 ; 消息体 ) t _ _ m s g ; 事件标识有两个相关系统调用及它们的流程: ( 1 ) s n d _ m s g : 首先,如果该邮箱没有其他任务在等待消息,则将该消息加入到邮箱的消息链表的尾部,然 后返回。如果有任务在等待消息,贝取其中的第一个,将消息传给它。并且清除该任务的 t r s 一毗i 态,及t t w _ 船x 标志。然后从g _ s t i m e o v e r t s k 队列中删除,添加到就绪任务队列; 调用系统调度程序i n t _ d i s p a t c h 。 ( 2 ) t r c vm s g : 首先,如果邮箱中有消息,则将消息链表中第一条取走;然后返回:否则,如果等待时间为 0 ,则立即返回;否则,将该任务加入到该m a i l b o x 的等待队列中,并标为t 仰_ m b x ;如果等 待时间不为无限制,则将该任务加入g _ s t i m e o v e r t s k 队列中去。调用系统调度程序 i n td is p a t c h 。 2 事件标识( e v e n tf l a g ) : 事件标识的数据结构定义如下所示: t y p e d e fs t r u c t l o 第三章a s i xw i n 底层支持平台的实现 7 f 等待任务 已恢复的标志位 正等待的标志位 选择等待的模式 事件标识有三个相关系统调用及它们的流程: ( 1 ) t w a i i g 首先,查看该f l a g 中是否有任务在等待,若有,则返回错误,因为只能有一个任务在等待。如 果等待队列为空,则判断判断入口参数的等铸模式。如果等待模式为0 r ,则检查u h f l g p t n ,只要有 一位已经满足,则返回,这时如果设置了t w fc l r ,则把该位清0 。如果等待模式为a n d ,则检查 u h f g p t r l ,只有所有位都满足,才返回,这时如果设置了t w f _ c l r ,则把该位清0 ; 如果没有满足条件,接下来判断用户设置的等待时间:如果等待时间为0 ,则返回。否则,将该 任务加入到该f l a g 的等待队列中,并标为1 7 w _ f l g 。如果等待时间不为无线制,则将该任务加入等 待队列中去,然后进行任务调度。 ( 2 ) s e t _ f i g 首先,将新的标志位或到原来的u h f l g p t n 上去;如果没有等待的任务,则返回;否则,检查是 否符合该任务的等待条件( o r a ) ,如果不符合,则返回 若符合条件,则清除该任务的t t s _ w a i ( 等待事件) 态,及t i _ f l g 标志。将已有的标志赋给任务的p f l g p t n ;如果设置了t w f _ _ c l r ,则将 u h f l g p t n 清0 :将该任务从等待队列中删除,添加到就绪任务队列;然后进行任务调度。 ( 3 ) c l r _ f l g 强制置位,只是赋值,不检查是否有等待的任务。 3 2a s i xg p c 模块的设计 a s i xg p c 模块为a s i x1 r i n 提供了基本的绘图函数集、位图和软件光标,以及对彩色和多任务的 支持。设计中a s i xg p c 采用了硬件抽象层的概念:图形函数( g r a p h i ca p i ) 不直接操纵硬件,而 是通过调用硬件抽象层提供的一组基本函数来作具体的图形绘制工作。硬件抽象层的函数将按照设 备相关的格式把将要显示的内容首先填写到系统内存中的一片缓冲区( v r a ) 4 ) ,然后硬件抽象层的 函数将根据传入的参数决定是否将数据复制到l c d 控制器中。如果调用该函数的应用任务当前拥有 l c d ( 前台任务) ,则将数据送往l c d 控制器
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年膜分离制氮设备投资申请报告
- 2023年高品质研磨碳酸钙浆料投资申请报告
- 2024年混凝土搅拌机项目资金申请报告代可行性研究报告
- 第七章 环境规划与管理的政策、法规、制度、标准和管理体系课件
- 大病救治自查报告
- 生物安全自查报告
- 2024年商铺转租协议范本
- 单位资金周转借款协议范本2024
- 2024年度综合经济服务协议模板
- 2024年个人借款协议范本协议
- 饲料行业会计科目表B
- 河北省保定市药品零售药店企业药房名单目录
- 广西基本医疗保险门诊特殊慢性病申报表
- 分包单位资格报审表-填写模板
- 城市经济学习题与答案
- 马工程《马克思主义发展史》课后习题答案
- 《培养良好的卫生习惯》主题班会(30张)课件
- 医学学员沟通和接诊能力面试评分表
- 创业指导师培训计划
- 幼儿园中班数学《有趣的图形》课件
- 四年级上册数学课件-4.6 整数的四则运算(运算定律)▏沪教版 (共15张PPT)
评论
0/150
提交评论