(微电子学与固体电子学专业论文)基于mb86h20b的数字电视相框软件的设计与实现.pdf_第1页
(微电子学与固体电子学专业论文)基于mb86h20b的数字电视相框软件的设计与实现.pdf_第2页
(微电子学与固体电子学专业论文)基于mb86h20b的数字电视相框软件的设计与实现.pdf_第3页
(微电子学与固体电子学专业论文)基于mb86h20b的数字电视相框软件的设计与实现.pdf_第4页
(微电子学与固体电子学专业论文)基于mb86h20b的数字电视相框软件的设计与实现.pdf_第5页
已阅读5页,还剩53页未读, 继续免费阅读

(微电子学与固体电子学专业论文)基于mb86h20b的数字电视相框软件的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 摘要 数字电视是指从演播室到发射、传输、接收的所有环节都是使用数字电视信 号的电视传播类型。数码相框则是采用液晶屏来展示数字照片的新型相框。两者 在基本构成上有相似之处,促使我们对其结合进行了研究与实现,最终开发了数 字电视相框。 整个系统中,软件起到至关重要的作用。论文的研究任务主要包含以下几个 方面: 1 ) u c o s i i 嵌入式实时操作系统中任务管理、任务之间的通讯与同步和内 存管理的研究与应用。 2 ) 嵌入式系统中输入技术和输出技术的研究与实现。本系统中,建立了对 所有硬件输入的统一输入接口。输出则主要采用了嵌入式g u i 技术。 3 ) 数字电视前端扫描技术和后端解码技术的研究与实现。前端扫描主要包 含手动扫描技术和自动扫描技术。后端解码主要包括p s i s i 信息和音视 频流的解析。 4 ) j p e g 图像格式的研究和j p e g 解码技术的研究与实现。主要侧重于如 何在o s d 显示中实现j p e g 解码。 5 ) 嵌入式f a t 文件系统的研究与实现。创造性的在m b 8 6 h 2 0 b 平台中添 加了u s b 的接口模块,并实现了u s b 主机协议栈与f a t 3 2 文件系统, 从而提供了一套完整的文件系统解决方案。 在整个系统的实现过程中,遇到了一些问题。对这些问题的研究,催生了两 项新技术,移动电视自适应技术和节能模型技术。移动电视自适应技术针对数字 电视相框在移动过程中信号不稳定的问题,在软件系统中进行改进。节能模型技 术则针对数字电视相框这一类的对功耗要求比较严格的嵌入式系统,进行了节能 行为上的抽象,从而大大简化节能所用的操作。 关键字数字电视;数码相框;j p e g ;嵌入式文件系统;移动电视自适应技术; a b s t r a c t i ; i ni n i ! ! 曼! ! 曼! ! ! ! ! ! 曼曼 a b s t r a c t d t v ( d i g i t a lt e l e v i s i o nv i d e o ) i sat y p eo ft vw h i c hi sl a u n c h e df r o mt h e s t u d i o ,t r a n s m i f f e d ,r e c e i v e db yu s i n gd i g i t a lt e l e v i s i o ns i g n a l s d i g i t a lf r a m ei s an e wt y p eo ff r a m eu s i n gl c dt od i s p l a yt h ed i g i t a lp h o t o s d i g i t a lf r a m ei s s i m i l a rt ot h ed i g i t a lt vi n c o m p o s i t i o n ,s ow et h i n kw h e t h e rw ec o u l d c o m b i n e dd i g i t a lf r a m ew i t ht h ed i g i t a lt v a n do u rr e s e a r c hc r e a t ean e w c r e a t u r e ,d i g i t a lt e l e v i s i o nf r a m e i nt h es y s t e m ,s o f t w a r ep l a y sav e r yi m p o r t a n tr o l e t h er e s e a r c hw o r ko f t h i sp a p e ri n c l u d e : 1 ) r e s e a r c ha n du s et h et a s km a n a g e m e n t ,i n t e r t a s kc o m m u n i c a t i o na n d s y n c h r o n i z a t i o n ,a n dm e m o r ym a n a g e m e n ti nu c o s - i ie m b e d e dr e a l t i m e o p e r a t i n gs y s t e m 2 ) r e s e a r c ha n du s et h ei n p u ta n do u t p u tt e c h n o l o g i e si ne m b e d e ds y s t e m i nt h es y s t e m ,w eb u i l dau n i f i e di n t e r f a c ef o ra l lo ft h eh a r d w a r ei n p u ta n d u s et h ee m b e d e dg u it e c h n o l o g ya so u rm a j o ro u t p u t 3 ) r e s e a r c ha n di m p l e m e n td t v f r o n t e n ds c a n n i n ga n db a c k e n dd e c o d i n g t e c h n o l o g i e s f r o n t e n ds c a n n i n g i n c l u d em a n u a ls c a n n i n ga n da u t o s c a n n i n g b a c k e n dd e c o d i n g i n c l u d et h ed e c o d i n go fp s i s i a n d v i d e o a u d i os t r e a m 4 1r e s e a r c hj p e gi m a g ef o r m a t r e s e a r c ha ni m p l e m e n tt h ej p e g d e c o d i n g f o c u so nh o wt od i s p l a yj p e gi m a g eo no s dl a y e c 5 ) r e s e a r c ha n di m p l e m e n tt h ee m b e d e df a tf i l e s y s t e m a d dt h eu s b i n t e r f a c em o d u l eo nt h em b 8 6 h 2 0 bp l a t f o r mc r e a t i v e l y , a n di m p l e m e n tt h e u s bh o s tp r o t o c o ls t a c ka n df a t 3 2f i l es y s t e m s op r o v i d eac o m p l e t e d s o l u t i o no ff i l e s y s t e m i nt h ei m p l e m e n t a t i o no ft h es y s t e m ,e n c o u n t e ral o to fp r o b l e m s i nt h e r e s e a r c ho ft h e s ep r o b l e m s ,c r e a t et w on e wt e c h n o l o g i e s ,m o b i l et va d a p t i v e t e c h n o l o g ya n de n e r g ys a v i n gm o d u l e m o b i l et va d a p t i v et e c h n o l o g y ,i n a l l u s i o nt ot h ep r o b l e mo fs i g n a l si n s t a b i l i t yw h e nd i g i t a lv i d e of r a m ei n m o v i n g ,i m p r o v et h es o f t w a r es y s t e m e n e r g ys a v i n gm o d u l e ,i na l l u s i o nt ot h e e m b e d e d s y s t e mr e q u e s t i n gl o wp o w e rd e s i g n ,s u c ha sd i g i t a lv i d e of r a m ea n d m o b i l ep h o n e ,a b s t r a c tt h ee n e r g ys a v i n gb e h a v i o r ,s os i m p l i f yt h eo p e r a t i o no f p o w e rs a v i n g k e y w o r dd t v ;d i g i t a lf r a m e ;j p e g ;e m b e d e df i l es y s t e m ;m o b i l et v a d a p t i v et e c h n o l o g y ; 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在 论文中作了明确的说明并表示了谢意。 虢啦吼中 关于论文使用授权的说明 本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其他复制手段保存论文。 ( 保密的论文在解密后应遵守此规定) 签名: 导师签名:二阻日期:二圣牡 第1 章绪论 1 1 课题背景 1 1 1m p e g 标准介绍 第1 章绪论 m p e g 是活动图像专家组( m o v i n gp i c t u r ee x p e r t sg r o u p ) 的缩写,于19 8 8 年成立【1 】。目前m p e g 已颁布了三个活动图像及声音编码的正式国际标准,分 别称为m p e g 1 、m p e g 2 和m p e g 一4 ,而m p e g 7 和m p e g 一2 1 都在研究中。 m p e g 2 制定于1 9 9 4 年,设计目标是高级工业标准的图象质量以及更高的 传输率。m p e g 2 所能提供的传输率在3 10 m b i t s s e c 间,其在n t s c 制式下的 分辨率可达7 2 0 x 4 8 6 。m p e g 2 的音频编码可提供左右中及两个环绕声道,以及 一个加重低音声道,和多达7 个伴音声道( d v d 可有8 种语言配音的原因) 。由 于m p e g 2 在设计时的巧妙处理,使得大多数m p e g 2 解码器也可播放m p e g 一1 格式的数据,如v c d 。 同时,由于m p e g 一2 的出色性能表现,已能适用于h d t v ( h i g h d e f i n i t i o n t v ) ,使得原打算为h d t v 设计的m p e g 3 ,还没出世就被抛弃了。( m p e g 一3 要求传输速率在2 0 m b i t s s e v - 4 0 m b i t s s e c 间,但这将使画面有轻度扭曲) 。除了 作为d v d 的指定标准外,m p e g 一2 还可用于为广播,有线电视网,电缆网络以 及卫星直播( d i r e c tb r o a d c a s ts a t e l l i t e ) 提供广播级的数字视频。 m p e g 一2 的另一特点是,其可提供一个较广的范围改变压缩比,以适应不同 画面质量,存储容量,以及带宽的要求。 对于最终用户来说,由于现存电视机分辨率限制,m p e g 2 所带来的 高清晰度画面质量( 如d v d 画面) 在电视上效果并不明显,到是其音频特性 ( 如加重低音,多伴音声道等) 更引人注目。 1 1 2 数字视频广播的兴起 d v b ,数字视频广播d i g i t a lv i d e ob r o a d c a s t i n g 的缩写,是由d v b 项目维 护的一系列国际承认的数字电视公开标准。d v b 项目是一个由3 0 0 多个成员组 成的工业组织,它是由欧洲电信标准化组织e u r o p e a nt e l e c o m m u n i c a t i o n s s t a n d a r d si n s t i t u t e ( e t s i ) ,欧洲电子标准化组织e u r o p e a nc o m m i t t e ef o r e l e c t r o t e c h n i c a ls t a n d a r d i z a t i o n ( c e n e l e c ) 和欧洲广播联盟e u r o p e a n 1 北京工业大学工学硕士学位论文 曼曼! ! ! 曼! 曼曼! ! 曼! 曼! ! 曼曼! ! ! 曼! 曼曼曼! ! 苎曼曼! ! ! ! ! ! ! ! ! ! ! 皇i i i ! ! ! 皂! ! 曼! ! ! 曼! 曼苎! ! 苎! 曼! 曼! 皇寰! 曼 b r o a d c a s t i n gu n i o n ( e b u ) 联合组成的联合专家组j o i n tt e c h n i c a lc o m m i t t e e ( j t c ) 发起的弘j 。 1 9 9 3 年,欧洲成立了国际数字视频广播组织( d v b 组织) 【4 】。d v b 组织决 定新的技术必须是建立在m p e g 一2 压缩算法上的数字技术,必须是以市场为导 向的数字技术。d v b 的宗旨是要设计一个通用的数字电视系统,在此系统内的 各种传输方式之间的转换有最简单的方式,尽可能的增加通用性。d v b 标准提 供了一套完整的、适用于不同媒介的数字电视系统规范。d v b 数字广播传输系 统利用了包括卫星、有线、地面、s m a t v 、m n d s d 在内的所有通用电视广播 传输媒体。它们分别对应的d v b 标准:d v b s 、d v b c 、d v b t 、d v b s m a t v 、 d v b m s 和d v b m c 。 本系统中采用的是d v b t 传输技术【3 】( d v b t 数字地面广播系统标准) 。此 系统的标准是1 9 9 8 年通过的,这是最复杂的d v b 传输系统。采用正交频分复 用( c o f d m ) 调制方式,8 m h z 带宽内能传送4 套电视节目,而且传输质量高。 采用m p e g 一2 数字视频、音频压缩编码技术。地面数字发发射的传输容量,在 理论上大至与有线电视系统相当,本地区覆盖好。此系统有利于数字与模拟电视 共存,在与现行模拟电视混合传输方面显示出优势。d v b t 标准中主要规范的 是发送端的系统结构和信号处理方式,对接收端则是开放的,各厂商可以开发各 自的d v b t 接收设备,只要该设备能够正确接收和处理发射信号,并满足d v b t 中所规定的性能指标。 2 0 0 2 年1 0 月,中国内地第一批d v b t 数字电视在上海投入运营,目前全 国已有上海、北京、成都、长沙、广州、南京、武汉、南昌、合肥、杭州、青岛、 无锡等地开通了移动数字电视。在这样的大环境下,研究d v b t 数字电视具有 很大的现实意义。 1 1 3 数字相片技术 在上世纪末本实际初,数码数字相片有了迅速的发展,普及型数码相机的分 辨率由2 0 0 万象素增长到现在的7 0 0 - 8 0 0 万象素,价格也由3 0 0 美元左右下降 到了现在的1 2 0 美元左右。 传统的便携和单反3 5 c m 相机已基本被数码相机替代退出市场。消费者拍摄 一冲洗胶卷一扩印照片的消费习惯已基本放弃。取而代之的是:数码相机的大量 使用,用各种存储器( 电脑硬盘、半导体存储器及可刻录光盘) 保存照片成为大 家习惯的做法,即使重印照片,其来源也大多来自数码相机。 因此,以各种电子显示器件如c r t l c d d l p 等,用各种平台如 p c d v d d v b 等,去做数字照片的回放和浏览,成为上游厂商和消费者共同 的方向。作为一种以数字照片的保存、回放和浏览为核心功能的产品,数码相框 2 第1 章绪论 自然迎合了消费者的这一需求。 1 2 嵌入式软件系统的研究 嵌入式软件具有独特的实用性。嵌入式软件是为嵌入式系统服务的,这就要 求它与外部硬件和设备联系紧密。嵌入式系统以应用为中心,嵌入式软件是应用 系统,根据应用需求定向开发,面向产业、面向市场,需要特定的行业经验。每 种嵌入式软件都有自己独特的应用环境和实用价值【n 。 嵌入式软件应有灵活的适用性。嵌入式软件通常可以认为是一种模块化软件, 它应该能非常方便灵活的运用到各种嵌入式系统中,而不能破坏或更改原有的系 统特性和功能。首先它要小巧,不能占用大量资源;其次要使用灵活,减小对操 作系统的依赖性,尽量优化配置,升级更换灵活方便。 随着半导体技术、通讯技术和计算机软件技术的不断进步,嵌入式软件系 统发展呈现出了很多新的趋势。 ( 1 ) 处理器的性能由8 位处理向3 2 位过渡,由单核向多核过渡,向网络化 功能发展,存储器容量越来越大。嵌入式系统与模拟电路或其他功能电路组成的 s o c ( s y s t e mo nc h i p ,片上系统) 或s i p ( s y s t e mi np a c k a g e ,系统级封装) 在手 机、机顶盒等功能复杂的产品上的应用也越来越多。嵌入式系统中的硬件资源越 来越丰富,使得嵌入式系统越来越复杂,同时其上软件系统也越来越复杂【z 训。 ( 2 ) 嵌入式操作系统的应用已成为了一种趋势,同时嵌入式操作系统呈多元 化,以手机领域为例,w i n d o w sm o b i l e ,s y m b i a n ,a n d r o i d ( 以l i n u x 为核心) 已 成为智能手机领域里的三大主流。 ( 3 ) 国际上自由软件运动的顺利发展,g p l 概念正对嵌入式软件产业深远影 响。嵌入式l i n u x 多种原型的提出,和g n u 软件开发工具软件的实用化进展, 使得嵌入式软件得到了一个很好的发展机遇口引。 1 3 课题的来源与研究基础 北京工业大学嵌入式系统重点实验室在近三年的时间里一直致力于欧洲数 字电视标准系列芯片的研发,先后流片了d v b c 、d v b t 解调芯片,并与日本 富士通公司合作开发了基于自主知识产权的d v b c 解调芯片的数字电视机顶 盒,积累了丰富的数字电视开发和调试经验。这些工作为基于d v b t 知识产权 芯片的数字电视相框提供了技术基础和知识储备。 此次合作开发,由深圳金诗技术有限公司提供液晶屏和l c d 控制芯片方案, 实验室提供成熟的m b 8 6 h 2 0 b 平台和d v b t 解调芯片,并负责整个软件系统的设 3 北京工业大学工学硕士学位论文 计,联合开发了数字电视相框,成品至今仍作为实验室对外展示的一个成果。 软件系统的开发在这个项目中起到了核心作用。软件系统衔接起了各硬件资 源,形成一个完整的系统。同时通过软件控制,弥补硬件的一些不足,达到了系 统性能的最大优化。同时软件系统的开发和硬件特性紧密相关,两者相辅相成。 在整个硬件系统中包含了上1 0 种不同功能的芯片,使它们能够协同工作, 并发挥出最大的性能成为了软件系统需要解决的最大问题。为了解决这一问题, 引入嵌入式实时操作系统uc o s - i i 作为整个软件系统的基础,负责控制所有任 务的运行,是软件系统的核心控制单元。嵌入式实时操作系统的原理与性能分析 是本课题的研究内容之一,这是后续操作系统选型中的重要参考。 在操作系统之下,所有对硬件的操作都被封装成标准的驱动,并向上层提供 统一的接口。其中移动数字电视驱动的设计是其中最重要的一个部分,为了最大 限度的提升移动数字电视的性能,充分研究了其特性,针对这些特性,设计了专 门的软件结构与之匹配。 在操作系统之上,所有的功能模块封装到几个独立运行的线程中,其中用户 接口( g u i ) 进程是其中的核心。系统的线程模型是其中的研究重点,如何将系 统的所有任务分配到几个独立运行的线程中去,如何实现共享资源的互斥,如何 达到系统的稳定性和性能的结合,如何达到实现和性能的平衡,都是研究过程中 将要解决的问题。 对数字电视相框研究问题的升华,就能提炼出嵌入式软件系统设计中普遍问 题的研究思路和解决方法。对其他嵌入式软件系统的研究具有很大的借鉴意义。 1 。4 论文组织结构 本文主要阐述了基于m b 8 6 h 2 0 b 的数字电视相框软件的设计与实现中的研 究成果。在整篇论文中,体现了嵌入式软件系统完整开发流程。从嵌入式操作系 统的选型开始,到各模块的编写,最后到系统的集成和测试。对嵌入式软件系统 开发中遇到的一些问题,提出了一些研究方法。对其他嵌入式软件系统的开发具 有一定的借鉴意义。 除绪论外,各章节安排如下: 第2 章、第3 章涉及软件系统开发的准备阶段。 第2 章主要介绍了u c o s i i 嵌入式实时操作系统,介绍了与项目后期开发 相关的各内核模块的原理和应用。 第3 章主要是对软件系统做出的需求分析,并做出了总体设计。需求分析 从分析系统中硬件资源和软件基础开始,进而对软件系统作出了详细的需求分 析,为软件系统的开发作出了铺垫。接下来是软件系统的总体设计,以软件模块 化模型和多线程模型展示了软件系统的总体结构,然后对各模块进行了功能分 第1 章绪论 曼! ! 篡i i i i 曼! ! ! ! 曼 析。 第4 章到第7 章主要涉及软件系统的具体实现阶段。 第4 章主要介绍了输入模块和人机工程界面模块的设计。其中人机工程界 面的设计主要采用了嵌入式g u i 技术。 第5 章是数字与模拟电视驱动的实现。数字电视驱动包含前端与后端驱动 的设计两部分,重点阐述了关系驱动性能重要指标,以及围绕性能提升所进行的 设计与实现。模拟电视驱动部分主要围绕如何将模拟电视功能融合到数字电视平 台这一问题展开。 第6 章是j p e g 模块解码原理和实现。这章中详细介绍了j p e g 格式的压 缩原理,j p e g 解码的实现和在o s d 层上显示。 第7 章是f a t 3 2 文件系统的设计与实现。这一章主要介绍了如何在系统上 添加u s b 硬件模块,接着实现u s b 主机协议栈,最后成功实现f a t 3 2 文件系 统的全过程。 第8 章是对软件系统实现过程的总结。主要总结了软件系统的质量控制, 开发流程,特别总结了创新设计。 最后一章为结论,总结本项目的创新成果,并指明了改进的方向。并对研究 成果的应用前景加以评价。 5 第2 章u c o s i i 操作系统内核介绍 第2 章uc o s i i 内核介绍 2 1uc o s i i 操作系统介绍及其特性 uc o s 1 l 是一种基于优先级的可抢先的硬实时内核。自从9 2 年发布以来, 在世界各地都获得了广泛的应用,它是一种专门为嵌入式设备设计的内核,目前已 经被移植到4 0 多种不同结构的c p u 上,运行在从8 位到6 4 位的各种系统之上。 尤其值得一提的是,该系统自从2 5 1 版本之后,就通过了美国f a a 认证,可以运行 在诸如航天器等对安全要求极为苛刻的系统之上。鉴于uc ,o s i l 可以免费获得 代码,对于嵌入式r t o s 而言,选择uc o s 无疑是最经济的选择。同时它也有很 多优秀的特性。 ( 1 ) 可移植性( p o t a b l e )绝大部分uc o s i t 的源码是用移植性很强的 a n s ic 写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的 部分已经压到最低限度,使得uc ,o s i i 便于移植到其他微处理器上。如同u c o s 一样,uc o s i i 可以移植到许许多多微处理器上。条件是,只要该微处 理器有堆栈指针,由c p u 内部寄存器入栈、出栈指令。另外,使用的c 编译器 必须支持内嵌汇编( i n l i n ea s s e m b l y ) 或者该c 语言可扩展、可连接汇编模块, 使得关中断、开中断能在c 语言程序中实现。uc o s i i 可以在绝大多数8 位、 1 6 位、3 2 位以至6 4 位微处理器、微控制器、数字信号处理器( d s p ) 上运行。 从移植了的uc o s 升级到uc ,o s i i ,全部工作一个小时左右就可完成。因为 弘c o s i i 和uc o s 是向下兼容的,应用程序从pc o s 升级到uc ,o s i i 几乎 不需要改动或根本不需要改动。移植的范例可以从互联网上找到,网址是 v v 、n 3 n u c o s i t 。c o m 。 ( 2 ) 可固化( r o m a b l e ) uc o s i i 是为嵌入式应用而设计的,这就意味着, 只要用户具备固化手段( c 编译、连接、下载和固化) ,pc ,o s i i 可以嵌入到 用户产品中成为产品的一部分。 ( 3 ) 可裁剪( s c a l a b l e ) 可以只使用uc ,o s i i 中应用程序需要的那些系统 服务。也就是说某产品可以只使用很少几个uc o s i i 调用,而另一个产品则使 用了几乎所有uc o s i i 的功能。这样可以减少产品中的l ic o s i i 所需的存储 空间( r a m 和r o m ) ,这种可裁剪性是靠条件编译实现的。只要在用户的应用 程序中( 用# d e f i n ec o n s t a n t s 语句) 定义哪些uc o s i i 中的功能是应用程序需 要的就可以了。程序和数据两部分的存储用量已被最大程度的压低了。 3 北京工业大学丁学硕士学位论文 ( 4 ) 占先式( p r e e m p t i v e ) i lc o s i i 完全是占先式的实时内核。这意味 着uc o s i i 总是运行就绪条件下优先级最高的任务。大多数商业内核也是占先 式的,uc o s i i 在性能上和它们类似。 ( 5 ) 多任务 uc ,o s i i 可以管理6 4 个任务,然而,目前这一版本保留8 个 给系统。应用程序最多可以有5 6 个任务。赋予每个任务的优先级必须是不同的, 这意味着i lc o s i i 不支持时间片轮转调度法( r o u n d r o b i ns c h e d u l i n g ) 。该 调度法适用于调度优先级平等的任务。 ( 6 ) 可确定性全部uc o s i i 的函数调用与服务的执行时间具有其可确定 性。也就是说,全部uc ,o s i i 的函数调用与服务的执行时间是可知的。进而言 之,uc o s 系统服务的执行时间不依赖于应用程序任务的多少。 ( 7 ) 任务栈每个任务有自己单独的栈,uc o s i i 允许每个任务有不同的 栈空间。以便压低应用程序对r a m 的需求。使用uc o s i i 的栈空间校验函数, 可以确定每个任务到底需要多少栈空间。 ( 8 ) 系统服务 uc ,o s i i 提供很多系统服务,例如邮箱、消息队列、信号 量、块大小固定的内存的申请与释放、时间相关函数等。 ( 9 ) 中断管理 中断可以使正在执行的任务暂时挂起。如果优先级更高的任 务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套 层数可达2 5 5 层。 2 2uc o s i i 内核结构 uc o s i i 是一款专门针对系统配置比较低的嵌入式开发所设计的操作系 统,但提供了充足的功能接e l 1 1 1 。uc o s i i 包含了任务( 线程) 管理、任务间 通讯与同步、时间管理、内存管理、底层驱动等程序接口,整体结构如图2 1 所 示。 图2 1i lc o s i i 内核结构图 f i g u r e2 - 1t h ea c h i t c t u r eo f 1 1c o s 一 4 第2 章u c o s i i 操作系统内核介绍 2 3 任务管理 任务( 线程) 可分为等待、睡眠、就绪、运行四个状态,状态之间的转 换图见图2 2 。 图2 2 任务状态转换图 f i g u r e2 - 2s t a t em a c h i n e 在uc o s i i 中任务可以是一个无限的循环,也可以在执行一次后删除 掉。这里要注意的是,任务代码并不是被真正的删除了,而只是p c o s i i 不再理会该任务代码,所以该任务代码不会再运行。任务看起来与任何c 函 数一样,具有一个返回类型和一个参数,只是它从不返回。任务的返回类型 必须被定义成v o i d 型。如前所述,任务必须是以下两种结构之一。第一种是 无限循环的任务,第二种是只执行一次的任务。 本节将主要介绍如何在用户的应用程序中建立任务、删除任务、改变任 务的优先级、挂起和恢复任务,以及获得有关任务的信息。 2 3 1 创建任务 想让此0 s i i 管理用户的任务,用户必须要先建立任务。用户可以通过传递 任务地址和其它参数到以下两个函数之一来建立任务: o s t a s k c r e a t e ( v o i d ( t a s k ) ( v o i d + p d ) ,v o i d + p d a t a , o ss t k 。p t o s ,i n t 8 up r i o ) ; o s t a s k c r e a t e e x t ( v o i d ( + t a s k ) ( v o i d p d ) ,v o i d p d a t a , o s s t k p t o s ,i n t 8 up r i o , i n t l6 ui d , o s s t k p b o s , i n t 3 2 us t ks i z e ,v o i d p e x t ,i n t l6 uo p t ) ; 5 北京丁业大学工学硕士学位论文 创建任务的过程中,需要为任务指定执行体( 函数) ,执行体的参数,栈的 位置,和任务的优先级。 2 3 2 任务堆栈 每个任务都有自己的堆栈空间。堆栈必须声明为0 s - s t k 类型,并且由连续 的内存空间组成。用户可以静态分配堆栈空间( 在编译的时候分配) ,也可以动态 地分配堆栈空间( 在运行的时候分配) 。 2 3 3 删除任务 有时候删除任务是很有必要的。删除任务,是说任务将返回并处于休眠状态, 并不是说任务的代码被删除了,只是任务的代码不再被此o s - i i 调用。通过调 用o s t a s k d e l0 就可以完成删除任务的功能。 2 3 4 改变任务的优先级 在用户建立任务的时候会分配给任务一个优先级。在程序运行期间,用户可 以通过调用o s t a s k c h a n g e p r i o ( ) 来改变任务的优先级。换句话说,就是此0 s i i 允许用户动态的改变任务的优先级。 2 3 5 挂起和恢复任务 有时候将任务挂起是很有用的。挂起任务可通过调用o s t a s k s u s p e n d o i 函数 来完成。被挂起的任务只能通过调用o s t a s k r e s u m e o 函数来恢复。任务挂起 是一个附加功能。也就是说,如果任务在被挂起的同时也在等待延时的期满,那 么,挂起操作需要被取消,而任务继续等待延时期满,并转入就绪状态。任务可 以挂起自己或者其它任务。 2 4 任务之间的通讯和同步 在# c o s i l 中,有多种方法可以保护任务之间的共享数据和提供任务之间 的通讯。一个任务或者中断服务子程序可以通过事件控制块e c b ( e v e n tc o n t r o l b l o c k s ) 来向另外的任务发信号。这里,所有的信号都被看成是事件( e v e n t ) 。 这也说明为什么把用于通讯的数据结构叫做事件控制块。一个任务还可以等待另 一个任务或中断服务子程序给它发送信号。这里要注意的是,只有任务可以等待 6 第2 章u c o s - i i 操作系统内核介绍 事件发生,中断服务子程序是不能这样做的。对于处于等待状态的任务,还可以 给它指定一个最长等待时间,以此来防止因为等待的事件没有发生而无限期地等 下去。 多个任务可以同时等待同一个事件的发生。在这种情况下,当该事件发生后, 所有等待该事件的任务中,优先级最高的任务得到了该事件并进入就绪状态,准 备执行。上面讲到的事件,可以是信号量、邮箱或者消息队列等。当事件控制块 是一个信号量时,任务可以等待它,也可以给它发送消息。 2 4 1 事件控制块e c b i j c o s i l 通过u c o s1 1 h 中定义的o se v e n t 数据结构来维护一个事件 控制块的所有信息,也就是本节开篇讲到的事件控制块e c b 。该结构中除了包 含了事件本身的定义,如用于信号量的计数器,用于指向邮箱的指针,以及指向 消息队列的指针数组等,还定义了等待该事件的所有任务的列表。 t y p e d e fs t r u c t v o i d o s e v e n t p t r ;,指向消息或者消息队列的指针, i n t 8 uo s e v e n t t b l 【o se v e n tt b l 等待任务列表,size;p i n t l6 u o s e v e n t c n t ;计数器( 当事件是信号量时) , i n t 8 u o s e v e n t t y p e ;,时间类型 i n t 8 u o s e v e n t g r p ;,等待任务所在的组 ) o se v e nt 2 4 2 信号量 p c o s i i 中的信号量由两部分组成:一个是信号量的计数值,它是一个1 6 位的无符号整数( o 到6 5 ,5 3 5 之间) ;另一个是由等待该信号量的任务组成的等 待任务表。用户要在o s _ c f g h 中将o s s e m e n 开关量常数置成1 ,这样 p c o s i i 才能支持信号量。 i j c o s 1 i 提供了5 个对信号量进行操作的函数。它们是:o s s e m c r e a t e ( ) , 创建一个信号量;o s s e m p e n d 0 ,等待一个信号量;o s s e m p o s t 0 ,释放一个 信号量;o s s e m a c c e p t 0 ,无等待请求一个信号量;o s s e m q u e 厂y 0 ,查询当前 信号量的状态。任务和中断服务程序可以进行的操作见图2 3 。 7 北京工业大学工学硕士学位论文 2 4 3 邮箱 回b 一 力 图2 3 信号量操作示意图 f i g u r e2 - 3s e m a p h o r e so p e r a t i o ns c h e m a t i c 邮箱是p c o s i l 中另一种通讯机制,它可以使一个任务或者中断服务子程 序向另一个任务发送一个指针型的变量。该指针指向一个包含了特定“消息”的 数据结构。为了在p c o s i i 中使用邮箱,必须将o sc f g h 中的o sm b o xe n 常数置为1 。 使用邮箱之前,必须先建立该邮箱。该操作可以通过调用o s m b o x c r e a t e ( ) 函数来完成,并且要指定指针的初始值。一般情况下,这个初始值是n u l l ,但 也可以初始化一个邮箱,使其在最开始就包含一条消息。如果使用邮箱的目的是 用来通知一个事件的发生( 发送一条消息) ,那么就要初始化该邮箱为n u l l , 因为在开始时,事件还没有发生。如果用户用邮箱来共享某些资源,那么就要初 始化该邮箱为一个非n u l l 的指针。在这种情况下,邮箱被当成一个二值信号量 使用。 p c o s 一提供了5 种对邮箱的操作:o s m b o c r e a t e ( ) ,o s m b o x p e n d 0 , o s m b o x p o s t 0 ,o s m b o x a c c e p t 0 和o s m b o x q u e r y ( ) i 函数。图2 - 4 描述了任务、 中断服务予程序和邮箱之间的关系,这里用符号“i ”表示邮箱。邮箱包含的内 容是一个指向一条消息的指针。一个邮箱只能包含一个这样的指针( 邮箱为满 时) ,或者一个指向n u l l 的指针( 邮箱为空时) 。从图2 - 4 可以看出,任务或 者中断服务子程序可以调用函数o s m b o x p o s t 0 ,但是只有任务可以调用函数 o s m b o p e n d ( ) 矛口o s m b o x q u e r y ( ) 。 8 eae 舭i 上 ess0 j 咔弧 一 砌 髂 d 一 第2 章u c o s i i 操作系统内核介绍 回氍玉 2 4 4 消息队列 m e s s a g e 图2 - 4 信箱操作示意图 f i g u r e2 - 4m a i l b o xo p e r a t i o ns c h a m a t i c 消息队列是p c o s 1 | 中另一种通讯机制,它可以使一个任务或者中断服务 子程序向另一个任务发送以指针方式定义的变量。因具体的应用有所不同,每个 指针指向的数据结构变量也有所不同。为了使用p c o s i i 的消息队列功能,需 要在o sc f g h 文件中,将o s q e n 常数设置为1 ,并且通过常数 o sm a xq s 来决定p c o s 1 1 支持的最多消息队列数。 在使用一个消息队列之前,必须先建立该消息队列。这可以通过调用 o s q c r e a t e 0 函数,并定义消息队列中的单元数( 消息数) 来完成。 p c o s 1 i 提供了7 个对消息队列进行操作的函数:o s q c r e a t e ( ) , o s q p e n d ( ) ,o s q p o s t ( ) ,o s q p o s t f r o n t ( ) ,o s q a c c e p t ( ) ,o s q f l u s h ( ) 和 o s q q u e r y o 函数。图2 5 是任务、中断服务子程序和消息队列之间的关系。其 中,消息队列的符号很像多个邮箱。实际上,我们可以将消息队列看作时多个邮 箱组成的数组,只是它们共用一个等待任务列表。每个指针所指向的数据结构是 由具体的应用程序决定的。n 代表了消息队列中的总单元数。当调用o s q p e n d ( ) 或者o s q a c c e p t 0 之前,调用n 次o s q p o s t 0 或者o s q p o s t f r o n t ( ) 就会把消息 队列填满。从图2 5 中可以看出,一个任务或者中断服务子程序可以调用 o s q p o s t 0 ,o s q p o s t f r o n t ( ) ,o s q f l u s h 0 或者o s q a c c e p t 0 函数。但是,只 有任务可以调用o s q p e n d 0 和o s q q u e r y ( ) 函数。 9 北京工业大学t 学硕士学位论文 曼曼! 曼! 曼! ! 曼皇! ! 曼! ! ! 曼! ! ! ! ! ! ! ! 曼! ! ! 曼! ! ! i i ! ! 曼曼! ! ! ! ! ! 曼! ! ! 曼曼! ! ! ! 曼曼! ! ! 曼曼曼曼曼曼! 曼! ! ! ! ! ! ! ! ! ! ! 曼曼 2 5 内存管理 o s o f l u s h ( ) o s q a c c e p ti ) 图2 - 5 消息队列操作示意图 f i g u r e2 - 5m e s s a g eq u e u eo p e r a t i o ns c h e m a t i c 我们知道,在a n s ic 中可以用m a l l o c ( ) 矛1 f r e e ( ) 两个函数动态地分配内存和 释放内存。但是,在嵌入式实时操作系统中,多次这样做会把原来很大的一块连 续内存区域,逐渐地分割成许多非常小而且彼此又不相邻的内存区域,也就是内 存碎片。由于这些碎片的大量存在,使得程序到后来连非常小的内存也分配不到。 在p c o s i i 中,操作系统把连续的大块内存按分区来管理。每个分区中包 含有整数个大小相同的内存块。利用这种机制,p c o s | | 对m a l l o c ( ) 和f r e e ( ) 函数进行了改进,使得它们可以分配和释放固定大小的内存块。这样一来, m a l l o c 0 和f r e e ( ) 函数的执行时间也是固定的了。 2 5 1 内存控制块 为了便于内存的管理,在i j c o s i i 中使用内存控制块( m e m o r yc o n t r o l b l o c k s ) 的数据结构来跟踪每一个内存分区,系统中的每个内存分区都有它自己 的内存控制块。以下是内存控制块的定义。 t y p e d e fs t r u c tf v o i d o s m e m a d d r ; v o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论