




已阅读5页,还剩51页未读, 继续免费阅读
(测试计量技术及仪器专业论文)基于at91rm9200的嵌入式数据采集仪设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京邮电大学硕士研究斑学位论文 摘娶 摘要 随着经济的持续高速发展,环境污染已经成为不可忽视的问题。为了提高环保管理自 动化、信息化水平,更好地实现对重点污染源的自动远程监控管理,不断完善监控系统中 各种设备的性能是个行之有效的方法。传统数据采集仪的性能指标已经不能满足实际需 要,a r m 技术不断成熟,移动遴信技术及嵌入式操作系统也获得突飞猛进的发展,给研发 该类设备提供了更好的技术支持。 本论文针对某企业在污染源自动监控系统中对数据采集仪提出的需求,采用嵌入式微 处理器船9 l r 鹾9 2 0 0 缝合嵌入式l i n u x 操 乍系统以及g p r s 无线透信技术,设计并实现了 种新型数据采集仪。与传统单片机实现的数据采集仪相比,该数据采集仪其有更强的处理 能力和优越的通信方式。 本论文研究分柝了嵌入式系统的体系结构、选择操作系统的要素和l i n u x 内核启动代 码。总绐了内核移植方法并把b o o tl o a d e r 和a r m - l i n u x 内核移植到数据采集仪平台,接 着制作根文件系统,实现了l i n u x 操作系统在数据采集仪上的运行。设计a d 采集模块的 原理图并编写了它的驱动程序。最后给出数据采集仪的整体设计方案,并实现了各个功能 模块。 关键词:数据采集;嵌入式系统;l i n u x :a t 9 1 r m 9 2 0 0 ;移檬 南京邮电大学硕士研究擞学位论文a b s t r a c a bs t r a c t a l o n gw i t ht h ed e v e l o p m e n to fe c o n o m y ,e n v i r o n m e n tp o l l u t i o nh a sb e c o m eav e r y s e r i o u sp r o b l e mo ft h es o c i e t y 。i no r d e rt oe n h a n c et h ea u t o m a t i o n ,i m p r o v et h e i n f o r m a t i o nl e v e l ,a n da u t o m a t i c a l l yr e m o t e c o n t r o la n d m a n a g et h ep o l l u t i o n s o u r c e st h a tm a ye f f e c tt h ed a il yli f em o s ts e v e r e l y ,i m p r o v i n gt h ep e r f o r m a n c e o f8 王lk i n d so fe q u i p m e n t si nm o n i t o rs y s t e mi sau s e f u lm e a s u r e m e n t 。t r a d i t i o n a l d a t aa c q u i r e m e n ti n s t r u m e n t sc a nn o tm e e tt h ea c t u a lr e q u i r e m e n t s 。i nr e c e n ty e a r s a r mt e c h n o l o g yh a sg a r a d u a l l yb e c o m em o r ea n d m o r em a t u r e l y ,a l s om o b i l e c o m m u n i c a t i o nt e c h n o l o g ya n de m b e d d e do sh a v ea p p r o a c h e da r e m a r k a b l ed e v e l o p m e n t , s oi tp r o v i d e su sm o r ea d v a n c e dt e c h n o l o g ys u p p o r tf o rt h er & do ft h i sk i n do f e q u i p m e n t s a c c o r d i n gt ot h er e q u i r e m e n to fd a t aa c q u i r e m e n ti n s t r u m e n t sa p p l i e di na u t o m o n i t o rs y s t e mo fp o l l u t i o ns o u r c e s ,t h ea u t h o ru s e de m b e d d e dm i c r o p r o c e s s o r a t 9 1 r m 9 2 0 0c o m b i n e dw i t he m b e d d e dl i n u xo sa n dg p r sr a d i oc o m m u n i c a t i o nt e c h n o l o g y t od e s i g na nn e ws t y l eo fd a t aa c q u i r e m e n ti n s t r u m e n t 。i nc o m p a r i s o nw i t hd a t a a c q u i r e m e n ti n s t r u m e n tc a r r y i n go u to ns c m ,i th a sb e t t e rp r o c e s s i n ga b i li t ya n d s u p e r io rc o m m u n ic a ti o nm o d e t h ep a p e ra n a l y s e dt h es t r u c t u r eo fe m b e d d e do s ,o sc h o o s i n ge s s e n t i a l sa n d l i n u xk e r n e lb o o t i n gc o d e s i ts u m m a r i z e dk e r n e l p o r t i n gw a y s ,a n dp o r t e dt h e k e r n e lo fb o t hb o o tl o a d e ra n da r m l i n u xt od a t aa c q u i r e m e n tp l a t f o r m 。t h e ni t b u il tr o o tf il es y s t e m ,r a nl i n u xo so nt h ed a t aa c q u i r e m e n ti n s t r u m e n t a f t e r t h a t ,i td e s i g n e df u n c t i o nb l o c k so fa ds a m p l i n gm o d e ,a n dc o d e dt h ed r i v e r i n t h ee n d ,t h ep a p e rp r o v i d e dt h ew h o l es o l u t i o no fd a t aa c q u i r e m e n ti n s t r u 精e n 专s a n dc o m p l e t e da l lf u n c t i o nm o d u l e s k e y w o r d s :d a t aa c q u i r e m e n t ;e m b e d d e do s :l i n u x ;a t 9 1 r m 9 2 0 0 ;p o r t h 南京邮电大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究 工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得南京邮电大学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了 明确的说明并表示了谢意。 研究生签名:日期: 南京邮电大学学位论文使用授权声明 南京邮电大学、中国科学技术信息研究所、国家图书馆有权保留 本人所送交学位论文的复印件和电子文档,可以采用影印、缩印或其 他复制手段保存论文。本人电子文档的内容和纸质论文的内容相一 致。除在保密期内的保密论文外,允许论文被查阅和借阅,可以公布 ( 包括刊登) 论文的全部或部分陡容。论文的公布( 包括刊登) 授权 南京盘电大学研究生部办理。 一繇一一各叫 南京邮f u 大学硕l j 研究生学位论文 第一章绪论 1 1 课题的背景和意义 第一章绪论 1 1 。1污染源自动监控系统简介 为了实现对污染源的自动远程监控管理功能,提高环保管理囱动化、信息他水平,环 保部门采用污染源自动监控系统对重点工业污染源进行在线自动监测。 污染源翻动监控系统如图1 1 所示,本课题的嵌入式数据采集仪系统是污染源自动监 控系统的一个重要组成部分。 上位机 一_ 一_- 一_ _ _ 传输网络 一_ 一 现场监测 _ _ i 一_ 一_ _ 一一一 c o d 分析馊圭e o d 分析仪2 流量计l瀛量计2 图1 1 亏染源自动监控系统图 污染源自动监控系统从底层逐级向上可分为现场监测仪器、数据采集仪、传输网络和 上位机四个层次。 最底层的监测仪器安装在污染源摊放口现场,包括c o d 分析仪、t o c 分析仪、流量计等, 一 一一一一一一 一 一一一一一一 一一 一一一一 - 一一一 一 南窳邮电大学硕: 研究生学钕论文 第一章缀论 它们负责采集污染源的各类数据。另外开关量电路也在现场监测仪器层,用于监视环保设 备的开关机情况,如水泵电机,曝气池电机等。 数据采集仪是监测仪器和上位机联系的重要环节。它负责指令的下发和数据的上传。 数掘采集仪读取监测仪器的监测数据和环保设备开关机状态值,然后通过传输网络上传给 数据中心,同时接收上位机的控制指令向下发送给监测仪器。 传输网络是数据采集仪和上位机通信的媒介。 上位机相当于监控中心,负责向下发送控制指令,从数据中心接收数据采集仪上传的 数据进行处理,如:各种数据储存,生成数据报表等,以实现对污染源的监控。 1 1 2 嵌入式系统的体系结构及其特点 嵌入式系统己成为当今最为热门的领域之一,它迅猛的发展势头弓| 起了社会各方面人 士的关注。如家用电器、手持通信设备、信息终端、仪器仪表、汽车、航天航空、军事装 备、制造工业、过程控制等。按照电器工程协会的定义,嵌入式系统是雳来控制或者监视 机器、装置、工厂等大规模系统的设备。这个定义主要是从嵌入式系统的用途方面来进行 定义的。 那么,再来看一个在多数书籍资料中的关于嵌入式系统的定义:嵌入式系统是指以应 用为中心,以计算机技术为基础,软件硬件可剪裁,适应应用系统对功能、可靠性、成本、 体积、功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入 式搡作系统以及用户应用软件等部分组成。它具有“嵌入性”、“专用性”与“计算机系统” 的三个基本要素。 从这个定义可以看出,人们平常所广泛使餍的手机、p d a 、m p 3 、机顶盒都属于嵌入 式系统设备;而车载g p s 系统、机器人也是属于嵌入式系统。嵌入式系统已经进入了人们 生活的方方面面。 嵌入式系统作为一类特殊的计算机系统,般包括以下3 个方面:硬件设备、嵌入式 操作系统和应用软件。它们之间的关系如图1 2 所示。 硬件设餐包括嵌入式处理器和外围设备。其中的嵌入式处理器( c p u ) 是嵌入式系统 的核心部分,它与通用处理器最大的区别在于,嵌入式处理器大多工作在为特定用户群所 专门设计的系统中,它将通用处理器中许多由板卡完成的任务集成到芯片内部,从而有利 于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。 外围设备是嵌入式系统中用于完成存储、通信、调试、显示等辅助功能的其它部件。 目前常用的嵌入式外围设备按功能可以分为存储设备( 血h r a m 、s r a m 、f l a s h 等) 、通信设 2 南京邮电大学硕士研究生学位论文 第一颦绪论 各( 空i r s - 2 3 2 接口、s p i 接口、以太网接翻等) 和显示设备( 如显示屏等) 3 类。 应需软件 o 嵌入式操作系统 o 硬件设备 嵌入式处理器fl 外围设备 图1 2 嵌入式体系结构图 嵌入式操作系统不仅具有通用操作系统的一般功能,如向上提供对用户的接口( 如库 函数、a p i 等) ,向下提供与硬件设备交互的接口( 硬件驱动程序等) ,管理复杂的系统资 源,同时,它还在系统实时性、硬件依赖性、软件固化性以及应用专用性等方面,具有更 加鲜明的特点。 应用软件是针对特定应用领域,基于某一固定的硬件平台,用来达到用户预期鹜标麴 计算机软件。出于嵌入式系统自身的特点,决定了嵌入式应用软件不仅要求做到准确性、 安全性和稳定性等方面需要,而且还要尽可能地进行代码优化,以减少对系统资源的消耗, 降低硬件成本。 嵌入式系统的特点: 1 ) 面向特定应用的特点。嵌入式系统与通用型系统的最大区别就在于嵌入式系统大 多工作在为特定用户群设计的系统中,因此它通常都具有低功耗、体积小、集成度高等特 点,并且可以满足不同应用的特定需求。 2 ) 嵌入式系统的硬件和软件都必须进行离效地设计,量体裁衣、去除冗余,力争在 同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争 力。 3 ) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片 或革片机本身中,丽不是存储于磁盘中。 4 ) 嵌入式- 开发的软件代码尤其要求高质量、高可靠性,由于嵌入式设备往往处在无 人职守或条件恶劣的环境下,因此,其代码必须有更高的要求。 5 ) 嵌入式系统本身不具备二次开发能力,即设计完成后用户通常不能对其中的程序 3 南求邮电大学硕士研究生学位论文 第一章绪论 功熊进行修改,必须有一套开发工具和环境才能进行再次开发。 1 1 3g p r s 技术 g p r s ( g e n e r a lp a c k e tr a d i os e r v i c e ,通用分组无线业务) 是构架在传统g s ( g l o b a l s y s t e mf o rm o b i l ec o m m u n i c a t i o n ,全球移动通信系统) 网络之上的一种标准 化的分组交换数据业务,它可以提供高达1 1 5 k b p s 速率的分组数据业务,从而使得包括 图片、话音和视频的多媒体业务在无线网络中的传输成为现实。g p r s 采用分组交换技术, 在通信的过程中不需要建立和保持电路,符合数据通信突发性的特点,并且呼叫建立时间 很短。 g p r s 的主要特点: 1 ) g p r s 采用分组交换技术,高效地传输高速或低速的数据和信令,优化了对网络资 源和无线资源的利用。 2 ) 支持中、高速率数据传输,可提供9 。0 5 _ 一1 7 1 2 k b i t s 的数据传输速率( 每用 户) 。g p r s 采用了与g s m 不同的信道编码方案,定义了c s - i 、c s 一2 、c s - 3 和c s - 4 四 种缡码方案。 3 ) g p r s 网络接入速度快,提供了与现有数据网的无缝连接。 4 ) g p r s 支持基于标准数据通信协议的应用,可以和王p 网、x 。2 5 网互联互通。支 持特定的点到点和点到多点服务,以实现一些特殊应用如远程信息处理。g p r s 也允许短 消患业务( s m s ) 经g p r s 无线信道传输 5 ) g p r s 的设计使得它既能支持间歇的爆发式数据传输,又能支持偶尔的大量数据的 传输。它支持四种不同的q o s 级别。g p r s 能在0 。5 一- 1 秒之内恢复数据豹重新传输。 6 ) g p r s 的核心网络层采用i p 技术,底层可使用多种传输技术,很方便地实现与高 速发展的王p 网无缝连接。 以前的数据采集仪是使用单片机实现的。由于单片机具有速度慢,数据处理能力低, 茏其是对浮点数的处理能力不够,矫设功能少不易扩展等缺点,性能指标不能满足实际需 要。南京德宏数码有限公司根据市场需求,提出了开发新型数据采集仪的设想。 本课题就是利用3 2 位的赢端微处理器a t 9 1 r m 9 2 0 0 结合嵌入式l i n u x 操作系统f f i g p r s 无 线通信技术来为南京德宏数码有限公司开发新型数据采集仪。 1 2 本课题研究意义 ( i ) 本课题的数据采集仪系统采雳基- t a r m 9 体系结构的3 2 位的嵩端微处理器 4 南京邮i u 人学硕f j 研究生学位论文 第一章绪论 a t 9 1 r m 9 2 0 0 作为c p u ,克服了单片机速度慢,数据处理麓力不够,不易进行功能扩展等缺 点,使数据采集仪的数据处理能力等性能有了犬幅提高。 ( 2 ) a t 9 1 r m 9 2 0 0 具有丰富的外设,加上我们选焉的嵌入式l i n u x 操作系统是采黑模块 机制,为今后数据采集仪的功能扩展和升级提供了极大的方便,避免了重复开发。 四个可编程的外部时钟信号; 系统定时器,包括溺期中断定时器、看门狗定时器和秽计数器; 具有闹钟中断的实时时钟; 专丽调试单元,两线u a r t 的调试通道; 有8 个优先级的高级中断控制器,独立的可屏蔽中断源; 7 个外部中断源和1 个快速中断源; 4 个3 2 位并行i 0 控制器,多达1 2 2 个i o 端口,每个端口具有输入变化中断和开漏 能力: ,2 0 通道的外设数据控制器( d m a ) ; 5 ) 1 0 1 0 0b a s e - t 以太网m a c 接口 独立的媒体接n m m i 或简化的独立媒体接d r m m i ; 发送和接收分别集成了2 8 字节的f i f o 和专用d m a 通道; 6 ) u s b 2 。o 全速( 1 2m b p s ) 主端口 片内收发器; 集成f i f o 和专用d m a 通道; 7 ) u s b 2 o 全速( 1 2m b p s ) 设备端口 片内收发器; 2 k b 可配置集成f i f o ; 8 ) 彩媒 本卡接口m c i 萝 自动协议控制和快速数据传输; 兼容m m c 和s d 存储卡,最多支持2 个s d 存储卡: 9 ) 3 个同步串行控制器s s c 每个发送器翻接收器都有单独的时钟和帻同步信号; 支持1 2 s 模拟接口和时分多任务; 支持3 2 位的离速数据流传送; 1 0 ) 4 个通用同步异步收发器u s a r t 3 南京邮电大学硕士研究生学位论文 第二章数嘏采集仪硬件开发平台和操作系统选择 支持i s 0 7 8 1 6t o t 1 智能卡; 硬件和软件握手协议; 支持r s 4 8 5 ,i r d a 通信速率可达11 5 k b p s u s a r t i 口包括一个完整m o d e m 的所有控制信号: 1 1 ) 主放s p i 爱 数据长度可编程8 - 1 6 位; 4 条外部片选线; 1 2 ) 2 个3 通道的1 6 位定时器计数器模块 1 3 ) t w i 两线端叠 支持主模式; 支持a t m e l 公司所有两线串行e 辨r 铡; 1 4 ) 所有数掘引脚支持边界扫描功能 l5 ) 2 0 8 - ie a dp q f p 或2 5 6 - b a ilb g a 封装 2 。2 操作系统选择 硬件平台确定之后,再进行操作系统的选择。硬件环境的不同,会影响操作系统的选 择。可焉于嵌入式系统的操作系统很多,僵关键是如何选择一个适合丌发顼髫的操作系统。 在选择操作系统时主要考虑下面几种因素: ( 1 ) 操作系统提供的开发工具。有些实时操作系统( 如:r t o s ) 只支持该系统供应商 的开发工具,因此,还必须向操作系统供应商获取编译器、调试器等,而有些操作系统使 用广泛,且有第三方工具可用,使用起来比较方便。 ( 2 ) 操作系统向硬件接口移植的难度。操作系统到硬件的移植是个重要的问题, 是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度离的操 作系统,避免操作系统难以向硬件移植而带来的种种困难,加速系统的开发进度。 ( 3 ) 搽作系统的内存要求。 ( 4 ) 操作系统是否提供通用硬件的驱动程序,如网卡等。 ( 5 ) 操作系统的可剪裁性。有些操作系统具有较强的可剪裁性,如嵌入式 l in u x ,v x w o r k s 等等。 ( 6 ) 操作系统的实时性能。 嵌入式l i n u x 操作系统有如下优势: ( 1 ) 低成本开发系统 9 南泶邮 也人学石厦0 研究生学位论文 第二章数搬采集仪硬件开发平台糊操作系统选择 许多商业操作系统妻n w i n d o w ,w i n d o wg e 对操作系统收取一定的许可涯费用。丽l i n u x 是个免费软件,且公开源代码。只要不违反g p l 协议,我们就可以自e l j 的应用和发布 l i n u x 。这将会为我们节省大壁的开发费焉。 ( 2 ) 可定制的内核 l i n u x 具有独特的内核模块机制,它可以掇据用户的需要,实时地将某些模块插入到 内核中或者从内核中移走,并能根据嵌入式设备的个性需要量体裁衣。经裁减的l i n u x 内 核最小可达g u l 5 0 k b 以下,尤其适合嵌入式领域中资源受限的实际情况。 ( 3 ) 丰富的开发工具 l i n u x 拥有一整套的工具链,使我们更加容易建立嵌入式系统的开发环境和交叉运行 环境。 ( 4 ) 性能优异 l i n u x 系统内核精简、高效和稳定,能够充分发挥硬件的功能,因此它比其他操作系 统的运行效率更高。它也非常适合在嵌入式领域中应用,对比其他操作系统,它占用的资 源更少,运行更稳定,速度更快。 ( 5 ) 可应用于多种硬件平台 无论是r i s e 还是c i s c ,3 2 位还是6 4 位处理器,l i n u x 都能运行,这意味着嵌入式l i n u x 将具有更广泛的应用前景。l i n u x 程序可以在标准平台上开发然后移植到具体的硬件上, 加快了软件开发过程,对于受时间限制的研究与开发项目是很有吸引力的。 综合上面分析,本次所设计的数据采集仪系统选篇了功能强大的、带有m m u 单元的 a t 9 1 r m 9 2 0 0 芯片作为c p u ,开发平台具有3 2 m 的r a m 和1 6 m 的f l a s h ,同时数据采集仪对实时 性要求不是很高,所以我们选择了嵌入式l i n u x 作为操作系统。 2 。3 建立交叉编译环境 交叉编译是嵌入式丌发中最常见的概念,所谓交叉编译就是在一个平台上生成可以在 另个平台上执行的代码。由于嵌入式系统的系统资源非常紧缺,没有足够的资源供编译 过程使用,而一般通用计算机拥有非常丰富的系统资源、使用方便的集成开发环境和调试 工具,因此,嵌入式软件开发将编译工作转移到高性能的主机中进行。一般把进行交叉编 译的主机称为宿主机,也就是普通的通用计算机,而把程序实际运行的环境称为目标机。 嵌入式系统的歼发借助宿主机来编译出目标机的可执行代码。 在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和 li b c 库等组成的开发环境。l i n u x 下的交叉编译环境主要包括以下几个部分: 1 0 南糸i i f | ;l 【1 人学坝i j 研究生学位论文 第二章数据采集仪硬件开发平台和操作系统选择 交叉编译器及相关二进制工具( 连接器、好档工具、符号剥离器等) 。 针对目标平台的c 头文件。不同的目标平台具有自身特有的函数库及对应的头文 件,这样,在宿主枫上,我翻就需要保留一份针对该基标平台的头文件,以便震 来交叉编译c 程序。 针对冒标平台的标准e 函数库。 构成交叉编译环境的以上各部分,通常又称为交叉“工具链( t o o l c h a i n ) 。我们 在开发嵌入式系统之前,通常要做的第一件事情就是安装交叉工具链。 自己手工建立一个交叉编译工具链是一个相当复杂的过程,在i n t e r n e t 上我们可以得 到一些整套的开放源码嵌入式l i n u x 开发工具包。这些工具包只需要简单豹设置就可以方 便我们使用。本论文使用的交叉工具链是c r o s s - 2 9 5 3 t a r g z 。 建立交叉编译环境如下: 首先拷贝c r o s s 一2 9 5 3 。t a r g z 到u s r l o c a l a r m 目录下,然后解压缩包: t a r z x v fc r o s s 一2 。9 5 3 t a r g z ,这时在u s r l o c a l a r m 2 9 5 3 b i n 霹录下可 以看至r j a r m l i n u x - g c c 等命令。 , 为了方便使用a r m - ii n u x g c c 编译系统,需修改环境变量:修改e t c p r o f i l e 文件, 找至l j p a t h m u n g e u s r 1 0 c a l s b i n ,在下面一行添加 p a t h m u n g e u s r l o c a l a r m 2 9 5 3 b i n 这样交叉编译环境就可以很方便的使用了。 南京邮电大学硕士研究生学位论文 第三章嵌入式l i n u x 内核在开发平台上的移植 第三章嵌入式l i n u x 内核在开发平台上的移植 3 1b o o tl o a d e r 概念 引导加载程序是系统加电后运行的第一段软件代码。p c 机中的引导加载程序由 b i o s ( b a s i ci n p u t o u t p u ts y s t e m ,其本质就是一段固件程序) 和位于硬盘 m b r ( m a s t e r b o o tr e c o r d ,主引导记录) 中的操作系统b o o tl o a d e r ( 比如,l i l o 和g r u b 等) 一起组成。b i o s 在完成硬件检测和资源分配后,将硬盘m b r 中的b o o tl o a d e r 读 到系统的r a m 中,然后将控制权交给操作系统。b o o tl o a d e r 的主要运行任务就是将内核 映象从硬盘上读到r a m 中,然后跳转到内核的入口点去运行,也即开始启动操作系统。 而在嵌入式系统中,通常并没有像b i o s 那样的固件程序( 注:有的嵌入式c p u 也会内嵌 一段短小的启动程序) ,因此整个系统的加载启动任务就完全由b o o tl o a d e r 来完成。 比如在一个基于a r m t t d m i 核的嵌入式系统中,系统在上电或复位时通常都从地址 o x 0 0 0 0 ,0 0 0 0 处开始执行,而在这个地址处安排的通常就是系统的b o o tl o a d e r 程序。 简单地说,b o o tl o a d e r 就是在操作系统内核运行之前运行的一段小程序。通过这段小程 序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一 个合适的状态,以便为最终调用操作系统内核准备好正确的环境。 3 2b o o tl o a d e r 的重要性 b o o tl o a d e r 的重要性主要是从系统程序运行效率方面考虑的。虽然c p u 可以在f l a s h 空间就地执行操作系统的映像,但是f l a s h 的速度往往比不上r a m ,如i n t e l 公司e 2 8 f 1 2 8 j 3 af l a s h 芯片,工作速度一般不超过i o m h z ,而s d r a m 的工作频率要 高于i o o m h z 。所以先把映像从r o m 或f l a s h 空间搬运到r a m 空间,然后在r a m 空间中运 行这个映像是比较合理的。 另一方面,操作系统的内核映像相对都比较大,通常采取压缩存储以节省空间。可是, 一旦采用压缩存储,就得要先解压缩才能执行,而在解压缩的同时把映像转移到r a m 中就 是顺理成章的事了。把内核映像转移和解压缩,就得在一段程序的控制下才能进行。这样 f l a s h 空间必须有- d , 段独立于操作系统映像并且可以就地执行的程序,这就是b o o t l o a d e r 的任务。 南京邮电大学硕士研究生学位论文 第三章嵌入式l i n u x 内核在开发平台上的移植 3 3b o o tl o a d e r 的移植 b o o tl o a d e r 程序有很多,如:v i v i ,p p c b o o t ,u - b o o t 等。我们选择常用的u - b o o t 移植到硬件平台,具体的移植步骤如下: ( 1 ) 修改u - b o o t 根目录下的m a k e f i l e 文件 配置交叉编译环境编译器路径: c r o s sc o m p i l e = u s e r l o c a l a r m 2 9 5 3 b i n a r m 一1i n u x - ( 2 ) 修改c o n f i g m k 文件中的t e x t b a s e = o x 2 1 f 0 0 0 0 0 ( 3 ) 对i n c l u d e c o n i f g s a t 9 1 r m 9 2 0 0 d k 。h 文件的配置: 把f l a s h 配置为开发平台的1 6 m 容量:修改# d e f i n ep h y s f l a s h _ s i z e0 x 2 0 0 0 0 0 中的0 x 2 0 0 0 0 0 0 为x 1 0 0 0 0 0 0 ; 因为我们开发平台是1 6 位并行f l a s h ,所以要把文件中对串行f l a s h 的定义去掉: 修改# d e f i n ec o n f i g h a s d a t a f l a s h 语句中的d e f i n e 为u n d e f ; 定义f l a s h 一个扇区的大小:增加# d e f i n ec f g f l a s h _ s e c1 2 8 ; 配置f l a s h 最大扇区数:修改# d e f i n ec f g _ m a x f l a s h s e c t2 5 6 中的2 5 6 为1 2 8 ; 配置环境变量首地址:修改# d e f i n ec f g e n v a d d r ( p h y s f l a s h1 + 0 x e 0 0 0 ) 中的0 x e 0 0 0 为o x 2 0 0 0 0 ; 配置坏境变量区大小:修改# d e f i n ec f g e n y _ s i z eo x 2 0 0 0 中的o x 2 0 0 0 为 o x 2 0 0 0 0 ; ( 4 ) 对于f l a s h 的驱动:f l a s h c 这个文件是板级f l a s h 设备驱动,直接操作f l a s h 硬 件,提供对f l a s h 的初始化,擦除,读写等操作。这个目录下的是串行d a t a f l a s h , 而我们目标板是1 6 位并行f l a s h ,所以要根据i n t e l 2 8 f 1 2 8 j 3 a 的d a t a s h e e t 来重 写它的初始化,擦除,读写,打印f l a s h 信息等子程序。 ( 5 ) 对于串行口的驱动:s e r i a l c 是串口的设备驱动程序。包括波特率设置,串口初始 化,向串口输出字符,从串口接受字符等子程序。它们不需要修改,直接用这个串 口驱动程序就可以。其中串口波特率在a t 9 1 r m 9 2 0 0 d k h 下已有定义:# d e f i n e c o n f i g b a u d r a t e115 2 0 0 ( 6 ) s d r a m 的驱动已经由l o w l e v e l i n i t s 进行了初始化,不再需要自己设置。 配置完成以后,执行# m a k ec l e a n ,# m a k ea t 9 1 r m 9 2 0 0 d k c o n f i g 和# m a k e 得到 u - b o o t b i n 。通过j t a g 口和f l a s h 烧写软件f l a s h a c c e s s 把u - b o o t b i n 下载到f l a s h 里,重新上电。通过超级终端可以可以看到串口输出的正确启动信息,如图3 1 所示, l3 粥京邮电太学硕士研究爱学位论文 第兰章嵌入式l i n u x 内核张开发平台上的移植 u - b o o t1 ,1 2f j u l2 毒2 0 0 6 1 1 , :1 5 :0 1 l u - b o otc o d 。e :2 1 f 0 0 0 0 0 一 2 1 f 3 5 6 5 8b s s :一 2 1 f 3 9 9 8 4 r q hc o n f i g u r a t i o n : b a n k 祷g :2 0 0 0 0 0 0 03 2m b f l a s h :1 6m b i n :s e r i a l o u t :s e r i a l e r r :s e r i a l h i ta n yk e yt os t o pa u t o b o o t :0 u b o o t 图3 1u - b o o t 扇动超级终端打印信息 这样u - b o o t 就移植成功了。下面就可以进一步加载l i n u x 内核映像文件和文件系统 柬启动1 i n u x 操作系统。 3 4 嵌入式l i n u x 内核在开发平台上的移植 3 。4 。1内核源码准备 由于l i n u x 源代码公开,而且免费,我们可以到网上下载所需要的源代码。标准l i n u x 的内核源码可以从f t p :f t p k e r n e l o r g 下载,在很多的镜像f t p 站点上也可以方便地 获得。两我们的系统移植也用不着从头开始,基予a r m 平台的有著名的a r m l i n u x 工程, a r m l i n u x 是基于标l i n u x 内核为a r m 做的补丁。在f t p :f t p a r m 1 i n u x o r g u k 上可以 下载。所以我们只需要下载这些源代码,通过一定的修改就可以使用。 本论文晕,我们下载了l i n u x 内核源码:l i n u x 一2 4 1 8 t a r g z 和a r mp a t c h :p a t c h 一2 4 1 8 r m k 7 。g z 执行解压命令和打补丁禽令: # t a rz x v fl i n u x 一2 4 1 8 t a r 。g z # c d1 i n u x # g z i p c d 。p a t c h 一2 唾1 8 一r m k 7 g z | p a t c h p l 就得到了打好补丁的a r ml i n u x 源代码。 3 4 2 l ;f l u x 内核结构 在移植l i n u x 操作系统之翦,了解一下l i n u x 的内核结构是很有必要的。 1 ) a r c h 目录 l i n u x 系统能支持如此多平台的部分原因是因为内核把源代码清楚地划分为体系缝 1 4 南隶l h l ;d j , 入学硕l :铆 究笺学位论文第兰章嵌入式l i n u x 肉核在汗发平螽上的移禧 构无关部分和体系结构相关部分。a r c h 基录包含了体系结构相关部分的内核代码。其中 的每一个目录都代表一种硬件平台,比如我们使用的a r m 平台和p c 使用的i 3 8 6 。对于任 何平台,都必须包括以下几个目录: b o o t :包括启动内核所使用的部分或全部平台特有代码。 k e r n e l :存放支持体系结构特有的( 如s m p ) 特征的实现。 l i b :存放高速体系结构特有的通用函数( 如s t r l e n ) 的实现。 m a t h e m u :模拟f p u 的代码,对于a r m 处理器来说,j 逝墨录用m a c h - x x x 代替。 显然,移植工作的重点就是移植a r c h 目录下的文件。 2 ) d r i v e r s 目录 该目录下保存了所有设备驱动程序。它占整个内核发行版本代码的一半以上。有些驱 动程序是与硬件平台无关的而有些是相关的。 3 ) f s 目录 该嚣录下列出t l i n u x 支持的所有文件系统。嚣前l i n u x 已经支持包括。t f s 在内的多 种文件系统。般说来,文馋系统与硬件无关。 4 ) i n c l u d e 目录 这单包括了编译核心所需要的大部分头文件,例如与平台无关的头文件在 i n c l u d e l i n u x 子目录下。不同的平台需要的头文件会有所不同,因此该目录和a r c h 目录 一样,按平台划分了多个子目录,如a s m - a r m j 录等。 5 ) i n i t 目录 i n it 霉录下包括核心的初始纯代码,有m a i n 。e 和v e r s i o n 。c 两个文件。这是研究核 心魏俺工作的好起点。 6 ) i p c 凰录 i p c 目录包含了核心进程间的通信代码。 7 ) k e r n e l 目录 内核管理的核心代码就在这里,与处理器结构相关的代码都放在a r c h * k e r n e l 目录 下。 8 量西露录 该羁录包含与平台无关的诸如s t r l e n 和m e m c p y 之类的通用函数。 9 ) m m 目录 该目录包含了所有的内存管理代码,与具体硬件体系结构相关的内存管理代码位子 a r c h * l r n 目录下。 l s 南京| f i l ;l u 入学颂f j 研究袋学位论文 第三鼋嵌入式l i n u x 内核谯开发平台上的移植 1 0 ) n e t 墨录 於e t 目蒙是核心的潮终部分代码,其每个子髓录对应与网络的一个方蕊。 1 1 ) 其他目录 还有两个没有提到的目录是d o c u m e n t a t i o n 和s c r i p t s 目录。d o c u m e n t a t i o n 目录存放 许多文档。非常详细。s c r i p t 目录主要在配臀内核时用到,存放了配置内核的一些脚本文 件,比如“m a k em e n u c o n f i g 命令。 一般在每个露录下都有个d e p e n d 文 拳和一个m a k e f il e 文件。这两个文彳孛都是编译时 傻焉豹辅助文件。其中,m a k e f i l e 文件巾指搦了编译时需要爝到的编译器,也是移植蠹核 避稳中不可缺少的。 3 ,4 。3l i n u x 内核启动代码分析 内核分为特定子体系结构的郝分翻与体系结构无关的部分。特定予体系结构的部分首 先执行,设置硬件寄存器、配置内存映射、执行特定予体系结构的初始化,然后将控制投 转给内核中与体系结构无关的部分。系统的其余部分在第二个阶段进行初始化。内核树下 的目录a r c h 出不同的子目录组成,每个子目录对应一个不同的体系结构( m i p s 、a r m 、i 3 8 6 、 p p c 等) 。每个这样的子目录都包含k e r n e l 和咖予目录,它们包含特定于体系结构的 代码来完成初始化内存、设鬻i r q 、启用高速缓存、设置内核页面表等操侔。一量装入内 核并给予其控制权,就酋先调用这些两数,然后韧始化系统的其余部分。 s t e x t 是痰核入黧点,这意味着在蠹核号| 导时将蓄先执行这一节下的代鹳。它邋常惩 汇编语言编写,并且通常a r c h p 龟核尽录下。这个代码设置内核页蕊旦录、创建 赛份内核映射、标识体系结构和处理器以及执行分支s t a gk e r n e l ( 初始化系统的主例程) 。 s t a r tk e r n e l 调用s e t u pa r c h 作为执行的第一步,在其中完成特定于体系结构的设置。这 包括初始化硬件寄存器、标识根设备和系统中可髑的d r a m 和f l a s h 的数量、指定系统中可 用页面的数目、文件系统大小等等。所有这些信息都阻参数形式从引异装载程序传递到内 核。 a r m l i n u x 在不同磺件平台上的移植,其不同的部分大多是在启动代码部分。通过条件 编译执行不同微处理器特定的代码,所以分析癌动代码对予调试和分析内核都非常省帮 助,扇动代码所在的文件是a r c h a r m k e r n e l h e a d s ,它的执行流程如下: 辩if ( t e x t a d d r o x f f f f ) ! = o x s 0 0 0 t t e r r o rt e x t a d d rm u s ts t a r ta to x x x x 8 0 0 0 豁e n d i f 1 6 南京邮电人学硕t :研究生学位论文 第三章嵌入式l i n u x 内核在开发平台上的移植 首先,判断t e x t a d d r 的蘑两个字节是否为0 x 8 0 q 0 。彘于内核将使用零e 般矗d 踩也就是内 核映像的起始地址前的1 6 k 作为页表,因此要求t e x t a d d r 的低1 6 位必须为o x s 0 0 0 ,否则将 不予编译。所以一般将内核的起始地址设在r a m 的3 2 k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025劳动合同法 员工合同
- 白山事业单位笔试真题2025
- 2 整式的乘法说课稿-2025-2026学年初中数学北师大版2024七年级下册-北师大版2024
- 第3课 突破封锁线说课稿-2025-2026学年小学信息技术(信息科技)第四册下粤教版
- 3.3 紧缺的水资源说课稿-2025-2026学年初中地理晋教版八年级上册-晋教版2012
- 2025合同样本:物料与采购管理系统协议范本
- 化肥厂合同审核管理制度
- 2025合同范本:股权激励分配协议示例
- 第8课 数字化生活教学设计-2025-2026学年小学地方、校本课程浙教版人·自然·社会
- 41. See Me Skip说课稿-2025-2026学年小学英语1a典范英语(Good English)
- 2025贵州省贵阳市殡仪服务中心公开招聘(编外)工作人员25人考试参考试题及答案解析
- 2025年国家安全知识竞赛试卷(答案+解析)
- 2025年贵州省凯里市辅警招聘考试题题库(含参考答案)
- 2025年四川基层法律服务工作者执业核准考试复习题及答案二
- 2025年全国企业员工全面质量管理知识竞赛题库(含答案)
- 大数据产业课件
- 潮汐能发电站课件
- 良好学习习惯养成课件
- 国际化跨国经营中的伦理问题概述
- 2025-2026学年度武汉市部分学校高三年级九月调研考试 语文试卷(含标准答案)
- 2025年禁毒知识竞赛试题及参考答案
评论
0/150
提交评论