




已阅读5页,还剩78页未读, 继续免费阅读
(计算机系统结构专业论文)基于armlinux的高速数据采集技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中文摘要 中文摘要 摘要:本文研究基于a r m l i n u x 的高速数据采集系统的设计与实现问题。论 文完成了以a r m + f p g a 结构为平台,a r m l i n u x 为核心的系统的软、硬件设计, 进行了信号的高速采集和处理的实际测试。对实验数据迸行了分析。同时为了体 现a r m + f p g a 结构在功耗节省方面的优势,我们用n i o si i 实现了系统同样的 功能,并利用工具对两种结构的系统功耗作了比较,有效地验证了我们的论点。 论文从软硬件两方面入手,阐述了基于a r m 处理器和f p g a 芯片进行高速数 据采集的硬件系统设计方法,以及利用a r m l i n u x 操作系统进行高速数据采集的 软件程序设计问题。 硬件方面,为实现高速采集目的,选择了a d 公司的a d 9 4 8 1 芯片。并在f p g a 平台上,基于乒乓原理,设计实现了多路f i f o 缓冲和双端口数据存储结构。利用 阐值控制方式获取目标信号,并触发a r m 平台的外部f 1 q ,在 f i q 中断处理程序 中通过g p i o 高速并行获取观察数据。 软件方面,为了更好更有效地管理和拓展系统功能,我们移植了a r m l i a u x 。 在a r m l i n u x 平台上,设计实现了e p 7 3 1 2 平台上的l 【礁设备驱动程序和数据采 集应用程序。并通过修订内核,实现了利用f i q 机制高速获取外部设备数据,用 户进程通过访问系统空间获取实验数据并在l c d 加以显示。 论文实现了利用f i q 机制控制前端外设进行高速数据采集的系统功能。在前 端采样频率达到1 2 5 m i - i z 讨,系统仍能够正常地进行数据采集、传输和显示的工 作。 关键词;嵌入式系统,高速数据采集,a r m ,l i a u x ,f i 口内存管理,设备驱动, f p g a 分类号: t p 3 0 2 1 ;t p 3 3 5 + 1 北京交通大学硕士学位论文 a b s t r a c t :i nt h i sd i s s e r t a t i o n , a h i g hs p e e dd a t aa c q u i s i t i o nt e c h n o l o g y i s r e s e a r c h e db a s e d0 1 1a r m l i n u xo p e r a t i n gs y s t e m t h es y s t e md e s i g na c c o m p f i s b e d i n c l u d e st w op a r t s :s o f t w a r ea n dh a r d w a r e t h es o f t w a r eh a sb e e nd e v e l o p p e dw i t h a r m l i n n x a n dt h eh a r d w a r eh a sb e e nc o n s t r u c t e do i lt h ea r c h i t e c t u r eo fa r m f p g a t h ew h o l es y s t e mh a sb e e nt e s t e da n dt h ed a t ao b t a i n e dh a sb e e na n a l y s e d m e a n w h i l e ,w eu t i l i z e dat o o lt oc o m p a r et h ep o w e rd i s s i p a t i o nb e t w e e no u rs y s t e ma n d a n o t h e rs i m i l a rs y s t e me s t a b l i s h e do nt h ea r c h i t e c t u r eo fn i o si i ,a n dt h er e s u l t e f f e c t i v e l yp r o v e st h a to u ra r c h i t e c t u r ei sb e t t e rt h a nt h el a t t e r t h es y s t e mi sd e s c r i b e di nt w op a r t s o n ei st h eh a r d w a r ed e s i g no fh i g hs p e e dd a t a a c q u i s i t i o nb a s e do i lt h ea r mp r o c e s s o ra n df p g ac h i p ,t h eo t h e ri st h ep r o g r a m d e s i g nu s i n gt h eo s ( o p e r a t i n gs y s t e m ) o f a r m l i n u x i nt h eh a r d w a r ed e s i g n w ec h o s ea c h i po f a l 7 9 4 8 1m a d eb yt h ea dc o m p a n y , w h i c h i s a b l et oc o n v e r tt h ea n a l o gs i g n a l st od i g i t a ls i g n a l sa tt h em a x i m u mf r e q u e n c yo f2 5 0 m h z a n dw er e a l i z e dam u l t i p l ef i f oa n dad o u b l e - p o r tr a mb a s e do nt h ep r i n c i p l e o fp i n gp o n gi nt h ef p g ac h i p w em a d et h es y s t e mc a p a b l eo fa c q u i r i n gt h et a r g e t s i g n a l sb yt h et h r e s h o l dc o n t r o la n dt h e nt r i g g e r i n gt h ee x t e r n a lf i o ( f a s ti n t e r r u p t a c q u i s i t i o n ) o fa r m s ot h a tt h es e r v i c er o u t i n eo ff i qc a ng e tt h ed a t aw ew a n tt h r o u g h t h eg p i o ( g e n e r a lp a r a l l e li o ) o f a r ma th j 【g hs p e e d i nt h es o f t w a r ed e s i g n ,a tf i r s t l yw e p o r t e dt h eo s o fa r m l i n u xo n t oa r mf o rm o r e e f f e c t i v ea d m i n i s t r a t i o na n ds y s t e mu p g r a d e o nt h es o f t w a r ep l a t f o r m ,w ed e s i g n e dt h e c h a r a c t e rd e v i c ed r i v e ro fl e da n dt h ea p p l i c a t i o np r o g r a mo fd a t aa c q u i s i t i o n b y m o d i f y i n gt h ek e r n e lo fa r m i 血u x ,w em a d ea r mc a p a b l eo fg e t t i n gt h eh i g hs p e e d d a t af r o mi t se x t e r n a ld e v i c ef p g a b yt h ef i q t h e nau s e rp r o c e s sc a l lg e tt h ed a t a f r o mt h es y s t e ms p a c ea n dd i s p l a yi to l lt h el c d w er e a l i z e dt h es y s t e mf u n c t i o nb yu t i l i z i n gt h ef i qo fa r mt oc o n t r o le x t e r n a ld e v i c e t oa c q u i r et h eh i g hs p e e dd a t a i nt h ee x p e r i m e n t , t h es y s t e mc a nn o r m a l l ys a m p l e , t r a n s f e ra n d d i s p l a yt h ed a t aa tt h es a m p l i n gf r e q u e n c y1 2 5m h z k e y w o r d s :e m b e d d e ds y s t e m ;h i 【g hs p e e dd a t aa c q u i s i t i o n ;a r m ;l i n u x ;f i q ; m e m o r ym a n a g e m e n t ;d e v i c ed r i v e r ;f p g a c l 锚s n o : t p 3 0 2 1 ;t p 3 3 5 + 1 1 北京交通大学硕士学位论文 致谢 本论文的工作是在我的导师高金山副教授的指导下完成的,高金山副教授的 治学态度和科学的工作方法给了我帮助和影响。 至今自己还记得在最初开发“嵌入式声源定位器”时,遇到的种种几近无法 克服的困难。是高老师严谨认真的态度,精深的专业知识,引导着我们的开发工 作一步步走向最后的成功。尔后,在毕业论文撰写期间,高老师不仅在管理本科 教学,还指导我进行毕业课题的科研工作,在此表示衷心的感谢。 在实验室工作及撰写论文期间,李尚峰、王亚庭等同学对我论文中的a r m 和 f p g a 方面的研究工作给予了热情的帮助,在此向他们表达我的感激之情。 另外也感谢我的家人,他们的理解和支持使我能够在学校专心完成我的学业。 引言 1 引言 自2 0 世纪下半叶以来,微电子技术得到了迅速发展,集成电路设计和工艺技 术水平有了很大的提高,单片集成度中每片已能包含上亿个晶体管,手持式的嵌 入式信号采集和处理系统的性能得到了极大的提升,使得其有机会应用于许多更 高端的科技领域。 在现代雷达系统、激光测距以及高能物理试验中往往产生宽带信号或者上升 沿比较陡的信号( 一般l o n s 左右) 。要对此类信号进行数字化处理,要求a d 部 分的采样率至少应该在2 0 0 m s 以上。而对高频采样得到的数据存储,数据处理, 例如波形存储、波形还原显示,频谱分析等等,现阶段主要是在台式设备上实现 的,价格也较高,采样频率5 0 m 的台式数字存储示波器动辄要上万元。而现有的 手持型设备,如美国f l u k 公司的产品,非常昂贵。 本文研究基于a r m 平台的,针对2 0 0 m h z 以上的高速数据采集和显示的嵌入 斌系统设计与开发,其基本功能是利用前端f p g a 的并行特性对高速a d c 采集得 到的信号进行缓冲之后再并行传入删平台以完成对信号作进一步的处理和显 示工作。整个系统的复杂功能和资源管理利用强大的l i n u x 嵌入式操作系统进行庭 好的管理和控制实现。这种技术可以广泛应用于现代雷达系统、激光测距以及高 能物理试验等领域,同时由于操作系统的引入,其在资源管理、功能扩充、应用 程序的灵活性以及人机交互方面具有更大的便利和优势。 本章介绍了嵌入式系统的概念及其组成,简述了嵌入式技术技术在高速数据 采集领域内的优势,说明了论文的主要研究内容。 1 嵌入式系统概述 1 1 1 硬件郝分 所谓“嵌入式系统( e m b e d d e ds y s t e m ) ”,实际上是“嵌入式计算机系统”的简 称。所以,其主要还是由三大基本部分组成,那就是“中央处理器c p u 内存以 及输入输出设备。此外,当然还要有将这三部分连接起来的“总线”。 早期比较典型的结构是用微处理器微控制器加上r o m 和r a m 两种存储器以及 少量外围芯片,再通过f p g a 实现的一些“粘结”电路将它们连接在一起。而随着 f p g a 功能的日益强大,其在某些方面的特性,如并行处理特性,促使嵌入式系统 北京交通大学硕士学位论文 在高端领域有了更加深入的应用,而嵌入式系统的硬件结构也开始逐渐发生变化。 本文中的硬件结构实际上就是一个a r m + f p g a 的架构,其中充分利用了f p g a 的 并行特性,采用乒乓原理进行前端设计,同时又利用了a 蹦低功耗高性能比的特 点,将采集传入的数据在a r m 平台上加以处理和显示,从而在较低频率的a r m 平 台上实现了对高速数据的快速但低功耗的采集与显示。 1 1 2软件部分 如果嵌入式系统的功能( 如电动玩具、空调、冰箱等的简单功能需求) 比较简 单,则嵌入式软件只要完成比较简单的功能,就不需要嵌入式操作系统的支持。 如果嵌入式系统的功能比较复杂,需要网络功能、存储器管理、进程线程管理等, 则通过嵌入式操作系统的帮助,可加快嵌入式系统软件的开发进度和可靠性。 本文中,因为考虑到未来系统的便于扩展,存储资源的良好管理,应用程序中 多线程的管理和相互通讯等因素,引入了a r m l i n u x 嵌入式操作系统,其采用的内 核版本是2 4 2 0 一8 ,使用了r o m f s 的根文件系统,并引入了l c d 的字符设备驱动 程序。 1 2嵌入式高速数据采集系统的应用 根据前文的描述,如何在满足基本的数据采集处理要求的前提下,实现对高 速数据的采集,在便携、成本和功耗等方面提供更好的解决方案? 随着嵌入式系 统性能的不断提高,其为这一想法提供了可能的方案。 一方面,近年来基于f p g a 的s o p c 技术发展迅速,其基础器件f p g a 的并行特 性和硬件现场可编程特性,以及良好的高频工作能力( 就我们所使用的s t r a t i x 平台而言,已经可以稳定地达到3 0 0 m h z 的工作频率,理论上可以达到4 0 0 m h z 的 工作频率。) ,这些为实现低成本的高速采集电路设计奠定了基础。另一方面,作 为嵌入式系统设计的主流,a r m 处理器在功耗、成本功能和性能等各方面,为高速 采集的系统实现方面提供了可能。 但是如果希望仅仅采用一种技术,利用s 0 p c 的高速性来进行系统设计,或采 用较低频率的a r m 处理器进行高速采集系统的设计,在速度、成本尤其是功耗方 面存在着问题。 表l 和表2 分别列出了在不同频率下f p g a ( s t r a t i x ) 和a r m ( e p 7 3 1 2 ) 的功 耗参数。 2 引言 表ls t r a t i x 在不同工作频率下的做1 0 2 4 点f f t 运算的功耗 s t r a t i x ( e p l s l o f 7 8 0 c 6 ) 2 05 01 0 02 0 0 ( 单位:删z ) t o t a lt h e r m a lp o w e r4 5 08 0 9 4 81 4 0 7 。2 42 6 2 2 8 6 d i s s i p a t i o n ( m w ) d y n a m i ct h e r m a lp o w e r 2 4 1 7 l6 0 1 21 1 9 8 9 52 4 1 4 5 7 d i s s i p a t o n ( m w ) s t a t i ct h e r m a lp o w e r2 0 8 2 92 0 8 2 92 0 8 2 92 0 8 2 9 d i s s i p a t i o n ( m w ) 表2a r m ( e p 7 3 1 2 ) 在不同工作模式下的功耗 e p 7 3 1 2 工作模 7 4 m h zt y p i c a l1 8 m h zt y p i c a li d l es t a t e s t a n d b ys t a t e 式 功耗( m w ) 9 03 01 0 在整个系统设计与实现中,前端f p g 舟并行缓冲结构的设计、a r m 处理器独特 的f i q 中断机制、上层a r m l i n u x 的引入和应甩软件是三个关键部分。f p g a 的设计 前面已经作了详细描述;a r m l i n u x 和应用软件将在第四章作详细说明。这里,季玺 会重点介绍a r m 处理器独特的f i q 方式,以及f i q 在整个系统实现中的重要作用。 在a r m 平台应用的中断向量表设计中,快中断的“中斯向量”是8 个“中断 向量”中的最后一个,其地址是f i q _ v e c t o r 是o x l c ,它以后就再没有其它的“中 断向量”。这就实际上允许在这个位置上放上一小段程序,而不仅仅是放上一条转 移指令。这在整个“中断向量表”的安排中是独一无二的,也是寓有深意的,这 就是: 夺对快中断的响应和处理应该是一段十分紧凑的小程序,一般应该只有几条 1 1 北京交通大学硕士学位论文 汇编指令 另一方面,在特定的时段中,可能的快中断源应该尽量单一,从而可良免 去分发的过程而“开门见山”地直奔主题 从硬件方面,则为快中断模式配备了一组独立的、专用的r 8 r 1 4 寄存器。 这样,只要能保证在快中断中断处理程序中,就只使用这些寄存器,而不 使用r o a r 7 ,就可以无需保存中断现场。而事实上,在本系统的f i q 例 程设计中,正是这样做的。 实际上,快中断的设计意图与d m a 有关。一是与d m a 配合使用,借以提高d 眦 操作的效率。当d m a 控制器完成一个缓冲块的传输时就会产生一个中断请求,而 c p u 则需要相应地设置d m a 控制器,使其能继续进行下一个缓冲块的传输。c p u 的 这些操作通常只是几条指令的事,可是常规的中断响应、分发和返回的过程却需 要经过一番“长途跋涉”。显然,快中断用在这里是很合适的。二是在没有足够的 d m a 控制器可用时,用来模拟d m a 操作。如果没有d m a 控制器可用,那么最合理的 当然是采用中断驱动的i o 。可是每次中断时需要做的可能只是从外设接口读入一 个字节并写入缓冲区,这又是只要几条指令就可完成的操作,所以这又是很适合 于快中断的。 而本系统中所面临的情况正是上述的第二种情况,e p 7 3 1 2 仅有的d m a 在平台 上用在了l c d 的控制显示中。而我们如果要实现高速采集,当然,f i q 就是最合理 的选择了。e p 7 3 1 2 一共为用户提供了四类f i q 中断源类型:外部f i q 中断、电池 低电压f i q 中断、看门狗时钟中断和介质环境改变中断。在实际测试中,我们只 允许了外部f i q 中断,避免了中断分发。然后,我们通过f i q 例程( 具体程序代 码可见附录a ) 从f p g a , i b i 卖l , 2 k b 的数据,仅仅需要大约而云蒜- 4 8 8 2 8 1 2 5 9 s 的指令执行时间,避免了分发、保存和恢复现场的时间浪费。 应该承认,a r m 系统结构里“快中断”机制的设计与实现确实是相当合理丽又 相当巧妙的。而这也是个人认为r i s c 处理器比较c i s c 处理器的一个优势。 1 2 a r m 平台上的软件开发 4a r m 平台上的软件并发 4 1a r g 平台上的软件开发 在嵌入式系统中,由一个源文件交成个最终可执行的二迸制文件,一般要 经过三个过程,即编译、链接和重新定位。通过编译或者汇编工具,将源代码变 成目标文件。由于目标文件往往不止一个,所以需要用链接工具把它们链接成另 外一个目标文件,可以称其为“可重定位程序”。经过定址工具,将“可重定位程 序”变成最终的可执行文件。 一般的嵌入式系统的开发,通常采用的是主从模式:即通过串行口( 也可以 同时通过网口) ,是目标机和宿主机相连接。在开发过程中,每一个步骤都是在通 用的计算机上执行软件转换的过程。必须清楚地是,上面所说的编译器、链接器 和定址器都是在宿主机上运行的,一般是p c 上的w i n d o w s 环境,但是如果设计到 嵌入式l i n u x 的开发,还需要在p c 上运行l i n u x 环境以便开发。而最终经过编译 链接一重新定位所得到的二进制可执行文件却是在目标机上运行的,所以称其 为“交叉编译环境”。w i n d o w s 下,可以使用s d t 2 5 0 、s d t 2 5 t 或者a d s i 2 等交 叉编译环境。而l i n u x 下的话,可以选择自己构建个编译环境或者利用阿上已 经做好的工具链建立即可。为了把更多的精力放在系统的软硬件设计与实现上: 通常采用工具链建立即可。但是关于l i n u x 的版本选择,最好使用r e d h a t 系列, 因为其与a r m 上运行舶嵌入式l i n u x 系统几乎没有太大的差别,调试可以直接在 r e d h a t 环境下调试,基本上无需修改什么,交叉编译之后就可以直接下载使用了。 嵌入式应用软件和普通的应用软件有定的区别。由于嵌入式应用对成本十 分敏感,因此为减少系统的成本,除了精简每个硬件单元的成本之外,尽可能地 减少嵌入式应用软件的资源消耗也是不可忽视的重要因素。这就要求嵌入式应甩 软件不但能保证准确性、安全性、稳定性以满足应用要求,还要尽可能的优化, 减少资源消耗。 嵌入式应用软件是针对特定的实际专业领域自弘基于相应的嵌入式硬件平台 的、并能完成用户预期任务的计算机软件。用户的任务可能有时闻和精度的要求。 有一些嵌入式应用软件可能需要嵌入式操作系统的支持,但在简单的应用场合下 不需要专门的操作系统。 4 2 嵌入式操作系统概述 北京交通大学硕士学位论文 在嵌入式应用中,为了使嵌入式开发更方便快捷,系统功能升级更容易,就 需要具备相应的管理存储器分配、中断处理、任务闻通信和定时器响应。以及提 供多任务处理等功能的稳定安全的软件模块集合,即嵌入式操作系统。 嵌入式操作系统的引入大大提高了嵌入式系统的功能,方便了嵌入式应用软 件的设计。特别是l i n u x 本身就也可以被用在嵌入式计算机中,而且从2 5 4 版 开始有特别增加了针对实时应用的可剥夺调度选项( 2 5 版是“开发版”,在2 6 版中该功能已经得到了很好的实现) 。 般来说,嵌入式操作系统有实时与非实时,微内核和一体化内核的差别, 而大多数嵌入式操作系统是实时的微内核结构的操作系统,而我们系统设计所用 到的a r m l i n u x 系统则是一个非实时的一体化内核系统。 所谓实时系统,是指在这种系统中,一个优先等级高的任务能够获得立即的、 没有延迟的服务,不需要等候其他优先级低的任务,而且在它得到c p u 的使用权 后,它可以一直执行到工作结束或是有更高等级的进程出现为止。在b o r k of u r h t 、 d a v i dg l u c h 等著的r e a lt i m eu n i xs y s t e m sd e s i g na n da p p l i c a t i o ng u i d e 一书里为“实时系统”下了一个十分简明的定义:“实时系统是指一个系统在执行 时能够对外部发生的事务,在一定的时间采取响应”为了满足这样的要求,高效 的中断处理能力与高速的输入输出能力是实时系统所必备的基本特征。而我们这 里所涉及的系统因为e p 7 3 1 2 有限的处理能力,所以并不具备采用实时系统的条件。 目前常见的实时嵌入式操作系统有v x w o r k s 、p s o s 、u c o si i 等等,而非 实时的嵌入式操作系统则有w i n d o w sc e 、p a l mo s 、嵌入式l i n u x 系列等。 而为了尽可能地减小操作系统内核在系统资源中占据的“地盘”大小以及“不 可剥夺”窗口的大小,以得到更好的系统性能,把内核中的部分内容移到内核外 面,作为服务进程运行,并通过进程间通信机制在要求服务的迸程与提供服务的 进程之间建立起一种“客户服务员( c 1 i e n t s e r v e r ) ”关系。这样,就可以由一 些服务进程,而不是内核中的有关模块,来为应用程序提供服务。但是内核仍可 以把这个细节隐去,让应用程序以为服务的要求是交给了内核,面碍到的服务也 是由内核提供的。按这样的思路设计和实现的操作系统内核,由于很多成分已经 独立出去成为进程,或者移到外面变成静态库函数或动态链接库,就可以比传统 的内核小很多,而且简单很多,所以称之为“微内核( m i c r o - k e r n e l ) ”。与此相 对,传统方式的内核因为把什么东西都连成一体,所以称为。一体化内核 ( m o n o l i t h i c k e r n e l ) ”,也可以称为“宏内核”。 u c 0 si i 就是微内核的经典代表,而l i n u x 则是一体化内核的典型。 4 3系统软件部分希望实现的目标 1 4 a 瑚平台上的软件开发 在本系统的设计当中,我们希望能够实现以下的一些目标: 1 ) 有效地管理前端的硬件工作; 2 ) 友好的用户界面,方便用户操作,动态定义采样频率、触发阈值、波形放 大缩小以及实现更多的功能控制; 3 ) a r m 从f p g a 读出数据到固定的内存区域,同时希望系统应用程序的运行不 可有越界覆盖该数据的问题发生,这就要求系统要有内存管理的功能; 4 ) 希望将f p g a 前端数据读取以一种高速的方式读入a r m 平台,并作一定的 数据处理之后显示; 5 ) 希望系统后续外围设备扩充方便,功能升级便捷。例如,如果要扩展加入 r t l 8 0 1 9 a s 网卡芯片以实现n f s 等目标; 6 1 要尽可能的降低开发和应用成本。 根据这些设计目标,我们做了以下的方案选择。 4 4 选取a r m lin t l x 作为解决方案 4 4 1如何选择伞嵌入式操作系统 我们可以知道,一个有操作系统的嵌入式系统是比较容易实现4 3 所述目标 的方案,所以我们需要为这个系统添加一个操作系统以保证这些复杂功能和目标 的完整实现。 而对于评估一种嵌入式操作系统通常有这样一些评估选择标准:实用位、需 要消耗的资源数( 指各种存储设备资源等) 、支持软件的丰富程度、可靠性以及其 执行性能等。下面我将一一评述: 实用性 这里主要是指嵌入式操作系统对平台处理器的支持与否。毫无疑问,这是一 个决定性的因素。为一个或一种处理器从头开发一种操作系统,从成本和工作量 上来说,耗费都是相当巨大豹,通常市场或研发进度是不提倡甚至不允许这样去 做的。而从现有的操作系统当中选取已经成熟的,可 ;1 直接移植或者只需要很少 量的改动就可以在开发平台处理器上运行的操作系统,无疑成为工作的首选。 在l i n u x 内核的源代码中就已经有针对各种不同处理器的硬件适配层,都在 “a r c h ”目录下面,其中就包括a r m 。但考虑到其还不能充分地覆盖各种a r m 芯 片在各方面的功能和部件,于是就有人以“补丁”的形式提供对“原版”l i n u x 的 各种修改和补充。其中由r u s s e l lk i n g 和n i c op i t r e 两个人所主持维护的版本, 是专门以a r m 为目标的,并且得到了广泛的采用和认同。本文采用的所有代码和 北京交通大学硕士学位论文 设计都是基于其维护的a r m l i n u x 版本。 资源占用量 在嵌入式系统开发中,资源需求量是另一个关键性的问题。因为开发者都知 道,在嵌入式系统中考虑到体积和成本的问题,任何资源都是能省即省,尽可能 小的,这也是嵌入式开发和一般p c 开发的根本区别之一。任何操作系统都要消耗 一定的资源,比如用非易失性的f l a s h 来存放系统内核和文件映像,运行时占用 一定的内存空间等等。而资源消耗过多的一些操作系统,在嵌入式设备领域,出 于对资源的敏感性,其是不适合被采用的。 软件资源是否丰富 嵌入式操作系统的选择有时并不是因为它具有多少优良的性能,开发者看中 的是它有多少支持的软件资源,在后续的开发和系统升级中能给开发者和用户带 来多少的便利。如同选择w i n d o w s 作为桌面系统的用户,除了因为其易操作性, 更多的是因为其拥有丰富各类应用或者开发软件资源支持以及许多类别的处理器 支持。 而且由于一些嵌入式开发和p c 平台开发的交叉性,开发者往往希望能够在功 能强大的p c 上进行某些软件的开发调试之后能够直接或者尽可能少地修改之后就 可以移植到嵌入式系统中使用,所以一些平台差异小的嵌入式操作系统往往更受 青睐,比如l i n u x 。 操作系统本身的功能完备程度 一个嵌入式操作系统本身具有什么样的功能支持是需要考虑的另一个方面。 在选择操作系统时开发者通常希望他们所要求的功能已经在操作系统有了最大限 度的支持,这样他们在用户层就只需要做很少的工作,这样可以省去不必要的重 复劳动的时间,也可以最大限度地保证程序的可靠性和稳定性。一个典型的例子, 如果系统上要求实现以太网的支持,而所选择的操作系统不带有t c p i p 协议栈, 开发者将不得不自己去实现该协议栈,这是相当耗时的工作,而且假如没有充分 的功能和性能验证,开发者也无法确保自己所开发的协议栈能稳定可靠地工作。 操作系统的执行性能和可靠性 嵌入式系统常常是在无人照看甚至人迹不至的地方运行的,而资源宝贵的嵌 入式系统也希望通过适当地配置和管理从而最大限度的发挥其硬件性能。所以嵌 入式操作系统的执行性能和可靠性也就成为开发中需要考虑的另外两个重要方 面。之所以要在嵌入式操作系统的选择时慎重考虑这个问题,是因为操作系统的 可靠性通常无法在用户程序或者函数库层次得到增强。操作系统的稳定性在操作 系统设计之初,就已经由系统的设计构想和编码质量决定了。我们不能保证一个 稳定可靠的程序在一个不稳定的操作系统上能够稳定的运行。甚至可能发生这样 1 6 a 删平台上的软件开发 一种情况,开发者在遇到问题的时候无法确定是程序的问题还是操作系统的问题, 这是所有开发都不希望遇到的情况,因为要调试一个内核并不是一件容易的事。 对于以上的指标有了一定的认识之后,我们可以考虑l i n u x 是否有可能成为 嵌入式操作系统。 l i n u x 是一种开放源代码的操作系统,而l i n u x 下的软件几乎都遵循g p l 版权 协议,这样几乎所有的源代码都可以免费获得并免费使用:l i n u x 已经被移植到了 很多平台,成千上万的爱好者为其开发了大量的应用软件、协议栈以及丰富的设 备驱动程序,这些代码都是以o p e l ls o u r c e 的形式发布出来的,任何人都可以从 中受益。更重要的是,针对a r m 的l i n u x 维护小组提供的嵌入式l i n u x 代码提供 了对a r m 大多数系列处理器的良好支持,其中也包括我们系统设计中要使用到的 e p 7 3 1 2 处理器。另一方面,l i n u x 在服务器、网络处理能力、文件系统管理、内 存管理和进程管理方面的表现非常出色,由此我们不需要怀疑l i n u x 系统的可靠 性。 通常嵌入式设备的开发者对于成本相当敏感,l i n u x 的免费获得源代码并免费 使用,无疑具有很大的吸引办。 l i n u x 的编程接口是u n i x 形式的,这使得原先为u n i x 写的众多软件只要很少 的改动甚至只要重新编译一下就可以直接在l i n u x 平台上进行。在过去的几十年 中,人们为各种u n i x 系统编写了大量的软件,而这些软件又极大地丰富了l i n u x 平台上的软件资源和软件应用。 由此看来,我们选择嵌入式l i n u x 进行系统设计和开发,在成本、功能实现和系 统扩展升级上都是比较好的选择。但在嵌入式l i n u x 中,又有不同的变种,比如 r t l i n u x 、k u r t 、a r m l i n u x 、u c l i n u x 、p r e e m p tl i n u x 、t i m e s y sl i n u x 等等。其 中我们日常开发应用最广泛,接触得最多的要数a r m l i n u x 和u c l i n u x 两类。 4 4 2u c l i n u x u c l i n u x 同标准l i n u x 的最大区别在于内存管理和执行文件格式两个方面。而 后者也可以说是因为前者带来的差异结果。对于u c l i n u x 来说,其设计是针对没 有删的处理器,不能使用虚拟内存管理技术。u c l i n u x 对内存的访问是直接的, 即它对地址的访问不需要经过m m u ,而是直接送到地址线上输出。所有程序中访阎 的地址都是实际的物理地址,u c l i n u x 对内存空间不提供保护,各个进程实际上共 享一个运行空间。在实现上,u c l i n u x 仍采用存储器的分页管理,系统在启动时把 实际存储器进行分页,在加载应用程序时,程序分页加载。但是由于没有m m u 管 理,所以u c l i n u x 采用实存储器管理( r e a lm e m o r ym a n a g e m e n t ) 策略,这一点 1 7 北京交通大学硕士学位论文 影响了系统工作的很多方面,比如因为这种“平板式”的结构,u c l i n u x 下的执行 文件需要是f l a t 格式,而不同于l i n u x 的标准格式,所以其所有的应用程序在交 叉编译环境编译完成的最后环节还需要进行格式的转换,否则无法在u c l i n u x 平 台上运行。 4 4 3a r m l i n u x 顾名思义,这是专门针对a r m 移植的l i n u x 系统,因此在下面的叙述中,在 不会引起混淆的情况下,我将不区分。a r m l i n u x ”或者“专门应用于a r m 上l i n u x 系统”二者的说法。 本来,在l i n u x 内核的源代码中就已经有针对各种不同处理器的硬件适配层, 都在“a r c h ”目录下面,其中就包括a r m 。但是那还不够,还不能充分地覆盖各 种a r m 芯片在各方面的功能和部件。于是就有人以“补丁”的形式提供对“原版” l i n u x 的各种修改和补充。其中由r u s s e l lk i n g 和n i c ep i t r e 两个人所主持维护 的版本,是专门以a r m 和s a 1 1 1 0 处理器为目标的,并且得到了广泛的采用和认 同。 a r m l i n u x 支持舢管理,另外在其平台上运行的程序是e l f3 2 一b i tl s b e x e c u t a b l e ,a r m 格式,也即是说一个应用程序只需要在r e d h a t 的交叉编译环境 下编译一次之后,无须转换格式,直接就可以下载到a r m l i n u x 平台上运行使用。 这也是a r m l i n u x 与u c l i n u x 最大的差别。 根据我们系统设计的目标( 我们希望能在多进程的前提下保证内存使用的安 全可靠) ,所以我们最终选择了a r m l i n u x 作为系统解决方案。 4 5 a r m l i r u x 应用于嵌入式系统 我们选择了a r m l i n u x 作为系统解决方案,其在内存管理、进程管理、中断响 应和处理等方面是有别于别的操作系统和不带操作系统的a r m 平台的。在a r m l i n u x 中,内存是如何被管理的,用户空间与系统空间的关系,中断响应如何处理,在 a r m 的f i q 模式下所作的内存写,其内容如何被用户进程所获取并显示,这些问题 都是本系统实现的关键。因此,在这里也有必要对a r m l i n u x 的系统机制作一些探 究。 1 8 a 跚平台上的软件开发 4 5 1a r m l i n u x 的内存管理, 内存管理的复杂之处就在于地址映射和页面交换,而地址映射又是通过“内 存管理单元”删来实现的,不采用地址映射就不需要姒u 。是否使用m m u 并且区 分不同的运行模式,本质上是不同的,对整个系统的结构有着根本性的深远影响, 这是因为对空间的保护必须通过m m u 才能实现。内存管理,特别是地址映射,是 操作系统内核中比较复杂的一个成分,甚至可以说操作系统内核的复杂性相当程 度上来自内存管理。另一方面,由于内存管理,内核所起的作用也有了增强。在 不采用内存管理的系统中,内核的作用实际上局限于为高层应用提供服务,更类 似于共享的库程序。而采用了内存管理之后,内核又起着某种“禁区”的作月手。 进一步,内核还在进程调度和切换过程中起着“中转站”的作用,因为不同的进 程在不同的空间中运行,切换空间的过程必须通过一个“公共场所”才能完成。 而地址映射机制的实现又与具体c p u 和m m u 的结构息息相关,所以,虽然总的来 说都同在l i n u x 的内存管理框架下,不同的系统结构会导致不同魄l i n u x 内存管 理机制实现。 a r m 处理器的地址同x 8 6 一样,也是3 2 位( 早期采用2 6 位) ,所以虚拟地址 的总容量也是4 g b 。恫样,a r m l i n u x 内核也把这4 g b 虚拟地址空间划分成了系统 空间和用户空间两部分。本系统中,因为e p 7 3 1 2 的s d i m m 板块的起始地址就是 0 x c 0 0 0 0 0 0 0 ,所以系统空间的起始地址也采取了同x 8 6 一样的分割,都是从3 g b 开始的1 g b 空阿。这可以从本系统所采用的a r m l i n u x 冉核的 i n c l u d e a s m a r c h - c l p s 7 1 l x m e m o r y h 的下列常数看出: # d e f i n et a s ks i z e( o x c o o o o o o o u l ) # d e f i n ep a g e _ o f f s e t ( o x c o o o o o o o u l ) # d e f i n ep h y s _ o f f s e t ( o x c o o o o o o o u l ) 常数t a s k s i z e 表示每个进程的甩户空间大小,实际上也就是其虚拟地址白勺 上限。3 g b 以上则属于系统空间。常数p h y s _ ( f f s e t 表示内存的物理地址是从该处 开始的。 通过阅读源代码,我们可知系统在i n c l u d e a s m p a g e h 等文件中定义了在系 统空间中虚拟地址和物理地址在数值上是相同的。至于用户空间的地址映射,那 就得动态地根据需要分配物理内存,并且建立起具体进程的虚拟地址和所分配物 理内存问的映射。 此外,a r m 与x 8 6 的系统结构还有一个重要的区别,那就是把i o 也放在内存 地址空间申,所以系统空间的一部分虚拟地址不是映射到物理内存,而是映射到 一些i o 设备,包括寄存器和一些小块的存储器。正因如此,本系统在设计程序 1 9 北京交通大学硕七学位论文 并运行的时候,在做寄存器访问的过程中,需要考虑一个地址映射的问题。 那么,这些映射是怎样建立,又是怎样运行的呢? 要了解a r m l i n u x 内核中地 址映射的实现,首先我们需要先说明一下a r m 处理器的地址映射机制。 在a r m 系统结构中,地址映射可以是单层的按“段( s e c t i o n ) ”映射,也可 以是二层的按页面映射。段的大小是1 m b ,而页面的大小可以选择6 4 k b 的“大页 面”,或者4 k b 的“小页面”。 采用单层的段映射时,内存中有个“段映射表”,表中有4 0 9 6 个表项,称为 “段描述项”或“首层描述项”每个描述项的大小是4 个字节,所以区段映射表, 或称首层映射表的大小是1 6 k b ,而且其位置必须与1 6 k b 边界对齐。当c p u 访问内 存时,其3 2 位虚拟地址的高1 2 位被用作访问段映射表的下标,从表中找到相应 的表项。每个表项提供了一个1 2 位的物理段地址,以及对这个段的访问许可标志, 例如可读可写等等。将这1 2 位物理段地址与虚拟地址中的低2 0 位拼接在一起, 就得到了3 2 位的物理地址。当然,整个过程都有眦u 硬件完成,而无需c p u 介入。 如果采用高速缓存( t l b ) ,则高速缓存在地址映射之前,c p u 通过虚拟地址在高速 缓存中寻求命中,不能命中才通过地址映射访问物理内存 如果采用页面映射,“段映射表”就成了“首层( 页面) 映射表”,其表项提 供的不再是物理段地址,而是相应“二层映射表”所在的地址。凡是首层映射表 中有映射的表项都对应着一个二层映射表。二层映射表的大小因页面映射的“大”、 “小”而异。如果是4 k b 的页面,则二层映射表中有2 5 6 个表项。当c p u 访问内 存时,映射的过程如下: 1 ) 以3 2 位虚拟地址的高1 2 位( b i t 2 0 “b i t 3 1 ) 作为访问首层映射表的下标, 从表中找到相应的表项,每个表项指向一个二层映射表; 2 ) 以虚拟地址中的次8 位( b i t l 2 b i t l 9 ) 作为访问所得二层映射表的下标, 进一步从相应表项中取得2 0 位的物理页面地址: 3 ) 最后,将此2 0 位的物
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高级护理实践技能考试指南及模拟题集
- 大型活动志愿者招募致辞模板
- 2025年机动车检测面试高频题
- 2025年企业经营管理总监管理智慧考核试卷及答案解析
- 2025年美术教育教师水平测试试题及答案解析
- 2025年旅游规划师专业技能测验试题及答案解析
- 2025年税务师事务所招聘考试题目解析与指导
- 2025年检察官资格考试试题及答案解析
- 2025年文联会计准则考试模拟题及题库
- 课件中使用花括号
- CJ/T 242-2007城市客车外置式制动间隙自动调整臂
- T/CSPSTC 106-2022水工建筑物表面位移机器视觉在线监测技术规程
- 衡阳市物业服务收费管理实施细则
- 灾后重建生态修复建设林草植被恢复项目实施方案
- 缴纳社保免责协议书
- 《癫痫持续状态》课件
- 2025-2030在线语言教育行业发展分析及前景趋势与投资研究报告
- 骨干教师培训讲座内容
- 软件售后季度工作总结
- toc培训课件教学课件
- 菌毒种或样本等感染性材料管理制度
评论
0/150
提交评论