已阅读5页,还剩65页未读, 继续免费阅读
(电路与系统专业论文)基于实时嵌入式系统的wap移植和应用开发.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 本文首先介绍了实时嵌入式操作系统,描述了操作系统在任务的调度,进度 管理等等方面机制,对嵌入式操作系统进行了深入的探讨;然后描述3 w a p 协议 的分层结构,并对协议的内容进行了详细的讲解:同时根据系统平台的特点设计 了中间层,从而实现了微浏览器到系统平台的移植,并且在此基础上实现了应用 程序的开发。 该应用软件的开发是建立在p h i l i p 公司提供的针对无线终端的s y s o l 2 解决 方案之上,该解决方案是以实时嵌入式操作系统为核心。以闪存作为存储介质, 以移动通信硬件为支撑实现了无线通信设备复杂的控制及良好的人机界面;开 发者借用l i n u x 开发平台,通过将目标文件通过串口下载到开发板上的方式来实 现应用程序的开发。 通过对系统资源和性能的深入分析,作者针对所要开发的功能进行了详尽的 模块设计,从而成功的在系统平台上实现了手机的无线上网的功能,并且在此基 础上实现了手机对图片铃声以及j a v a 应用程序等资源的下载。 通过系统联调和测试表明该应用程序能够在系统平台有效的,灵活的实现其 功能。 关键词 实时嵌入式操作系统w a p 协议闪存j a v a a b s t r a c t i nt h i st h e s i s ,t h ea u t h o rf i r s t l yi n t r o d u c e st h er e a l t i m ee m b e d d e d o s ( r e a l t i m eo p e r a t i n gs y s t e m ) b yi n t e r p r e t i n gs o m em e c h a n i s i n ss u c h a st a s ks c h e d u l e ,p r o c e s sm a n a g e m e n t ,w ed i s c u s so sf e a t h e r si nd e t a i i s s e c o n d l y ,w el e a r nw a ps t a c kl a y e ra r c h i t e c t u r e ,a n dp r o b ei n t op r o t o c o l s t a c k :a tl a s t ,a c c o r d i n gs y s t e mf e a t u r e sa n dr e q u i r e m e n t ,w ed e s i g n m i d d l e w a r ep o r t i n gt h ew a pc l i e n ti n t oo sp l a t f o r m ,a n dm a k ec o m m u n i c a t i o n b e t w e e nt h ew a pc li e n ta n do sp o s s i b l e t h ea p p l i c a t i o nd e v e l o p m e n ti sb a s e do nt h es y s o l 2s o l u t i o nw h i c hw a s p r o v i d e db yt h ep h i l i p t h i ss o l u t i o nu s e sr t o sa sc o r e ,f l a s ha st h e s t o r a g em e d i u m ,a n dm o b i l eh a r d w a r ea sb a s e m e n tt oi m p l e m e n tw i r e l e s s c o m m u n i c a t i o n sc o m p l e xc o n t r o la n df o r mk i n d l yu s e ri n t e r f a c e t h e d e v e l o p e rc a nw o r ko nt h el i n u xp l a t f o r m ,d o w n l o a dt h ei m a g ef i l ei n t o t h ed e v e l o p i n gb o a r db ys e r i e sp o r t ,a n df i n a l l yr e a l i z ea p p l i c a t i o n d e v e l o p m e n t 。 t r y i n gt od e e p l ya n a l y s et h es y s t e m sc h a r a c t e r i s t i c s t h ea u t h o r e x h a u s t i v e l yd e s i g nf u n c t i o nm o d u l ed e s i g ns c h e m e ,a n ds u c c e s s f u l l y p e r f o r mh a n d s e ts e v e r a l f u n c t i o ns u c ha sl o g g i n gi nn e t ,d o w n l o a d i n g p i c t u r e s ,m e l o d ya n dj a v aa p p l i c a t i o na n ds oo n b yv a l i d a t i o nt e s t i n ga n dc a r e f u lm a i n t e n a n c e ,t h ea p p l i c a t i o nc a n r u no nt h ep l a t f o r mr o b u s t l ya n de f f i c i e n t i f k e yw o r d t h er e a l t i m ee m b e d d e ds y s t e mw a ps t a c kf l a s hj a v a i i 西北工业大学硕士论文 第一章绪论 1 1 课题背景 摩托罗拉、诺基亚、爱立信和美国的软件公司p h o n e c o m ( 前u n w l r e dp l a n e t ) 于1 9 9 7 年中联合发起设立无线应用协议( w a p ) 标准。它定义了一系列将互联网 内容过滤和转化为适用移动通信的标准,使内容可以更容易地在移动终端上显示 w a p 采用一种相对简单浏览器,仅占用移动电话上很少的资源,使w a p 适用于 单薄的终端设备和早期的智能电话。w a p 赋与w a p 网关强大的功能而只需在移动电 话上增加一个微浏览器,服务和应用暂时都在服务器端进行处理。w a p 致力于将 普通的移动电话改造成为具网络功能的智能电话。正如发起人之一的p h o n e c o m 公司的代表宣称,w a p 背后的哲学是尽可能少地利用手持设备的有限资源,通过 丰富的网络功能来弥补。 w a p 体现为一种全面的和可扩展的协议,可用于: 任何具有类似智能电话的单线展示的移动电话: 任何现有或设计中的无线服务,如s m s ,c s d ,u s s d 和g p r s 。 任何移动网络标准如c d k a 、g s m 、或u m t s 。w a p 可用于全部的蜂窝标准并得到 主要的无线巨头的支持。支持多种输入终端,如手写板、键盘、触摸屏和笔。 w a p 的重要性在于为应用开发人员和营运商在不同类型的网络、数据、终端 上的服务提供了革命性的新途径。w a p 标准在设计时将应用要素与使用的传输数 据类型独立开来,使一些应用的转移( 如从s m s 、c s d 转为g p r s ) 成为可能。 w a p 汇集了当今正在飞速发展的两种网络技术,即无线数据传输技术和 i n t e r n e t 技术。无线数据市场和i n t e r n e t 业务都在快速增长,新的用户在不断增 多。i n t e r n e t 惊人的增长又极大地刺激了新兴信息业务的产生和热门信息业务的 发展。 1 2 课题来源和工作 本课题本是作者在上海迪比特有限公司6 6 6 8 型手机的开发设计过程中所工 作的部分。在开发与设计的过程中,作者参考了大量a r m 核、嵌入式系统的相关 资料,阅读了国内外嵌入式系统在无线通信中的应用,此外还认真拜读了p i l l i p 公司提供的相关资料。 西北工业大学硕士论文 该课题是依托于h l l i p 公司提供的s y s o l 2 解决方案,该解决方案是以 e - r t k 这样一个嵌入式操作系统为核心,以闪存( f l a s hm e m o r y ) 作为存储介质, 以移动通信硬件为支撑,实现了无线通信设备复杂的控制及良好的人机界面 ( 删i ) ,所以在开发与设计的过程中,作者首先对该解决方案中进程的调度,内 存的使用,以及文件系统设计等诸多方面进行了深入学习之后,深入研究了w a p 协议,u d p i p 协议以及t c p i p 协议的内容,从而提出了如何在系统平台上有效 的,成功的建立一个中间层,从而实现w a ps t a c k 到系统平台的移植,同时仔细 学习了j a v ao t a 过程的相关规范,实现了建立在w a p 协议栈之上的j a v ao t a 过程。 1 _ 3 课题意义 该研究课题从理论和实践上都有很重要的意义: 1 ) 理论意义: w a p 协议的产生有两个客观原因: 与桌面p c 接入因特网不同,无线终端接入因特网存在以下的不足:终 端c p u 能力弱;存储空间不足;功耗受到限制;存在不同的输出设备: 显示屏幕的限制。 无线数据网络由于受到功率,可用频谱以及移动性的限制,与有线网络 相比只能一个有限多限制的通信环境,其时延大,可用带宽小,连接的 稳定性小,连接存在与否难判断。 w a p 的应用很好的解决了这个问题它优化w e b 协议,例如h t t p ,以便使用 底层的低带宽和高时延无线网络,同时它还定义了其它标准所没有的新功能,像 语音数据集成a p i 和无线“p u s h ”功能,它允许应用开发者从浏览器发起一个电 话呼叫,还可以在网络事件存在时进行响应:另外w a p 规范规定了”p u s h ”机制, 使得w e b 服务器可以主动发送数据到手机应用端。w a p 协议是架构在数据链路层 之上的协议,从而使移动通信设备可以架构在不同的网络架构上,例如: g s m ,g p r s ,s m s 等等,从而实现了“实时在线”等功能,在新兴的通讯业务中, m m s ( 多媒体短信息) 就是一个典范,由于s m s ( 短信息) 带宽窄,信息量单一, 从而借助w a p 信道以及w a p “p u s h ”技术来实现的。由此可见,对w a p 协议从 理论上的研究对其应用有着重要的意义。 2 西北工业大学硕士论文 2 ) 实践意义 就嵌入式系统应而言,它应用于各个领域,从日常生活的p d a ,电视机等等 到大型的生产设备都得到广泛的应用,它是以应用为中心,软硬件可裁减的,适 用于系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系 统,正因为如此也就决定了它与p c 机的差异,就手机而言,嵌入式系统要求低 功耗,低存储器的硬件设备,和适合该嵌入式系统的操作系统等等。因此如何将 某一个功能块移植到该系统中,就有诸多因素要考虑,例如资源如何分配,中断 如何分配,模块之间如何联系等等,同时这对如何在嵌入式系统的应用开发也有 很多帮助。 1 4 小结 本章在查找搜集和阅读有关资料的基础上说明了课题的背景意义和来源介 绍了项目的研究设计与实现所涉及的相关内容对整篇论文的全貌做了简要的交 代 西北工业大学硕士论文 第二章系统概论 2 1 嵌入式操作系统概论 实时系统是指能在确定的时间内执行其功能并对外部的异步事件做出响应 的计算机系统。也就是说,实时系统是对响应时间有严格要求的。 实时系统有两种类型:软实时系统和硬实时系统。软实时系统仅要求事件响 应是实时的,并不要求限定某一任务必须在多长时间内完成:而在硬实时系统中, 不仅要求任务响应要实时,而且要求在规定的时间内完成事件的处理。实时操作 系统具有如下功能:任务管理( 多任务和基于优先级的任务调度) 、任务间同步和 通信( 信号量和邮箱等) 、存储器优化管理( 含r o m 的管理) 、实时时钟服务、中断 管理服务。实时操作系统具有如下特点:规模小,中断被屏蔽的时间很短,中断 处理时间短,任务切换很快。 实时操作系统可分为可抢占型和不可抢占型两类。对于基于优先级的系统而 言,可抢占型实时操作系统是指内核可以抢占正在运行任务的c p u 使用权并将使 用权交给进入就绪态的优先级更高的任务,是内核抢了c p u 让别的任务运行。不 可抢占型实时操作系统使用某种算法并决定让某个任务运行后,就把c p u 的控制 权完全交给了该任务,直到它主动将c p u 控制权还回来。中断由中断服务程序来 处理,可以激活一个休眠态的任务,使之进入就绪态:而这个进入就绪态的任务 还不能运行,一直要等到当前运行的任务主动交出c p u 的控制权。使用这种实时 操作系统的实时性比不使用实时操作系统的系统性能好,其实时性取决于最长任 务的执行时间。不可抢占型实时操作系统的缺点也恰恰是这一点,如果最长任务 的执行时间不能确定,系统的实时性就不能确定。可抢占型实时操作系统的实时 性好,优先级高的任务只要具备了运行的条件,或者说进入了就绪态,就可以立 即运行。也就是说,除了优先级最高的任务,其他任务在运行过程中都可能随时 被比它优先级高的任务中断,让后者运行。通过这种方式的任务调度保证了系统 的实时眭,但是,如果任务之间抢占c p u 控制权处理不好,会产生系统崩溃、死 机等严重后果。 实时操作系统优点:嵌入式实时操作系统提高了系统的可靠性;提高了开 发效率,缩短了开发周期;充分发挥了3 2 位c p u 的多任务潜力。 2 _ 2 系统硬件架构 西北工业人学硕士论文 本系统使用的硬件平台采用的是p h i l i p sp c f 5 0 8 7 c 芯片组,以b a s e b a n d m c p 0 m 6 3 5 4 ( 包括c p up c f 5 0 8 7 4 和b a s e b a n da n da u d i oi n t e r f a c ep c f 5 0 7 3 2 ) 芯片 为核心,附以射频电路、电源电路及其它外围接口电路组成,主要模块有: b a s e b a n dm c p0 m 6 3 5 4 、射频部分0 m 5 1 7 8 、存储系统( f l a s h + r a m ) 、供电和s i m 接口模块p c f 5 0 6 0 1 、l c d 、键盘、r s 2 3 2 等。 本系统所采用的处理器是a r m 7 t d m ir i s c 核,这是3 2 位r i s c 嵌入式处 理器,因为它较高的性价比而广泛应用于嵌入式系统中,该处理器可以工作在 a r m 和t h u m b 两种状态下,通过将3 2 位的a r m 指令压缩为1 6 位的t h u m b 指令从而提高了c p u 对数据的处理;同时它支持7 种处理模式:用户态,f i q , m q ,管理态,终止态,未定义和系统态。 2 _ 3 系统软件架构 图2 _ 1 给出了软件的模块结构图。在图2 - 1 的软件模块中,p i l l i p 公司提供 了g s mp r o t o c o ls t a c k 、r t k 、s e r v i c ep r o v i d e r 及t r a c e & d e b u g 模块的设计与 实现,并且提供了相应的消息与宏接口。 l c d k e y b o a r d u a r t 图2 - 1 系统软件架构 西北工业大学硕士论文 2 3 1 r t k e ( r e a lt i m e r k e r n e le m b e d d e d ) 概述 本系统使用的是r t k - e ( r e a lt i m e rk e m e le m b e d d e d ) 这样一个实时操作系 统,它将嵌入式软件的全部工作通过解藕的原则分解为容易管理的t a s k ( 任务) , 每个任务是相互独立的,通过任务调度( t a s ks c h e d u l i n g ) s e i 提供系统服务( s y s t e m s e r v i c e ) 将这些任务组合起来。 2 3 1 1 任务调度策略( t a s ks c h e d u l i n g ) : 任务是如何调度的呢? 我们知道在r t k e 系统调度是抢占式调度的,这意味着运行着的任务有可能 被优先级更高的任务所抢占。所以我们在开发一个r t k e 软件时应该首先规划出 把该软件分成多少个t a s k s 以及每个t a s k 的优先级。 系统中保持这样一个系统配置表:m a s t e r d e f , 严s y s t e mt a s k + 系统中任务的划分以及相关信息 ,指明当前t a s k 的优先级,接入点,以及所占用得堆栈大小 t a s k ( p r i o r i t y = 1 4 0 ,e n t r y _ p o i n t = r t k t a s k l l ( ) ,s t a c k _ s i z e = 1 1 2 4 ) : 指明该t a s k 所包含的进程 p r o c e s s r u n n e r : 该进程由有限状态机实现 p r o c e s s f s m :p r o c e s s _ n a m e = p r o c e s s _ d s m , i n i t i a l _ s ;t a t e = s d s m c l o s e : 该进程由函数实现 p r o c e s s - c f u n c t l 0 n :p r o c e s s n a m e = p r o c e s s d k b d , f u n c t i o n n a m e = d k b o 一3 t r e a t k e y a c t i o n0 : ) 虚拟进程表 l v i r t u a lp r o c e s s e si nt h es y s t e m | p r o c e s s v i r t u a l :p r o c e s s n a m e = p r o c e s s k b d i t : 十k e y b o a r d p r o c e s s v i r t u a l :p r o c e s s _ n a m e = p r o c e s s l i s : 半l a y e r1 ) ,动态内存表 + m e m o r ys p e c i f i c a t i o n si nt h es y s t e m + 指明内存簇的大小,以及内存池的名称 p o o l :c l u s t e rs i z e = 9 6 ,c l u s t e r n u m b e r = 1 6 ,r e s e r v e d = n o , 6 西北工业大学硕士论义 p o o ln a m e = p o o ln o nr e s e r v e d4 : p o o l :c l u s t e r s i z e = 1 8 0 ,c l u s t e r n u m b e r =2 0 r e s e r v e d = n o , p o o ln a m e = p o o ln o nr e s e r v e d5 : ) 4o b j e c td e f i n i t i o n si nt h es y s t e m 4f s e m a p h o r e s :n u m b e r = 5 5 :信号量的个数 t i m e r s :n u m b e r = 8 0 :定时器的个数 ) r t k 中断的级别 7 + r t k i n t e r r u p tl e v e l + i n t e r r u p t l e v e l _ m a s k _ a r m :m a s k _ l e v e l = i r q : ) 在编译时,将这个配置文件用特殊的解释器解释生成相应的c 文件和h 文 件,而这些文件构成了r t k 的框架,所有得任务和进程被定义在这个框架中。 我们可以看到系统把系统中的所有进程分为若干个t a s k ,每个t a s k 有固定的堆 栈运行空间大小,优先级和t a s k 接入点。 图2 - 2 系统调度机制 图2 2 就是本系统的任务调度图。t a s k 可以是一个简单的p r o c e d u r e 或者 ( 大多数) 所谓的”p r o c e s sr u n n e r ”。”p r o c e s sr u n n e r ”可能有多个功能函数和 有限状念机( f i n i t es t a t em a c h i n e s ) 。 注意:每个t a s k 只有一个m a i i b o x ( 邮箱) 用以接受事件,t a s k 里的每一 7 西北工业太学硕士论文 个进程都得依靠该m a i l b o x 进行调度。 2 3 1 2 存储管理 该系统中,所应用的存储介质是f l s h 闪存,大小是8 m b y t ex1 m b y t e ( 8 m b y t e 的r o m 和l m b y t e r a m ) : 其中8 m b y t e r o m 中的6 m b y t e 被用来存储i m a g e 文件,另外的2 m b y t e 用于文件系统和e e p r o m 。 其中l m b y t e r a m 被划分为h e a p ( 内存堆) ,数据段,s t a c k ( 堆栈) 。其 中h e a p 用于动态内存的使用,数据段用于运行全局的变量,全局指针, 以及全局的数组,s t a c k 用于运行局部变量和返回地址。 在该系统中采取了基于p o o l ( 内存池) 和c l u s t e r ( 内存簇) 的是链式动态 内存管理,其结构图如图2 - 3 : 8888 8 888888 8 88 8888 88 88 88 p o o lio f 2 4c l u s t e r sx 8 时t e s 3 23 23 2 3 2 3 2 3 2 p o o l20 ( 6c l u s t e r sx3 2b y t e s 2 5 6p o o l3o f ic l u s t e r x 2 5 6 b y t e s n o t e :p o o l sc a nb eo f a n ys i z en o t j u s t2 5 6 时t e s 图2 - 3 系统动态内存管理 动态内存被划分为若干个p o o l ( 内存池) ,在每个p o o l 中又划分为若干个 c l u s t e r ( 内存簇) ,为了便于管理,每个c l u s t e r 必须大小一致,系统将这些内存 块保存在链表中,排列顺序保持由小到大,当对内存提出申请时,系统采用了最 快适配算法从链表中找到适合请求大小的动态内存块,从链表中取走。当使用完 毕进行释放时,系统会把释放的块插入到内存链表中。系统对内存的分配采用了 最快适配算法,虽然可以减少因为寻找最佳内存所花费的时间,但是会对内存产 生大量的浪费,所以我们必须对系统各个部分所使用的动态内存块进行仔细的评 估,并在系统配置文件中对动态内存根据需求情况进行划分,并按f l j , j , n 大的顺 序排列。 2 3 1 3 进程管理 通过任务的调度系统可以实现对任务的管理,同时系统也提供了对进程的管 西北工业大学硕士论文 理。当多进程驻留在内存时,总会产生竞争的情况,为了避免竞争的发生,系统 采用了以下几种机制:消息机制,事件机制,信号量机制,队列机制。 1 ) 消息机制: 消息结构 这种机制主要为了实现模块之间的通信,它的结构如图2 4 图2 - 4 消息结构 消息由消息头和消息所带的数据组成,m e s s a g eh e a d e r 和m e s s a g eb o d y 是分开传送的。消息头由4 个元素组成,分别为消息的长度l e n g t h 、发送方t xi d 、 接收方r xi d 和消息的操作类型o pt y p e 。 消息的定义 本系统r t k - e 采用了一系列”p o r t a b l ec o d ec o n v e r s i o n ”宏来简化接口,消 息的定义就采用了这种方法。我们以消息“发送按键信息” a p p i e d p k e y i n f o i n d 为例说明: 定义消息头 m c - p c c h e a d e r ( p r o c e s se d p , p r o c e s sm m i ,a p p ie d pk e y i n f o 一 n d , m co p e r a t i o n ( p r o c e s s e d p , f c t e x tl m s ,fa p p i e d pk e y i n f oi n d ) ) 定义消息数据 m c p c c b e g i n a p i s ”f r u c ( tu p v a p p i m s g h e a d e r , t _ e d p _ a p p i k e y i n t b l n d ) m c p c cf i e l d ( u 8 ,vk e y l n f o ) m c p c c f e l d ( u 8 ,v _ t y p e o ( p r e s s ) m c p c cf i e l d ( u 8 ,v d i g i w a l u e ) m c p c c f i e l d ( u 8 一一e d i t e d s t r i n g m p a c t ) m c p c c e n d s t r u c ( t _ e d p ,a p p i k e y l n f o l n dj m c p c c e n d s t r u c ( t e d p _ a p p i k e y i n f o i n d ) 消息的发送 发送消息由宏婀一r t k - s e n d m s g t 0 一p r o c e s s 来实现,它的参数有发送方及 i n s t a n c e 、接收方及i n s t a n c e 、o p e r a t i o n t y p e 和消息头组成。例如: c _ r t k _ s e n dm s g 3 0 j r o c e s s ( p r o c e s s _ m m i + u 8v p _ s e n d e r n a u m e + 0 + u 8v ps e n d e r l n s t a n c e _ i d + p r o c e s s _ s p d , + u 8v p _ r e c e i v e r n a m e + 0 , + u 8v p _ r e c e i v e r i n s t a n c e i d + a p p i d i rr e s t r i c t i o n _ r e q ,+ t _ o p e r a t i o n t y p ev po p e r a t i o n + 9 西北工业大学硕士论文 ( i m s g h e a d e r + ) p m s g s e n d r e q ) ;+ t _ m s g h e a d e r + p pm e s s a g e + 在这个结构中,指明了消息的发送者和接收者,以及消息的类型和消息的内 容,系统会根据所指定的接受者的i d 把消息放到对应的邮箱里待决( p e n d i n g ) 。 消息的处理 消息的处理参见图2 5 图2 4 消息的处理 由图2 2 系统调度机制图可以看到每个t a s k 由多进程组成,每个进程或者 由c 函数实现或者由有限状态机来实现,所以当进程从对应的邮箱中得到消息 后,会根据对消息体中指定的处理方式进行处理方式的选择。 2 ) 事件机制: 这种机制可以使任务间不用进行数据交换而仅仅互相发送信号来实现通信。 事件机制的使用 m c r t k w a i t e v e n t ( e v e n t l i s t ) 其中e v e n t l i s t 指明了当前任务正在等待的事件列表,这个宏用于检测当前 列表中所等待的事件中哪些事件已经被触发。如果所触发的事件是正在等待的事 i o 西北工业大学硕十论文 件,则继续执行当前的t a s k ,否则调度器将抢占当前的任务而开始下一个任务。 m c r t k s e t e v e n t ( t a s k l d ,b i t n u m b e r ) 用于触发t a s k l d 所指定的任务所指定的事件( 恢复指定的t a s k i d 中1 6 位 标志中的b i t n u m b e r 位) ,从而使在满足不是挂起状态下,不处于临界状态下的 指定t a s k 能够被调度。 3 ) 信号量机制: 为了进一步提高c p u 时间的使用率,减少任务切换所花费的时间,系统采 用了信号量机制用于改变不同任务的状态,从而实现对共享资源访问时实现进程 间的互斥,信号量般由两部分组成:计数器和指向任务控制块的指针( t c b t a s kc o n t r o lb l o c k ) ,其中计数器由用户指定,而指向任务控制块的指针由全局 变量常驻在内存中,始终指向当前的任务块。 信号量的使用: 当使用m c r t k s e m c o n s u m e ( s e m a p h o r n u m b e r ) 时,如果共享资源可用 ( s e m a p h o r n u m b e r 的值为正值) ,它将对s e m a p h o r n u m b e r 的递减,并使请求任务 ( c a l l i n gt a s k ) 对资源进行占用,如果信号量保护资源不可用( s e m a p h o r n u m b e r 的值为负值) ,请求任务将被排列在队列中,状态被设置为“等候信号量( w a i t s e m a p h o r e ) ”。 当调用m c _ r t k s e m p r o d u c e ( s e m a p h o r n u m b e r ) 时,它将检测当前是否有在 该信号量( s e m a p h o r n u m b e r ) 上待决的任务( p e n d i n gt a s k ) ,如果有,并且该 待决的任务没有被挂起,优先级比当前任务优先级高,待决的任务的状态将被转 换为“就绪状态( r e a d y ) ”,将形成进程上下文的切换;如果待决的任务的状态 为“等待并且挂起( w a i t i n g & s u s p e n d ) ”,那么它的状态转换为“挂起状态 ( s u s p e n d e d ) ”。当有可能发生资源冲突的时候,应该对共享资源使用信号量 机制。 例如当我们在为w a p 模块定做显示接口函数时,为了不与现有的现实函数发 生资源上的发生冲突,我们在显示函数中加入了信号量。 v o i dh s c 3 一o o w a p d i s p l a y s t r i n g ( ) f m cr t ks e mc o n s u m e ( h s c rs e m ) : 西北工业大学硕十论文 显示函数 m c r t k s e m p r o d u c e ( h s c r _ s e m ) : ) 3 ) 队列机制 这种机制主要是为了保证当某一个进程正在运行时,不会因为它的繁忙而导 致丢失来自其它模块的消息,这种机制将收到的消息储存起来,等待在以后的时 间中处理。r t k e 提供了两种方式来实现: 带有信封的队列( q u e u e su s i n ge n v e l o p e s ) :这是一种复杂的方法,一个 目标可以排列在多个队列中。参见图2 - 5 图2 5 带有信封的队列 不带有信封的队列( q u e u e sw i t h o u te n v e l o p e s ) :这种方法简单并且不需 要过多的存储重叠,但是目标只能分配到一个队列中。参见图2 - 6 队列的使用: 图2 6 不带有信封的队列; 一 曼霉 西北t 业大学硕士论文 m c r t k i n s e r t q u e u e e n v 用来表示在带有信封的队列中插入一个元素。 m c r t k d e l e t e _ q u e u e e n v 用来表示在带有信封的队列中删除一个元素。 m c r t k i n s e r t _ q u e u e 用来表示在不带有信封的队列中插入个元素。 m c r t k d e l e t e _ q u e u e 用来表示在不带有信封的队列中删除一个元素。 2 3 1 4 定时器管理 定时系统有一些t i m e ro b j e c t s 组成,它们存在于3 个队列中。图2 7 描述 了3 个定时器队列以及定时器在3 个队列的走向。 图2 。7 定时器管理 在空队列中有4 个f r e et i m e ro b j e c t s ( 可用定时器) 未用,若有一个被启 动,则将一个可用定时器移出f r e eq u e u e ( 可用定时器队列) 链接到”r u n n i n g q u e u e ”( 启动定时器队列) 中;当某个定时器( 在r u n n i n g q u e u e 中) 定时时间 到了的时刻,则被移入到”e x p i r e dq u e u e ”( 终止定时器队列) 中,并激发相应 的处理函数,再把该定时器移回到f r e eq u e u e 中,这样就完成了一个循环。 对定时器的基本操作是开启关闭定时器,定时器触发和关闭的整个过程如 图2 - 8 所示 c o m m q n dt os t 8 r t c o m m a n d t os b dt i m e r ( o n l yi fr e q u i r e d ) 图2 8 定时器的操作 现举例说明定时器的使用: m c l u t a r t t i m e r ( m m i e d i t d i s p l a y t i m e o u t ,2 0 0 ) m c l k s t o p t i m e r ( m m i e d i t _ d i s p l a y _ t i m e o u t ) : 西北工业大学硕士论文 2 3 1 5 中断管理 r t k e 的中断是由一个”r a wi n t e r r u p th a n d l e r ”机制实现。系统在内存中维护了 一张中断向量表,这张表指定了对于不同中断的不同处理方法。参见图2 9 图2 - 9 中断的操作 当中断发生时,系统会把当前的程序堆栈寄存器( c p s r ) 存入存储程序堆 栈寄存器( s p s r ) 中,将处理器从用户态跳转到i r q 态,将程序寄存器指向对 应的异常处理,并产生t r a p ,同时将状态转向s y s 态,找出中断的原因和中 断的处理方式,处理完毕后将状态转向u s e r 态。 2 2 2 文件系统概述 文件系统作为操作系统的一部分,必须提供操作系统必要的用来创建文件、 删除文件、读文件和写文件的相应的系统调用。文件的存放通过目录完成,所以 对目录的操作就成了文件系统功能的一部分。 图2 1 0 文件系统架构 4 西北工业大学硕士论史 本系统的文件子系统的软件结构如图2 1 0 所示,它由如下部分组成: 1 ) 文件接口层:s p a 向用户提供了一个消息接口,m e a 贝i 负责目录的管理; 该层作为文件子系统的最上层,主要向文件子系统的用户提供了一 个消息接口。 2 ) 文件服务层:由o s f s 和f m 两个主要模块组成; 文件服务层作为文件子系统的核心部分,主要由o s f s 和f m 两个主要 模块组成。 o s f s 作为文件服务层的最上层的模块:f m ( 格式管理层) 层包含了 3 个子模块: f s s 和f v m 接口的f m f v m i 模块: 管理目录树的f m m e m o r y 模块: 安装v o l u m e 的m o u n t m e m o r y 模块; 3 ) v o l u m e 管理层:主要负责对v o l u m e 分配、修改、删除等管理工作 f v m ( t h ef l a s hv o l u m em a n a g e r ) 模块主要管理对f l a s h 的存取。主 要完成如下功能: 提供了f s s 与f v m 间的接口; 提供了接收从f s s 或直接从应用程序来的消息的接口; 管理包含在v o l u m e ( 3 2 0 k b y t e s ) 的文件的物理位置; 处理储存在e e p r o m 的参数: 提供读取f l a s h 的基本功能; 2 4 小结 本章首先介绍了操作系统的分类,并对本系统的操作系统从进程调度,中断 实现,以及文件系统等等几个方面进行了描述,因为以后的开发都是基于该系统 平台,所以这是非常重要的。 西北工业大学硕士论文 3 1 iw a p 模型 第三章无线应用协议( w a p ) 3 i 简介 图3 1 w a p 系统架构 图3 - i 展示t w a p 的系统架构,由图中可以看到w a p 编程模型与w 删编程模型很 类似,这样做可以给应用程序的开发人员带来许多好处,这些好处包括:编程模 型是已经熟悉的,体系结构已经被证明是十分有效的,同时可以利用已有的工具 ( 如w e b 服务器,可扩展标记语言x m l 等等) 作进一步的开发。 为了适应无线应用环境的特征,w a p 编程模型对w w w 编程模型作了优化和扩 展。无论在什么地方,w a p 技术都尽量使用或采纳已有的技术标准,并以这些标 准作为w a p 技术的开发起点。 为了能应用在规模庞大的无线手持设备上,w a p 内容类型和w a p 协议都经过 了专门的优化。w a p 通过用户代理技术把w w w 和无线领域连接起来。 w a p 代理的典型功能如下: 1 ) ( p r o t o c o lg a t e w a y ) 协议网关把来自w a p 协议栈( 包括无线会话协议 w s p ,无线事务协议w t p ,无线传输层安全w t l s 和无线数据报协议wdp ) 的请求转化成啊w 协议栈( 包括超文本传输协议h t t p 和t c p i p ) 的请求。 2 ) 内容编译码器( c o n t e n te n c o d e r sa n dd e c o d e r s ) 内容编码器把w a p 内 容转化成紧缩的编码格式,以减少在网络上传输的数据量。 这种基本构造使得移动终端用户可以浏览大量的w a p 内容和应用程序,并且 方便应用程序开发者建立运行在数量庞大的移动终端上的服务内容以及应用程 西北工业大学硕士论文 序。 3 1 2w a p 协议模型 协议模型见图3 2 图3 - 2 w a p 协议架构 y a p 体系结构为移动通信设备提供了一个层次化的、可扩展的应用开发环境。 这是通过整个协议栈的分层设计实现的。w a p 体系结构的每一层都为上一层提供 接入点,并且还可以接入其他服务和应用程序。 3 2 w a p 协议简介 3 2 1w a e 协议( w ir q i e s sh p p i i c a t i o ne n v ir o f l m e f l t ) 通过建立一个微浏览器环境,为应用开发者在各种各样的无线平台上搭建一 个高效的,实用的应用程序和服务的开发平台,它的核心部分规范包含:无线标 记语言( w m l ) 、无线标记脚本语言( y n t l s c r i p t ) 、w a e 用户代理、w a e 支持的媒 质类型。 w m l 是一种基于标记的文档语言,专门为小型、窄带设备设计的,它采用 “c a r d a n d d e c k ”的方法,将应用程序定义成由多张卡片( c a r d ) 组成的页面 ( d e c k ) 。为了w a p 能够广泛地适用于各式各样的终端设备, w m l 主要考虑的问 题是如何恰当地划分作者和浏览器实现者之间的表示能力界限。他具有广泛的特 性:支持文本和图象,支持用户输入,导航和历史记录栈,国际通用性的支持, 窄带优化,状态和内容管理 w a e 用户代理是设备中的客户端软件,为终端用户提供特定的功能( 如显示内 容) 。用户代理( 如浏览器) 被集成在w a p 体系结构中,用于解释由u r l 定向的网 络内容。w ae 定义的用户代理,主要使用两种标准内容:对无线标记语言( w f 4 l ) 西北工业大学硕士论文 进行编码和对无线标记语言脚本( w m l s c r i p t ) 进行编译。 w a e 规定和采纳了大量的便于数据相互交换的内
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025届吉林长春中考语文真题及答案
- 医药招商岗位说明书
- 济南饮食养生及食疗养生秘诀
- 北京市第一零九中学教师招聘笔试考试参考题库附答案解析
- 安全生产法规与企业管理手册
- 财务软件使用与数据管理实战指南
- 2025年城管编外人员笔试题目及参考答案
- 2026-2031年中国鲷鱼养殖行业市场发展趋势与前景展望战略研究报告
- 2025年卫生高级职称考试(中西医结合儿科学)在线题库及答案(副高)
- 2025金华磐安县面向“三支一扶”计划服务人员招聘事业单位工作人员1人笔试考试备考试题及答案解析
- (2025年)广东省食品安全管理人员知识考试题库特殊食品生产带答案
- 备考2025届中考数学中档及压轴题型模型方法技巧专题03:圆的综合训练(解析版)
- 2025年湖南郴州资兴市第二次招聘城市社区专职工作者33人考试笔试参考题库附答案解析
- 2025年党的二十届四中全会精神宣讲稿及公报解读辅导报告
- 品誉咨询绩效考核方案(3篇)
- 学前教育专业专升本2025年考点精讲测试试卷(含答案)
- 班组管理知识技能培训课件
- 2025年山西省公务员录用考试《行测》真题及答案
- 第六单元第二节化石燃料的利用说课稿-2024-2025学年九年级化学鲁教版上册
- 2025年事业单位招聘考试综合类专业知识试卷:人工智能产业政策知识篇
- 冷库维护专业知识培训课件
评论
0/150
提交评论