(信号与信息处理专业论文)嵌入式linux监控系统软件平台设计.pdf_第1页
(信号与信息处理专业论文)嵌入式linux监控系统软件平台设计.pdf_第2页
(信号与信息处理专业论文)嵌入式linux监控系统软件平台设计.pdf_第3页
(信号与信息处理专业论文)嵌入式linux监控系统软件平台设计.pdf_第4页
(信号与信息处理专业论文)嵌入式linux监控系统软件平台设计.pdf_第5页
已阅读5页,还剩52页未读 继续免费阅读

(信号与信息处理专业论文)嵌入式linux监控系统软件平台设计.pdf.pdf 免费下载

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

文档简介

中文摘要 本论文介绍了基于嵌入式l i n u x 的数字监控系统。该系统将当今流行的 l i n u x 操作系统应用到嵌入式领域,充分发挥了l i n u x 操作系统的强大功能,并 开发出l i n u x 操作系统下的i d e 接口的硬盘驱动。 论文详细地论述了嵌入式监控系统的工作原理及系统开发的步骤和技术,通 过对嵌入式l i n u x 操作系统的裁减和编译实现了系统的软件平台,重点介绍了 l i n u x 操作系统的块设备驱动程序。通过对几种接口性能进行比较,选择i d e 接 口硬盘作为监控系统的海量存储器,并在l i n u x 操作系统下开发了i d e 接口的块 设备驱动程序,使该系统不仅能够完成视频实时监控的功能,还可以通过挂接硬 盘对通过历史记录进行存储,拥有较为广阔的市场前景。 关键词:嵌入式l i n u x 块设备驱动i d e 接口 a b s t r a c t i nt h i sp a p e r ,ad i g i t a ls u r v e i l l a n c es y s t e mb a s e do ne m b e d d e ds y s t e m i si n t r o d u c e d ap o p u l a rl i n u xo si sa d o p t e di nt h i st h ee m b e d d e ds y s t e m o w i n gt oi t sp o w e r f u lf u n c t i o na n dp r e e m i n e n ts t a b i l i t y t h ew o r k i n gp r i n c i p lea n dt h es y s t e md e v e l o p i n gs t e p so fe m b e d d e d s u r v e i l l a n c es y s t e mi se x p l a i n e di nd e t a i lf i r s t l y t h e n ,b yc o m p i l i n g o ft h ee m b e d d e dl i n u xo s ,t h es y s t e ms o f t w a r ep l a t f o r mi sc a r r i e do u ta n d t h el i n u xo se q u i p m e n td r i v e ri sm a i n l yi n t r o d u c e di nc h a p t e r2 b y c o m p a r i s o no fs e v e r a li n t e r f a c e s p e r f o r m a n c e ,i d ei ss e l e c t e da sh a r d d i s k si n t e r f a c e ,a n dt h ei d ei n t e r f a c eb l o c ke q u i p m e n td r i v eu n d e rl i n u x o si sd e v e l o p e d w i t ha m a s ss t o r a g ed e v i c e t h i ss y s t e mi sa b l et or e c o r d h i s t o r i c a li n f o r m a t i o ne a s il yw h il ei n s p e c t i n gt h ev i d e oi nr e a lt i m e t h i ss y s t e mh a sw i d em a r k e tp r o s p e c t k e yw o r d s , e m b e d d e dl i n u x ,b l o c ke q u i p m e n td r i v e r ,i d ei n t e r f a c e 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得墨生态堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:桶镒为 签字日期:年z 月如e l 学位论文版权使用授权书 本学位论文作者完全了解鑫壅盘鲎有关保留、使用学位论文的规定。 特授权墨洼盘堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名:才匀睦岿 签字日期:圳年2 月矽e l 导师虢柱力 签字日期:谢年2 ,月汐e l 天津大学硕士学位论文 第一章绪论 第一章绪论 随着数字化时代的到来,越来越多的领域开始掀起一场数字化革命。在监控 领域,发展到今天的数字监控系统已经具备强大的监控能力,系统在稳定性、适 用性、可维护性上有根本性的改善,为人们提供了一种不需要远端人为存在,就 可以实现监控的能力,从而大大优化人力资源,缩减支出,提高了效率和市场竞 争力。在信息高度发展的今天,数字视频监控系统己经广泛的应用于金融、邮电、 电力、交通、商业、旅游、公安、军事、医疗、工矿等国家的重要部门,发挥着 重要的作用。而国际反恐形势、西部开发与东北振兴、2 0 0 8 奥运与上海世博会、 国内城镇化与城市建设、部分应用领域安全事故频发这几方面构成了数字监控系 统发展的新的积极因素。 1 1 嵌入式数字视频系统发展概况 1 1 1 嵌入式监控系统的特点 在监控领域,集中了多媒体技术、数字图像处理及远程网络传输等最新技术 的数字监控正在逐步取代传统的模拟监控,它代表了监控系统的发展潮流,正在 被越来越多的工业、商业及其他部门所使用,经济效益和社会效益巨大。而在具 体的数字监控技术中,嵌入式技术正在受到广泛的注意。 嵌入式系统,一般指非p c 系统,有计算机功能但又不称为计算机的设备或器 材,它是以应用为中心,软硬件可裁减的,对功能、可靠性、成本、体积、功耗 等严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件 于一体,类似于p c 中b i o s 的工作方式,具有软件代码小、高度自动化、响应速度 快等特点,特别适合于要求实时和多任务的应用。 随着数字视频压缩编码技术的日益成熟以及计算机的普及,基于p c 机的数字 监控系统迅速崛起,并且逐渐取代原先的模拟视频监控模式,但是由于p c 系统在 实际工作中暴露出来的不稳定性,使得基于嵌入式系统的数字监控系统更具有发 展前景,其具体的优点体现在以下几方面: ( 1 ) 布控区域广泛; ( 2 ) 可组成非常复杂的监控网络; ( 3 ) 性能稳定可靠,无需专人管理:嵌入式数字监控系统采用嵌入式实时多任务 天津大学硕士学位论文第一章绪论 操作系统,系统的实时性、稳定性、可靠性大大提高,无需专人管理,适合于无 人值守的环境。 1 1 2 几种典型的嵌入式监控操作系统 下面是几种典型嵌入式数字监控操作系统介绍: 1 w i n d o w sc e m i c r o s o f tw i n d o w sc e 是从整体上为有限资源的平台设计的多线程、有完整 优先权、多任务的操作系统。它的模块化设计允许它对于从掌上电脑到专用的工 业控制器的用户电子设备进行定制。操作系统的基本内核需要至少2 0 0 k 的r o m 。 w i n d o w sc e 主要用于p d a ,界面优美,功能强大,程序移植性好,但在国内嵌入 式数字视频监控领域应用较少。 2 v x w o r k s v x w o r k s 是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。它 支持多种处理器,如x 8 6 、i 9 6 0 、s u ns p a r c 、m o t o r o l am c 6 8 x x x 、m i p sr x 0 0 0 、 p o w e rp c 等等。大多数的v x w o r k sa p i 是专有的,采用g n u 的编译和调试器。 v x w o r k s 被广泛应用于要求最高的军用场合,功能强大、开发便利,但由于 版权和价格问题,在国内嵌入式数字视频领域使用较少。 3 p s o s i s i 公司已经被w i n r i v e r 公司兼并,现在p s o s 属于w i n d r i v e r 公司的产品。这 个系统是一个模块化、高性能的实时操作系统,专为嵌入式微处理器设计,提供 一个完全多任务环境,在定制的或是商业化的硬件上可达到高性能和高可靠性。 可以让开发者根据操作系统的功能和内存需求定制成每一个应用所需的系统。开 发者可以利用它来实现从简单的单个独立设备到复杂的、网络化的多处理器系 统。 4 l i n u x 经过几年的发展,l i n u x 技术和产品日趋成熟,有越来越多的公司了解了 l i n u x 的优点而选用l i n u x 作为主要的平台,数字视频监控应用亦不例外。 l i n u x 以其独特的特性,在数字影像监控领域已经有了一段时间的应用,其 可针对不同硬件设备( p c 或单晶片) 与数字影像监控应用需求而量身订制,不仅 可免去制式系统的复杂性,并可有效减少对硬件资源的需求;为了有效降低数字 影像监控、安全管理系统的整体运作成本,l i n u x 作业系统应是最适当的选择。 采用l i n u x 进行嵌入式系统开发具有以下优点: ( 1 ) 内核微小 一个功能完备的l i n u x 内核要求大约im b 内存。而l i n u x 微内核只占其中 天津大学硕士学位论文第一章绪论 很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用 p e n t i u mc p u 系统的1 0 0k 内存。只要有5 0 0 k 的内存,一个有网络栈和基本实 用程序完全的l i n u x 系统就可以在一台8 位总线的i n t e l3 8 6 微处理器上运行的 很好了。核心l i n u x 操作系统本身的微内核体系结构相当简单。网络和文件系统 以模块形式置于微内核的上层。驱动程序和其它部件可在运行时作为可加载模块 编译到内核。这为构造定制的可嵌入系统提供了高度模块化的构件方法。因此它 是一个适合嵌入式应用领域的轻量级操作系统。 ( 2 ) 资源丰富 嵌入式系统也常常要求通用的功能,这些功能的实现运用了许多现成的程序 和驱动程序,它们可以用于公共外设和应用。l i n u x 可以在外设范围广泛的多数 微处理器上运行,并早已经有了现成的应用库。l i n u x 还具备一整套工具链,容 易自行建立嵌入式系统的开发环境和交叉运行环境,并且可以跨越嵌入式系统开 发中仿真工具的障碍。l i n u x 丰富的自由资源是其具有无限吸引力的关键所在。 ( 3 ) 硬件支持广泛 l i n u x 具有广泛的硬件支持特性,无论是r i s c 还是c i s c ,3 2 位还是6 4 位 等各种处理器,l i n u x 都能运行。l i n u x 最通常使用的微处理器是i n t e lx 8 6 芯 片家族,但它同样能运行于m o t o r o l a 公司的6 8 k 系列c p u 和i b m 、a p p l e 、 m o t o r o l a 公司的p o w e r p cc p u 以及i n t e l 公司的s t r o n ga r mc p u 等处理器系统, 这意味着嵌入式l i n u x 将具有更广泛的应用前景。 ( 4 ) l i n u x 提供多人使用( m u l t i u s e r ) 、多工( m u l t i t a s k ) 的完整作业环境,只要很 少的硬件支援,便能在多种不同电脑设备( 或是单晶片) 上运作。l i n u x 具备高解 析度与优秀的图形介面( g u i ) ,可大幅提升数字监控系统应用的亲和力。 ( 5 ) l i n u x 完全免费,可任意在网路上下载、复制、使用,同时它的程序代码也完 全公开,可以任意开发、更改。这一特点使得全世界已超过千万人使用l i n u x , 更由于许多厂商投入开发核心程式、发展相关软件以及硬件周边驱动程式,使 l i n u x 功能和完整性日益提高。 ( 6 ) l i n u x 本身开放性的架构与弹性( s c a l a b l e ) 设计,可针对数字影像监控应用量 身定做,去除与监控无关的多余功能,在提升系统效能的同时,也减少了出问题 的机率。 ( 7 ) l i n u x 是针对网路作业设计,可支援t c p i p 、w w w 等多项国际标准,能适合 新一代数字视频产品网际网路通信网路连结的所有需求。 天津大学硕士学位论文 第一章绪论 1 2 论文的主要内容和结构安排 如上所述,嵌入式数字监控系统是视频监控系统中的发展趋势,本设计的主 要任务是实现了用于嵌入式数字监控l i n u x 操作系统的软件平台,并完成了在嵌 入式l j n u x 操作系统下的i d e 接口硬盘驱动程序的设计。 论文的第二章首先简要介绍了嵌入式系统构成、特点、工作原理、设备驱动 以及系统开发的步骤以及相关技术。 第三章主要介绍在嵌入式系统中成为发展主流趋势的嵌入式l i n u x 操作系统 的设计实现。 第四章主要介绍了l i n u x 操作系统的块设备驱动程序,以及开发的i i ) e 接口的 硬盘驱动程序的过程和调试。 第五章主要介绍嵌入式数字监控系统系统的总体设计实现。 第六章对全文工作进行总结并对今后的工作进行展望。 天津大学硕士学位论文 第二章嵌入式系统 第二章嵌入式系统 嵌入式系统通常包括构成软件基本运行环境的硬件和操作系统两部分。嵌入 式系统的运行环境和应用场合决定了嵌入式系统具有区别于其它操作系统的一 些特点。 2 1 嵌入式系统的构成 2 1 i 嵌入式处理器 嵌入式处理器可以分为三类:嵌入式微处理器、嵌入式微控制器、嵌入式d s p 。 嵌入式微处理器就是和通用计算机的微处理器对应的c p u 。在应用中,一般 是将微处理器装配在专门设计的电路板上,在母板上只保留和嵌入式相关的功 能,这样可以满足嵌入式系统体积小和功耗低的要求。目前的通用型的嵌入式处 理器主要包括:p o w e r p c 、m o t o r o l a6 8 0 0 0 、a r m 系列等等。 嵌入式微控制器又称为单片机,最常见的是8 0 5 1 单片机,它将c p u 、存储 器( 少量的r a lr o m 或两者都有) 和其它外设封装在同一片集成电路里。 嵌入式d s p 专门用来对离散时间信号进行极快的处理计算,大大提高了编译 效率和执行速度。在数字滤波、f f t 、谱分析、图像处理的分析等领域,d s p 正 在大量进入嵌入式市场。 设计者在选择处理器时要考虑的主要因素有: 1 处理器的处理速度。一个处理器的性能取决于多个方面的因素:时钟频率; 内部寄存器的大小;指令是否对等处理所有的寄存器等因素。对于许多需用处理 器的嵌入式系统设计来说,目标不是在于挑选速度最快的处理器,而是在于选取 能够完成作业的最合适的处理器和i o 予系统。 2 技术指标。当前,许多嵌入式处理器都集成了外围设备的功能,从而减少了 芯片的数量,进而降低了整个系统的开发费用。开发人员首先考虑的是,系统所 要求的一些硬件能否无需过多的组合逻辑就可以连接到处理器上。其次是考虑该 处理器的一些支持芯片,如d m a 控制器,内存管理器,中断控制器,串行设备、 时钟等的配套。 3 处理器的低功耗。嵌入式微处理器主要应用于消费类电子产品,这些产品要 求微处理器高性能、低功耗的。 天津大学硕士学位论文 第二章嵌入式系统 4 处理器的软件支持工具。仅有一个处理器,没有较好的软件开发工具的支持, 也是不行的,因此选择合适的软件开发工具对系统的实现会起到很好的作用。 5 处理器是否内置调试工具。处理器如果内置调试工具可以大大的缩小调试周 期,降低调试的难度。 6 处理器供应商是否提供评估板。许多处理器供应商可以提供评估板来验证你 的理论是否正确,验证你的决策是否得当。 本系统采用三星公司的a i l m 处理器s 3 c 2 4 l o x ,s 3 c 2 4 1 0 x 使用a r m 9 2 0 t 核,具有高性能、低功耗、接口丰富和体积小等优良特性。 2 1 2 微内核结构 大多数操作系统至少被划分为内核层和应用层两个层次。内核只提供基本的 功能,如建立和管理进程、提供文件系统、管理设备等,这些功能以系统调用方 式提供给用户。一些桌面操作系统,如w i n d o w s 、l i n u x 等,将许多功能引入内 核,操作系统的内核变得越来越大。内核的变大使得占用的资源增多,剪裁起来 很麻烦。 大多数嵌入式操作系统采用了微内核结构、内核只提供基本的功能,比如: 任务的调度、任务之间的通信与同步、内存管理、时钟管理等。其它的应用组件, 比如网络功能、文件系统,g u i 系统等均工作在用户端,以系统迸程或函数调用 的方式工作。因而系统都是可裁减的,用户可以根据自己的需要选用相应的组件。 2 1 3 任务调度 在嵌入式系统中,任务即线程。大多数的嵌入式操作系统支持多任务。多任 务运行的实现实际是靠c p u 在多个任务之间切换、调度。每个任务都有其优先级, 不同的任务优先级可能相同也可能不同。任务的调度有三种方式:可抢占式调度、 不可抢占式调度和时间片轮转调度。不可抢占式调度是指,一个任务一旦获得 c p u 就独占c p u 运行,除非由于某种原因,它决定放弃c p u 的使用权;可抢占式 调度是基于任务优先级的,当前正在运行的任务可以随时让位给优先级更高的处 于就绪态的其它任务;当两个或两个以上任务有同样的优先级,不同任务轮转地 使用c p u ,直到系统分配的c p u 时间片用完,这就是时间片轮转调度。 目前,大多数嵌入式操作系统对不同优先级的任务采用基于优先级的抢占式 调度法,对相同优先级的任务则采用时问片轮转调度法。 天津大学硕士学位论文 第二章嵌入式系统 2 1 4 硬实时和软实时 有些嵌入式系统对时间的要求较高,称之为实时系统。有两种类型的实时系 统:硬实时系统和软实时系统。 软实时系统并不要求限定某一任务必须在一定的时间内完成。只要求每个任 务运行得越快越好;硬实时系统对系统响应时间有严格要求,一旦系统响应时间 不能满足,就可能会引起系统崩溃或致命的错误,一般在工业控制中应用较多。 2 1 5 内存管理 针对有内存管理单元( 删u ) 的处理器设计的一些桌面操作系统,如w i n d o w s 、 l i n u x ,使用了虚拟存储器的概念。虚拟内存地址被送到m m u 中。在这里,虚拟 地址被映射为物理地址,实际存储器被分割为相同大小的页面,采用分页的方式 载入进程,一个程序在运行之前,没有必要全部装入内存,而是仅将那些当前要 运行的部分页面装入内存运行。 大多数嵌入式系统针对没有删的处理器设计,不能使用处理器的虚拟内存 管理技术,采用的是实存储器管理策略。因而对于内存的访问是直接的,它对地 址的访问不需要经过删,丽是直接送到地址线上输出,所有程序中访问的地址 都是实际的物理地址;而且,大多数嵌入式操作系统对内存空间没有保护,各个 进程实际上共享一个运行空间。一个进程在执行前,系统必须为它分配足够的连 续地址空间,然后全部载入主存储器的连续空间。由此可见,嵌入式系统的开发 人员不得不参与系统的内存管理。从编译内核开始,开发人员必须告诉系统这块 开发板到底拥有多少内存:在开发应用程序时,必须考虑内存的分配情况并关注 应用程序需要运行空间的大小。另外,由于采用实存储器管理策略,用户程序同 内核以及其它用户程序在一个地址空间,程序开发时要保证不侵犯其它程序的地 址空间,以使程序不至于破坏系统的正常工作,或导致其它程序的运行异常,因 而。嵌入式系统的开发人员对软件中的一些内存操作要格外小心。 2 1 6 内核加载方式 嵌入式操作系统内核可以在f l a s h 上直接运行,也可以加载到内存中运行。 f l a s h 的运行方式,是把内核的可执行映像烧录到f l a s h 上,系统启动时从f l a s h 的某个地址开始执行。 这种方法实际上是很多嵌入式系统所采用的方法。内核加载方式是把内核的 压缩文件存放在f l a s h 上,系统启动时读取压缩文件在内存里解压,然后开始执 行。这种方式相对复杂一些,但是运行速度可能更快,因为r a m 的存取速率要比 天津大学硕士学位论文 第二章嵌入式系统 f l a s h 高。由于嵌入式系统的内存管理机制,嵌入式操作系统对用户程序采用静 态链接的形式。在嵌入式系统中,应用程序和操作系统内核代码编译、链接生成 一个二进制映像文件来运行。 2 2 嵌入式系统特点 由于嵌入式系统是应用于特定环境下执行面对专业领域的应用系统,所以不 同于通用型计算机系统应用的多样性和适用性,具有以下特点: 1 嵌入式系统通常是面向特定应用的,一般都有实时性要求。嵌入式c p u 大多 工作在为特定用户群所设计的系统中。它通常具有低功耗、体积小、集成度高、 成本低等特点,能够把通用c p u 中许多由板卡完成的任务集成在芯片内部,从而 使嵌入式系统设计趋于小型化、专业化,大大增强了系统的移动能力,与网络的 联系也越来越紧密。 2 嵌入式系统是将先进的计算机技术、半导体工艺、电子技术和通信网络技术 与各领域的具体应用相结合的产物。这一特点决定了它必然是一个技术密集、资 金密集、不断创新的知识集成系统。 3 嵌入式系统和具体应用有机地结合在一起,它的升级换代也和具体产品同步 进行。因此,嵌入式系统产品一旦进入市场,一般具有较长的生命周期。 4 嵌入式系统的软件和硬件都必须高效地设计,在保证稳定、安全、可靠的基 础上量体裁衣、去除冗余,力争在同样硅片面积上实现更高的性能。这样才能最 大限度地降低成本,从而在具体应用中对处理器的选择更具有市场竞争力。 5 为了提高执行速度和系统的可靠性,嵌入式系统中的软件一般固化在存储器 芯片或处理器的内部存储器中,而不存储于外部的磁盘等载体。 6 嵌入式系统本身不具备自主开发能力。即使设计完成以后,用户通常也不能 对其中的程序进行修改,必须有一套交叉开发工具和环境才能实现开发功能。 2 3 嵌入式操作系统工作原理 操作系统能够解决的突出问题是充分提高c p u 的利用率和防止由于一个任 务的瘫痪或由于某种原因陷入死循环等意外情况导致整个系统的瘫痪。在实际应 用的系统中,慢速运行的外部设备也严重影响c p u 能力的发挥。程序中的自身延 时和与其它事件取得同步等都必须等待,这样会白白浪费c p u 时间。多用户、多 任务的操作系统把应用程序划分为若干彼此相互独立的段( 称为任务) ,当遇到延 时或等待某一事件发生时,就将一个任务悬挂起来,通过实时内核将c p u 使用权 天津大学硕士学位论文 第二章嵌入式系统 切换给另一个任务,直到延时时间用完或等待事件到达,再由内核将悬挂的任务 恢复,被悬挂的任务重新获得c p u 使用权继续执行,从而提高c p u 的利用率。 2 3 1 操作系统内核 内核负责为每个任务分配c p u 时间,并且负责任务间的通讯。内核提供的基 本任务是任务切换。使用内核可以大大简化应用系统的设计,因为内核允许将应 用分成若干个任务,由内核来管理它们。内核本身也增加了应用程序的额外负荷, 因为内核提供的服务需要一定的执行时间。额外负荷的量取决于用户多久调用一 次这类服务。在设计较好的应用系统中,内核占用2 一5 的c p u 负荷。内核是 加在用户应用程序中的软件,会增加r o m ( 代码空间) 的用量,内核本身的数据结 构增加了r a m ( 数据空问) 的用量。更重要的是,每个任务要有自己的栈空间,这 部分占用内存相当多。 内核又可分为不可剥夺型和可剥夺型内核两种。 不可剥夺型内核要求每个任务主动放弃c p u 使用权,异步事件由中断服务来 处理。中断服务可使一个高优先级的任务由挂起态变为就绪态,但中断结束后, 使用权还是回到原来被中断的那个任务,直到该任务主动放弃c p u 的使用权,一 个新的高优先级的任务才能获得c p u 使用权。不可剥夺内核的一个优点是响应中 断快,允许使用不可重入函数,每个任务都可以调用不可重入函数,而不必担心 其他任务可能正在使用该函数,从而造成数据的破坏,因为每个任务要运行到完 成时,才释放c p u 使用权。另一个优点是,几乎无须使用信号量保护共享数据。 可剥夺内核对系统的响应时间要求严格,最高优先级的任务一旦就绪,总能 得到c p u 使用权。当一个运行着的任务使一个比它优先级高的任务进入就绪态 时,当前任务的c p u 使用权就被剥夺了,或者说被挂起了,更高优先级的任务立 刻得到了c p u 的使用权。如果是中断服务子程序使一个高优先级的任务进入就绪 态,中断完成时,中断了的任务被挂起,优先级高的任务开始运行。 2 3 2 任务切换 一个任务,也称作线程,是一个简单的程序,该程序可以认为c p u 完全只属 于该程序自己。应用程序把问题分割成多个任务,每个任务都是整个应用的一部 分,在创建的时候被赋予一定的优先级,并在内存中开辟一套自己的c p u 寄存器 和栈空间。当任务的c p u 使用权被剥夺时,系统用它来保存该任务的状态。当任 务重新得到c p u 使用权时,任务控制块全部驻留在r o m 中。 典型的状况是,每个任务都是无限的循环,都可能处在以下5 种状态之一: 睡眠态、就绪态、运行态、挂起态、及被中断态。 天津大学硕士学位论文 第二章嵌入式系统 睡眠态相当子任务驻留在程序空间( r o m 或r a m ) 中,还没有交给系统管理, 并不被多任务内核调度。把任务交给系统,是通过任务创建函数实现的,传递系 统参数作为任务的起始地址、任务的优先级、任务分配的栈空间等。 就绪态意味着任务已经准备好,可以运行,但由于该任务的优先级比正在运 行的任务优先级低,还暂时不能运行。任务一旦建立,就处于就绪态。如果多任 务已经启动,且一个任务是被另一个任务建立的,而新建立的任务的优先级高于 建立它的任务的优先级,则这个刚刚建立的任务将立即得到c p u 的使用权。一个 任务可以通过任务的删除函数返回到睡眠态,或通过该调用让另一个任务进入睡 眠态。 运行态是指任务掌握了c p u 的使用权,正在运行中。系统通过多任务启动函 数启动多任务,启动函数只在启动时调用一次,该函数运行用户初始化代码中已 经建立的、进入就绪态的优先级最高的任务。任何时候只能有一个任务处于运行 态。就绪的任务只有当所有优先级高于这个任务的任务都转为等待状态或者被删 除了,才能进入运行态。 等待状态是指任务在等待某一事件的发生。正在运行的任务通过调用延时函 数,将自身延时一定时间,这个函数会立即强制执行任务切换,让下一个优先级 最高的、进入就绪状态的任务运行。等待时问过去以后,系统调用时间函数,使 延时任务进入就绪态。正在运行的任务可能需要等待某一事件的发生,如果事件 并未发生,调用上述函数的任务就进入了等待状态,直到等待的事件发生了。当 任务因等待事件挂起的时候下一个优先级最高的任务立即得到了c p u 的使用权。 当事情发生了或等待超时的时候,被挂起的任务就进入了就绪态。事情发生的报 告可能来自另一个任务,也可能来自中断服务予程序。 中断服务态:正在运行的任务是可以被中断的,除非该任务将中断关闭,或 者操作系统把中断关闭,被中断了的任务于是进入了中断服务态。响应中断时, 正在执行的任务被挂起,中断服务子程序控制了c p u 的使用权。中断服务子程序 可能会报告一个或多个事件的发生,而使一个或多个任务进入就绪态。而在这种 情况下,从中断服务子程序返回之前,系统要判定,被中断的任务是否还是就绪 态任务中优先级最高的。如果中断服务予程序使另一个优先级更高的任务进入了 就绪态,则新进入就绪态的这个优先级更高的任务将得以运行。否则,原来的中 断了的任务将继续运行。 任务切换有时被称为上下文切换。当多任务内核决定运行另外的任务时,它 保存正在运行任务的当前状态,即c p u 寄存器中的全部内容。这些内容保存在任 务的当前状态保存区,也就是任务自己的栈区之中。入栈工作完成以后,就把下 一个将要运行的任务的当前状况从该任务的栈中重新装入c p u 寄存器,并开始下 天津大学硕士学位论文第二章嵌入式系统 一个任务的运行。在系统中就绪任务的栈结构总是看起来跟刚刚发生过中断一 样,所有处理器的寄存器都保存在栈中。换句话说,系统运行就绪态的任务所要 做的一切,只是恢复所有的c p u 寄存器并运行中断返回指令。为了运行任务切换, 使用软中断,系统执行一条处理器指令,其行为就像是硬件。首先保护现场,也 就是中断发生c p u 时各内部寄存器的内容,c p u 在响应中断时,已把各标志和返 回地址压入堆栈,所以要保存的现场主要是通用寄存器的内容和除代码段寄存器 外的其他寄存器的内容。保护的方法是把它们压入堆栈,然后转入中断服务子程 序。在这里,首先将当前运行任务的环境保存到该任务的任务控制块,将最高优 先级任务复制到当前运行控制块,将任务控制块的任务堆栈指针,装入c p u 的寄 存器中,按相反的方向从堆栈中弹出通用寄存器,执行中断返回指令,任务切换 完成。由于中断可能会使更高优先级的任务进入就绪状态,为了让更高优先级的 任务能立即执行,需要运行任务切换。任务切换如下图所示: 2 3 3 任务间通信 2 - 1 任务状态图 系统应用中,经常用到任务问或中断服务与任务间的通信,这种信息传递称 为任务间的通信。任务间信息的传递有两个途径:通过全程变量或发消息给另一 个任务。 用全程变量时,必须保证每个任务或中断服务子程序独享该变量。中断服务 天津大学硕士学位论文第二章嵌入式系统 子程序中独享变量的唯一办法是关中断,然后开中断。如果2 个任务共享某个变 量,实现共享的办法可以是关中断,再开中断或使用信号量。 值得注意的问题是,任务只能通过全程变量与中断服务子程序通信,而任务 并不知道什么时候全程变量被中断服务子程序修改了,除非中断服务子程序以信 号量方式向任务发信号,或者是该任务以查询方式不断周期性地查询变量的值, 可见采用查询的方式,就会浪费一些系统的资源。采用信号机制,在等待事件没 有到来的情况下,调度程序将其悬挂起来,转去运行其他任务,等待事件到来以 后,立即转回处理因等待信号悬挂起来的任务。 任务之间、任务与中断服务函数之间的通信,大量使用了操作系统提供的信 号机制,以及全局变量,从而使任务之间以及任务与中断函数之间信息交换,变 得更加及时可靠。 2 4 设备驱动程序 设备驱动程序,作为系统的一个任务,是嵌入式系统中不可缺少的重要部分, 为上层软件提供设备的操作接口。上层软件只需要调用驱动程序的接口来完成最 后的工作,而不用知道设备的具体内部操作,所以驱动程序的性能对整个系统的 工作性能影响很大。 一个好的驱动程序不仅要实现设备的基本功能函数,如初始化、中断响应、 发送、接收等,使设各的基本功能能够实现,还应该有完备的错误处理函数,以 便设备在运行出错时,能很快从错误中恢复过来继续工作。嵌入式系统中的驱动 程序遵循通用的接口,采用的是面向对象的方法,一个设备就是一个对象,而对 象内部有自己的数据和方法,每一个设备的方法被调用时的第一个参数都是这个 设备对象本身,可以说驱动程序的组织和面向对象设计中的对象概念是一样。对 上层的应用程序而言,设备驱动程序隐藏了设备的具体细节,对各种不同型号、 不同种类的设备提供了简便、高效的接口,应用程序可以像调用数据结构一样对 设备进行操作。 设备驱动程序包括以下几部分: 1 初始化在系统启动或模块加载时,必须调用驱动程序中的初始化模块来创建 设备对象。这个设备对象对应的数据结构是一个全局变量,包含设备的重要参数 和功能函数指针。 2 发送和接收是设备最基本的功能,主要完成系统与设备的数据交流。在系统 要向设备发送数据时,驱动程序告诉系统设备的发送函数地址,系统要发送数据 时,调用相应的发送函数。同时使用接收函数,接收设备发来的数据,并进行必 天津大学硕士学位论文 第二章嵌入式系统 要的数据处理。 3 时钟和卸载在实现驱动程序时,很多地方需要时钟,如协议里的超时处理、 硬件的轮询、系统资源分配算法等。一般先调用一次取时函数( 此函数是记录系 统启动后到当前时刻的间隔) 来记录下一个时间值。第二次执行到此处时再执行 一次取时函数来得到第二次的时间值。通过计算前后两个时间值的差值来判断是 否超时,取时函数利用了系统的定时器0 ,以及操作系统提供的时间函数。当系 统的运行中因为特殊的要求( 如在软件中重新对设备进行初始化) 不使用这个设 备时,可以将设备卸载。 2 5 嵌入式系统开发相关技术 相对于在w i n d o w s 环境下的开发应用程序,嵌入式系统开发有着很多的不 同。不同的硬件平台和操作系统带来了许多附加的开发复杂性。 2 5 1 嵌入式开发过程 在嵌入式开发过程中有宿主机和目标机的角色之分:宿主机是执行编译、链 接、定址过程的计算机,目标机指运行嵌入式软件的硬件平台。首先须把应用程 序转换成可以在目标机上运行的二进制代码。这一过程包含三个步骤:编译、链 接、定址。编译过程由交叉编译器实现。所谓交叉编译器就是运行在一个计算机 平台上并为另一个平台产生代码的编译器。常用的交叉编译器有g n uc c + + ( g e e ) 。编译过程产生的所有目标文件被链接成一个目标文件,称为链接过程。 定址过程会把物理存储器地址指定给目标文件的每个相对偏移处。该过程生成的 文件就是可以在嵌入式平台上执行的二进制文件。 嵌入式开发过程中另一个重要的步骤是调试目标机上的应用程序。嵌入式调 试采用交叉调试器,一般采用宿主机目标机的调试方式,它们之间由串行口线 或以太网或1 3 d m 线相连。交叉调试有任务级、源码级和汇编级的调试,调试时 需将宿主机上的应用程序和操作系统内核下载到目标机的r a i 中或直接烧录到 目标机的r o m 中。目标监控器是调试器对目标机上运行的应用程序进行控制的代 理,事先被固化在目标机的f l a s h 中,在目标机上电后自动启动,并等待宿主机 方调试器发来的命令,配合调试器完成应用程序的下载、运行和基本的调试功能, 并将调试信息返回给宿主机。 天津大学硕士学位论文 第二章嵌入式系统 2 5 2 向嵌入式平台移植软件 大部分嵌入式开发人员选用的软件开发模式是先在p c 机上编写软件,再进 行软件的移植工作。在p c 机上编写软件时,要注意软件的可移植性,选用具有 较高移植性的编程语言( 如c 语言) ,尽量少调用操作系统函数,注意屏蔽不同硬 件平台带来的一些问题。要注意的有以下几点: 1 字节顺序 字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有 小端、大端两种字节顺序。小端字节顺序指低字节数据存放在内存低地址处,高 字节数据存放在内存高地址处;大端字节顺序是高字节数据存放在低地址处,低 字节数据存放在高地址处。基于x 8 6 平台的p c 机是小端字节顺序的,而有的嵌 入式平台则是大端字节顺序的。因而对h a t ,u i n t l 6 ,u i n t 3 2 等多于1 字节类型的 数据,在这些嵌入式平台上应该变换其存储顺序。通常我们认为,在空中传输的 字节的顺序即网络字节序为标准顺序,考虑到与协议的一致以及与同类其它平台 产品的互通,在程序中发数据包时,将主机字节顺序转换为网络字节顺序,收数 据包处将网络字节顺序转换为主机字节顺序。 2 字节对齐 有的嵌入式处理器的寻址方式决定了在内存中占2 字节的i n t l 6 。u i n t l 6 等类 型数据只能存放在偶数内存地址处,占4 字节的i n t 3 2 、u i m 3 2 等类型数据只能存 放在4 的整数倍的内存地址处;占8 字节的类型数据只能存放在8 的整数倍的内 存地址处;而在内存中只占l 字节的类型数据可以存放在任意地址处。由于这些 限制,在这些平台上编程时有很大的不同。 首先,结构体成员之间会有空洞。通信双方都是对结构成员操作的,这种情 况不会出错,但如果有一方是逐字节读取内容的( 通信协议大都如此) ,就会错误 地读到其它字节的内容。其次,若对内存中数据以强制类型转换的方式读取,字 节对齐的不同会引起数据读取的错误。为了增强软件的可移植性以及和同类其它 平台产品的互通性,我们在收数据包处增加了拆包的函数,发数据包处增加了组 包的函数。这两个函数解决了字节顺序的问题,也解决了字节对齐的问题。 3 位段 由于位段的空间分配方向因硬件平台的不同而不同,对x 8 6 平台,位段是 从右向左分配的,而一些嵌入式平台,位段是从左向右分配的。分配顺序的不同 导致了数据存取的错误。解决这一问题的方法是采用条件编译的方式,针对不同 的平台定义顺序不同的位段。 4 代码优化 天津大学硕士学位论文第二章嵌入式系统 嵌入式系统对应用软件的质量要求更高。因而在嵌入式开发中尤其须注意对 代码进行优化,尽可能地提高代码的效率,减少代码的大小。虽然现代c 和c + + 编译器都提供了一定程度的代码优化,但大部分由编译器执行的优化技术仅涉及 执行速度和代码大小的平衡,不可能使程序既快又小,因而必须在编写嵌入式软 件时采取一些以下必要的措施: ( 1 ) 提高代码的效率; ( 2 ) 减小代码的大小 嵌入式系统编程应避免使用标准库例程,因为很多大的库例程是为了处理所 有可能的情况,所以占用了庞大的内存空间,因而应尽可能地减少使用标准库例 程。 ( 3 ) 避免内存泄漏 用户内存空间( 堆) 为r a m 中全局数据和任务堆栈空间都分配后的剩余空间, 为了使程序能有足够的内存运行,必须在申请的内存不用后及时地将其释放。以 确保再次申请时能有空间。如果程序中存在内存泄漏( 即申请内存后没有及时释 放) 的情况,程序最终会因为没有足够的内存空间而无法运行。 2 6 嵌入式系统开发流程 嵌入式系统的开发流程一般包括如下几个阶段: ( 1 ) 需求分析; ( 2 ) 软硬件分别设计、开发、调试、测试; ( 3 ) 系统集成:软硬件集成; ( 4 ) 集成测试; ( 5 ) 若正确,则结束,否则继续进行; ( 6 ) 若出现错误,需要对软、硬件分别验证和修改。 软件设计主要任务是确定选用哪个操作系统,将操作系统移植到系统单板 上,按照模块化设计思想,把应用程序分解成若干个相互独立模块,每个模块是 一个任务,任务都有任务优先级,任务的优先级可以动态改变,操作系统按照任 务的优先级调度任务,任务之间通过信号、队列、邮箱等方法通信。任务管理由 操作系统完成。软件原理框图如图所示: 天津大学硕士学位论文 第二章嵌入式系统 2 2 系统软件原理框图 在嵌入式系统中,不像p c 那样,在主板上有一个c m o s ,用来存放固件 ( f i r m w a r e ) 。而是使用一个被称作b o o f l o a d e r 的程序,用以启动系统和作简单的管 理。实际上,在一个稍微复杂的嵌入式系统中,b o o t l o a d e r 是十分重要的,它有 如下作用: ( 1 ) 把内核从f l a s h 复制到r a m ,然后启动它; ( 2 ) 初始化硬件; 3 ) 下载程序并写入f l a s h ,一般通过串口或者网口先把内核下载到r a m 中,然 后写入n f l a s h ; ( 4 ) 检测目标板,b o o t l o a d e r 会有一些简单的代码用以测试目标板硬件的好坏。 天津大学硕士学位论文 第三章嵌入式l i n u x 的实现 第三章嵌入式l i n u x 的实现 嵌入式系统是以应用为中心,以计算机技术为基础,软硬件均可裁剪,对功 能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。国际上也出现了 一些著名的嵌入式操作系统,如v x w o r k s ,p a l m o s ,w i n d o w s c e 等等,但这些 操作系统均属于商品化产品,价格昂贵,且源代码不公开,导致了诸如对设备的 支持、应用软件的移植等一系列的问题。而l i n u x 作为一种优秀的免费操作系统, 具有很高的实用性,成为了最有开发前景的嵌入式操作系统。 3 1 嵌入式l i n u x 操作系统的特点 下面对嵌入式l i n u x 操作系统与专用嵌入式操作系统的比较如下: 1 l i n u x 是可定制的 。 对l i n u x 系统内核进行合理的裁减,最小只有约1 3 4 k b 。一个带有中文系统 和图形用户界面的核心程序也可以做到不足1 m b ,并且同样稳定。 2 嵌入式l i n u x 的内存使用 在一个简单的系统中,当系统启动后,内核和各种应用进程均驻留在内存中, 这是大多数传统嵌入式系统的工作方式,当然也包括l i n u x 。但它还可以使用另 外一种方式:l i n u x 有装载和卸载程序的能力,所有应用程序以文件的形式被存 放在闪存文件系统中并在必要的时候被装载到内存中,以节省r a m 。 3 嵌入式l i n u x 的可移植性 将l i n u x 移植到新的微处理器体系非常快捷,一般是将其移植到一种新型的 目标板,其中包含有独特的外设。大部分的内核代码都是相同的,因为它们与微 处理器无关,所以,移植的工作多集中在一些存储器管理及中断处理程序上。一 旦完成,它们将非常稳定。 4 嵌入式l i n u x 的应用 嵌入式系统的涵盖面是非常广泛的,其中,家电市场包括机顶盒、数字电视、 可视电话、家庭网络等信息家电;工业市场包括工业控制设备、仪器;商用市场 包括掌上电脑、客户机、p o s 终端等;通信市场包括w a p 手机、无线p d a 。 然而l i n u x 也有不尽如人意的地方,l i n u x 并非专门为实时性应用而设计, 因此如果想在对实时性要求较高的嵌入式系统中运行l i n u x ,就必须为之添加实 查堡奎堂堡主堂垡丝奎 兰三皇壁垒塞! ! 竺! 塑窒里 时软件模块。这些模块运行的内核空间正是操作系统实现进程调度

温馨提示

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

评论

0/150

提交评论