(检测技术与自动化装置专业论文)专用嵌入式平台bootloader定制研究及应用.pdf_第1页
(检测技术与自动化装置专业论文)专用嵌入式平台bootloader定制研究及应用.pdf_第2页
(检测技术与自动化装置专业论文)专用嵌入式平台bootloader定制研究及应用.pdf_第3页
(检测技术与自动化装置专业论文)专用嵌入式平台bootloader定制研究及应用.pdf_第4页
(检测技术与自动化装置专业论文)专用嵌入式平台bootloader定制研究及应用.pdf_第5页
已阅读5页,还剩48页未读 继续免费阅读

(检测技术与自动化装置专业论文)专用嵌入式平台bootloader定制研究及应用.pdf.pdf 免费下载

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

文档简介

大连理工大学硕士学位论文 摘要 随着信息与通信产业的发展,嵌入式系统的产品越来越多,在日常生活中扮演着越 来越重要的角色。在一个功能完备的嵌入式系统中,使用嵌入式操作系统已经成为一种 流行趋势,因此。使用b o o t l o a d r e 也称为必然选择。 b o o t l o a d e r 是嵌入式系统必不可少的组成部分,它主要负责嵌入式系统中各种硬件 的初始化以及对操作系统的加载,相当于p c 机上的b i o s 程序,同时在完成其基本功 能的基础上,还可以针对特殊需求进行功能扩展。 本文主要研究的是针对多功能车辆总线m v b ( m u l t i f u n c t i o nv e h i c l eb u s ) 专用平台 上的b o o t l o a d e r 的定制研究及应用。m v b 通信网卡主要应用于列车通信网络,它使用 的嵌入式微处理器是a r m 7 ,操作系统为n u c l e u s ,对实时性要求较高,同时由于应用 程序开发以及系统维护的需要,要求对m v b 通信网卡的b o o t l o a d e r 进行定制。论文首 先对标准嵌入式系统调试和引导环境r e d b o o t 以及闪存文件系统t f s ( t i n y f i l es y s t e m ) 进行了分析,然后实现了t f s 在r e d b o o t 上的移植,接着实现了m v b 网卡上的扩展功 能模块,包括f p g a 的被动串行模式配置,m u ( m v bl i n kl a y e ri n t e r f a c e ) 基址的设置 等,完成了b o o t l o a d e r 的定制。文章最后给出了b o o t l o a d e r 的调试方法和以及在m v b 通信网卡上的实际应用。 关键词:b o o t l o a d e r ;h r m ;闪存;被动串行模式 大连理工大学硕士学位论文 t h ec u s t o m i z a t i o nr e s e a r c ha n d a p p l i c a t i o no fs p e c i f i ce m b e d d e d p l a t f o r mb o o t l o a d e r a b s 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 fi n f o r m a t i o na n dt h ec o m m t m i c a t i o ni n d u s t r y , t h e r ea r e m o r ea n dm o r ee r n b e d d c dp r o d u c t s w h i c ha r ev e r yi m p o r t a n ti nt h ed a i l yh f e i naf u l l y f u n c t i o ne m b e d d e ds y s t e m , i ti sat r e n dt ou s ear t o s b o o t l o a d e ri sa ni n d i s p e n s a b l ep a r to f a ne m b e d d e ds y s t e m i t sr e s p o n s i b i l i t yi st oi n i t i a l i z et h el l a r d w a r e ,t ol o a dt h eo p e r a t i n g s y s t e m , a n dt oe x t e n dt h es p e c i f i cf u n c t i o n t 1 1 i st h e s i sd o e sr e s e a r c h0 1 1t h ec u s t o m i z a t i o na n da p p l i c a t i o no f t h eb o o t l o a d e ro nt h e h bp l a t f o r m t h em v bc o m m u n i c a t i o nn e t w o r kc a r di ss p p l i e di nt r a mc o m m u n i c a t i o n n e t w o r k sa n dr e q u i r e sah i g hr e a l - t i m ep e r f o r m a n c e i th a sa na r m 7 m i c r o - c o n t r o l l e r , a n d u s e sn u c l e u sa si t sr t o s i ti sn o c e s s a r i l vt oc u s t o m i z eab o o t l o a d e rf o rt h i ss p e c i f i c e m b e d d e dp l a t f o r m sp a p l 髓f i r s ta n a l y s e sau n i v e r s a lb o o t l o a d e rc a l l e dr e d b o o ta n da f l a s h 们es y s t e mc a l l e dt f s a n dt h e ni n t e g r a t e st h et f si n t or e d b o o t a f t e rt h a t , a l lt h e e x t e n d e df u n c t i o n sa r ei m p l e m e n t e d at e s tm e t h o da n d 姐a p p l i c a t i o no ft h eb o o t l o a d e ra r e 西v g na tt h ee n do f t h et h e s i s k e yw o r d s :b o o t l o a d e r :a r i m ;f l a s h :s l a v es e r i a lm o d e i i 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:鑫蕉! 日期:丝2 :! 兰:! ! 大连理工大学硕士研究生学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位 论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送 交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理 工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也 可采用影印、缩印或扫描等复制手段保存和汇编学位论文。 作者签名 导师签名 2 7 1 年上月盟日 大连理工大学硕士学位论文 1 绪论 1 1 嵌入式系统概述 1 1 1 嵌入式系统的定义 嵌入式技术的快速发展不仅使之成为当前微电子技术与计算机技术中的一个重要 分支,同时也使计算机的分类从以前的巨型机、大型机、小型机、微机之分变为通用计 算机与嵌入式计算机系统之分。嵌入式计算机系统,或简称嵌入式系统,是作为其它系 统的组成部分而使用的。广义地说,一个嵌入式系统是一个具有特定功能或用途的计算 机软、硬件的集合体。因此嵌入式系统可分为硬件部分与软件部分,而相应的嵌入式技 术也可分为嵌入式硬件技术与嵌入式软件技术两部分。嵌入式系统的最高形式片上 系统( s y s t e mo nc h i p ,s o c ) 将是这些技术的集大成者。狭义的嵌入式系统则仅指装入 另一设备并控制该设备的专用计算机系统,包括目标机与宿主机两部分。 1 1 2 嵌入式系统的分类 嵌入式系统是先进的计算机技术、半导体技术及电子技术跟各个行业的具体应用相 结合后的产物,这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创 新的知识集成系统。目前根据其发展现状,嵌入式计算机可以分成下面几类: ( 1 ) 嵌入式微处理器 嵌入式微处理器是由通用计算机中的c p u 演变而来的,与计算机处理器不同的是, 在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能 部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。 ( 2 ) 嵌入式微控制器 嵌入式微控制器又称单片机。嵌入式微控制器一般以某一种微处理器内核为核心, 芯片内部集成r o m e e p r o m 、r a m 、总线、总线逻辑、定时计数器、w a t c h d o g 、i o 等各种必要功能和外设。为适应不同的应用需求,一般一个系列的单片机具有多种衍生 产品,每种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。 和嵌入式微处理器相比,微控制器的最大特点是单片化,体积大大减小,从而使功耗和 成本下降、可靠性提高。 ( 3 ) 嵌入式d s p 处理器 d s p 处理器对系统结构和指令进行了特殊设计,使其适合于执行d s p 算法,编译 效率较高,指令执行速度也较高。在数字滤波、f f t 、谱分析等方面d s p 算法正在大量 专用嵌入式平台b o o t l o a d e r 定制研究及应用 进入嵌入式领域,d s p 应用正从在通用单片机中以普通指令实现d s p 功能,过渡到采 用嵌入式d s p 处理器。 ( 4 ) 嵌入式片上系统 随着e d i 的推广和v l s i 设计的普及化及半导体工艺的迅速发展,在一个硅片上实 现一个更为复杂的系统的时代已来临,这就是s y s t e m o n c h i p 。用户只需定义出其整个 应用系统。仿真通过后就可以将设计图交给半导体工厂制作样品。这样除个别无法集成 的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去。应用系统电路板 将变得很简洁,对于减小体积和功耗、提高可靠性非常有利【”。 1 1 3 嵌入式系统的特点 嵌入式系统主要有如下几方面特点: ( 1 ) 嵌入式系统通常是面向特定应用的,嵌入式c p u 与通用型的最大不同就是嵌 入式c p u 大多工作在为特定用户群设计的系统中,它通常都具有低功耗、体积小、集 成度高等特点,能够把通用c p u 中许多由板卡完成的任务集成在芯片内部,从而有利 于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。 ( 2 ) 嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体 应用相结合后的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、 不断创新的知识集成系统。 ( 3 ) 嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在 同样的硅片面积上实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争 力。 ( 4 ) 嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步 进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。 ( 5 ) 为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯 片或单片机本身中,而不是存贮于磁盘等载体中。 ( 6 ) 嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对 其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发【2 1 。 1 2 a r m 介绍 a r m 是通用的3 2 位微处理器,它具有高性能和低功耗的特性。a r m ( a d v a n c e d r i s cm a c h i n e s ) 结构是基于精简指令集计算机( s c ,r e d u c e di n s t r u c t i o ns e tc o m p u t e r ) 原理而设计的3 1 ,指令集和相关的译码机制比复杂指令集计算机要简单得多。a r m 公 司于1 9 9 0 年成立于英国,是由a c o r n 计算机公司和a p p l e 计算机公司合资组建的一家 大连理工大学硕士学位论文 公司。1 9 9 8 年,a r m 公司正式启用现在的公司名,并向市场推出了a r m 7 r d m i s 微 处理器内核。短短几年之间,市场份额迅速增长,目前已占据r i s c 芯片7 7 以上的市 场份额。究其原因,是因为a r m 系列产品具有独特的优势。通常人们在选择微处理器 的时候,需要考虑微处理器的性能、功耗、成本、配套的开发工具以及市场供货等等因 素。其中性能最为重要,有时候体积和功耗也很关键。而a r m 系列微处理器在这些方 面恰好具备优势。首先它是基于r i s c 结构而构建的。r i s c 结构的指令数目少,指令长 度固定,执行速度快,通常只需要一个周期,s c 结构采用流水线方式处理指令,大 大提高指令执行效率,但是r _ i s c 结构的指令代码偏长。在一部3 2 位的s c 计算机上, 一条单指令需要4 个字节的存储空间,a r m 系列微处理器采用“t h u m b ”技术解决了 这个问题。 a r m 内核分为a r m 7 、a r m 9 、a r m l 0 、a r m l l 以及s t r o n g a r m 等几类。在a r m 内核中有四个功能模块可供生产厂商根据不同用户的不同要求来配置生产。这四个模块 分别用t 、d 、m 和i 来表示: ( 1 ) t :表示t h u m b ,该内核支持1 6 位t h u m b 指令集。 ( 2 ) d :表示d e b u g ,该内核中集成了用于调试的结构,通常它为一个边界扫描链 j t a g ,可使c p u 进入调试模式,从而可方便地进行断点设置、单步调试。 ( 3 ) m :表示m u l t i p l i e r ,即乘法器。 ( 4 ) i :表示e m b e d d e di c el o g i c ,用于实现断点观测及变量观测的逻辑电路部分, 其中的t a p 控制器可接入到边界扫描链。 由于a r m 出色的性能,获得了众多嵌入式操作系统的支持,比较知名的有: w i n d o w s c e 、l i n u x 、v x w o r k s 、n u c l e u s 等。 1 3 嵌入式操作系统概述 嵌入式操作系统是一种实时的、支持嵌入式系统应用的操作系统软件,它是嵌入式 系统( 包括硬、软件系统) 极为重要的组成部分,通常包括与硬件相关的底层驱动软件、 系统内核、设备驱动接口、通信协议、图形界面等。与通用操作系统不同,嵌入式操作 系统在系统的实时高效性、硬件的相关依赖性、软件固态化以及应用专业性等方面都具 有较为突出的特点【4 】。 嵌入式操作系统有几个重要的性能指标: ( 1 ) 系统响应时间:系统发出处理要求到系统给出应答信号的时间。由于系统再接 受到请求时,可能系统正在处理别的任务,导致系统不能及时的对任务请求作出及时的 响应,这样就出现了响应延迟。 专用嵌入式平台b o o t l o a d e r 定制研究及应用 ( 2 ) 任务切换时间:任务之间切换而使用的时间。任务切换包含几个部分,一是基 本的寄存器状态切换,二是和任务相关的数据结构的切换。目前的操作系统大多是多任 务系统,即c p u 在多个任务间切换,以便在用户端可以看成是多任务并行处理的。任 务之间不停的切换,是c p u 资源消耗的很重要的方面,也是影响系统实时性的很重要 的方面,所以切换时间对整个系统的实时性至关重要。 ( 3 ) 中断延迟:接收到中断信号到操作系统作出响应,并完成转入中断服务程序的 时间。这段时间的延迟主要是实时操作系统为了能够不丢失中断请求,从而采用进入中 断后不关闭中断响应引起的。也有硬件的性能因素,硬件的响应时间也是中断延迟的原 因之一。 嵌入式操作系统一般具有如下功能模块: ( 1 ) 进程管理 ( 2 ) 进程间同步和通信 ( 3 ) 存储管理 ( 4 ) 实时时钟服务 ( 5 ) 中断管理服务 1 4b o o t l o a d e r 概述 嵌入式系统上电引导时,可以直接运行r o m ( 或f l a s h ) 中的应用程序,这种方式 系统资源需求比较少,启动过程容易理解。一般用在系统存储资源少,系统功能相对简 单,实时性要求比较低,不需要现场更新程序( i a p ,i na p p l i c a t i o np r o g r a m m i n g ) 的场合。 这样嵌入式系统可以将成本做得比较低廉。 虽然嵌入式系统的应用程序完全可以在裸板上运行,但是为了使系统具有多任务管 理、存储器管理、资源管理及更好的分配系统资源等功能,用户往往需要选择适当的嵌 入式操作系统。随着各种微处理器功能越来越强大以及软件上操作系统的支持,使得整 个嵌入式系统拥有了完整构架。近年来各种嵌入式操作系统也是层出不穷以适应各种不 同功能的微处理器,然而如何加载操作系统却成了大家学习嵌入式系统遇到的第一个拦 路虎。这就需要b o o t l o a d e r ,它把嵌入式系统的硬件和嵌入式操作系统衔接起来,对于 嵌入式系统后续软件的开发十分重要,在整个开发中也占有相当大的比例。 目前有很多公司都有自己的b o o t l o a d e r ,比较著名的开源b o o t l o a d e r 有:l i l o 、 g r u b 、b l o b 、u - b o o t 、r e d b o o t 以及m i c r o m o n i t o r 等。其中r e a b o o t 是r e dh a t 公司 的一个标准嵌入式系统调试和引导环境,而m i e r o m o n i t o r 是朗讯公司的一个通用嵌入式 引导程序,本文在它们的基础上进行m v b 平台的定制研究及应用。 一4 一 大连理工大学硕士学位论文 1 5 课题研究意义及本文主要工作 由于各嵌入式平台的特殊性,本文根据m v b 通信网卡开发平台的具体需要,目标 是定制一个体积小、速度快、节省资源、适用于该小型嵌入式平台的b o o t l o a d e r 。本文 主要工作分为如下五个章节进行讨论: 第一章,绪论部分。简单阐述了嵌入式系统的定义以及b o o t l o a d e r 的概况,对题目 的引出与意义及本文的工作进行了阐述。 第二章,b o o t l o a d e r 研究。本章在大量阅读国内外相关资料的基础上,主要对 r e d b o o t 以及t f s 文件系统进行了研究,对其结构及机制有一定程度的理解和掌握。 第三章,b o o t l o a d e r 定制方案设计这一章根据m v b 平台上实际需求,确定合适 的b o o t l o a d 篚设计方案。 第四章,实现m v b 平台的定制以及功能扩展。本章根据在前一章确定的整体设计 方案,对定制b o o t l o a d e r 以及扩展功能模块的设计与实现进行了详细分析和讨论。 第五章,b o o t l o a d e r 的调试及实际运行结果。本章阐述了如何在m v b 平台上调试 b o o t l o a d e r ,以及如何使用该定制的b o o t l o a d e r ,并展示了实际的运行效果。 专用嵌入式平台b o o t l o a d e r 定制研究及应用 2 b o o t l o a d e r 研究 2 1b o o t l o a d e r 概念 b o o t l o a d e r 是芯片复位后进入操作系统之前执行的一段代码,主要是为运行操作系 统提供基本的运行环境,如初始化c p u 堆栈、初始化存储器系统等。b o o t l o a d e r 代码 与c p u 芯片的内核结构、具体芯片和使用的操作系统等因素有关,每种架构的处理器 都会有一种预定义的方法从存储设备中获取初始代码【5 】。其功能有点类似于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 ,基本输入输出系统) 程序,但是由于嵌入式系统的软硬 件都要比p c 机的简单,所以它的b o o t l o a d e r 代码要比b i o s 程序简单得多。随着嵌入 式系统的发展,b o o t l o a d c r 已经逐渐在基本功能的基础上进行了扩展,b o o t l o a d c r 可以 更多地增加对具体系统的板级支持,即增加一些硬件模块功能上的使用支持,以方便开 发人员进行开发和调试【6 】。 大多数b o o t l o a d e r 都包含两种不同的操作模式:启动加载模式( b o o tl o a d i n g ) 和下 载模式( d o w n l o a d i n g ) 。启动加载模式也称为自主( a u t o n o m o u s ) 模式,也即b o o t l o a d c r 从目标机上的某个固态存储设备上将操作系统加载到r a m 中运行,整个过程并没有用 户的介入。这种模式是b o o t l o a d e r 的正常工作模式,在嵌入式产品发布的时候, b o o t l o a d e r 必须工作在这种模式下。在下载模式下,目标机上的b o o t l o a d e r 将通过串 口连接或网络连接等通信手段从主杌( h o s t ) 下载文件,比如下载内核映像等。从主机下 载的文件通常首先被b o o t l o a d e r 保存到目标机的r a m 中,然后再被b o o t l o a d e r 写到 目标机上的f l a s h 类固态存储设备中。b o o t l o a d c r 的这种模式通常在第一次安装内核 时被使用;此外,以后的系统更新也会使用b o o t l o a d c r 的这种工作模式。工作于这种模 式下的b o o t l o a d c r 通常都会向它的终端用户提供一个简单的命令行接口。这两种模式的 区别仅对于开发人员才有意义,从最终用户的角度看,b o o t l o a d e r 的作用就是用来加载 操作系统,而并不存在所谓的启动加载模式与下载工作模式的区别【”。 2 ,2 主流b o o t l o a d e r 比较 目前流行的b o o t l o a d e r 比较多,有的是某些处理器专用的,而有的b o o t l o a d e r 已 经对通用功能实现的比较好,这些功能不必从零开始开发。下面对常见的几个作一番比 较。 l i n u x 传统上是通过l i l o 引导的,后来又出现了g n u 的软件g r i m 。l i l o ( l i n u x l o a d 神软件工程是由w c m e r a l m e s b e r g e r 创建,专门为引导l i n u x 开发的,已经成为所 有l i n u x 发行版的标准组成部分。g r u b 是g r a n d u n i f i e db o o t l o a d e r 的缩写,它是g n u 大连理工大学硕士学位论文 计划的主要b o o t l o a d e r ,既能引导l i n u x ,同时也能引导w i n d o w s 。缺点是这2 个 b o o t l o a d e r 都只能引导x 8 6 架构的系统。 b l o b ( b o o t l o a d e r o b j e c t ) 由l a n - d e r k b a k k e r 和e r i k m o u w 发布的,除了引导系统这 个基本功能外,它还具备b s p 开发的功能,对于嵌入式开发前期,b l o b 是一个非常有 效的工具。b l o b 是专门为s t r o n g a r m 构架下的l a r t 设计的b o o t i , o a d c t 。 v i v i 是m i z i 公司设计为a r m 处理器系列设计的一个b o o t l o a d e r ,它的功能相对比 较简单,不具备闪存文件系统,目前只支持使用串口和主机通信,所以必须用串口连接 目标板和主机。 u - b o o t 是由开源项目p p c b o o t 与a r m b o o t 合并而发展起来的,和其他一些架构的 引导程序合称u - b o o t 。u - b o o t 提供两种操作模式:启动加载模式和下载模式,并具有 大型b o o t l o a d e r 的全部功能。u - b o o t 涵盖了绝大部分处理器构架,提供大量外设驱动, 支持多个文件系统,附带调试、脚本、弓j 导等工具。 r c d b o o t 是r e d h a t 公司随c c o s 发布的一个嵌入式系统引导方案,是一个开源项目。 r e d b o o t 支持包括a r m 在内的多种处理器构架,是一个完善的嵌入式系统b o o t l o a d e r 。 r e d b o o t 的主要功能有:x m o d c m y m o d e m 、支持j f f s 2 文件系统、支持网络引导、支 持g d b 调试等等。r e d b o o t 常用于调试支持和系统初始化,可以通过串口和以太冈与 g d b 进行通信,调试应用程序,甚至能中断被g d b 运行的应用程序 m i c r o m o n i t o r 是由朗讯科技的工程师e ds u r e r 开发的一个通用嵌入式系统引导平 台,它的大部分代码是c p u 及平台独立的,目前已经被移植到多种嵌入式平台,提供 了很多c p u 评估板上的常用功能,如闪存文件系统t f s 、命令行接口、x m o d e m 、以太 网支持等等。 由于各嵌入式系统的需求差异很大,没有完全符合要求的b o o t l o a d e r 直接使用。因 此,本文在r e d b o o t 和m i c r o m o n i t o r 这两个b o o t l o a d e r 的基础上,取其精华,构建m v b 平台的基本b o o t l o a d e r 框架,为后期的软件开发、调试以及系统维护提供了便利。下面 简单介绍r e d b o o t 和m i e r o m o n i t o r 的闪存文件系统t f s 。 2 3r e d b o o t 介绍 r e d b o o t 是“r e dh a te m b e d d e dd e b u ga n db o o t s t r a p ”的首字母缩写,它是r e dh a t 公司的一个标准嵌入式系统调试和引导环境,取代了原先的调试引导工具c y g m o n 和 g d bs t u br o m ,目前的最新发行版本为2 0 。r e d b o o t 可用于任何嵌入式操作系统( 如 嵌入式l i n u x 、v x w o r k s 等) ,提供了一个完整的引导环境,也可用于产品开发周期中 的调试支持。目前已经在很多的产品中得到广泛应用,例如i n t e l 固定网关、m a p sm a l t a 专用嵌入式平台b o o t l o a d e r 定制研究及应用 4 k c 开发板等吼 r e a b o o t 支持的主要功能有: ( 1 ) 支持引导脚本。 ( 2 ) 提供对r e d b o o t 进行配置和管理的简单命令行界面,可以通过串口或者以太网 进行访问。 ( 3 ) 内建g d b 调试桩( g d bs t u b ) ,用于与主机调试器通过串口或网络进行连接。 ( 4 ) 闪存映像系统( f l a s hi m a g es y s t e m ) 。 ( 5 ) 支持网络引导,可以通过y f r l 等协议对系统进行设置并加载程序。 ( 6 ) 支持x ym o d e m ,可以通过串口加载映像文件。 ( 7 ) 加电自测试。 r e d b o o t 的软件框架如图2 i : 图2 1 r e d b o o tr o mm o n i t o r 架构 f i g 2 1 r c d b o o tr o mm o n i t o ra t e h i t e , e t u r e r e a b o o t 是一个运行于目标平台的独立的、完备的模块,在硬件抽象层( h a l , h a r d w a r ea b s t r a g t i o nl a y e r ) 和设备驱动程序之上,集成了g d bs t u b 、网络通讯协议 t c p i p 、下载协议姗册、文件传输协议x ym o d e m ,以及一个简单的闪存映像 系统。 r e d b o o t 是建立在硬件抽象层和设备驱动程序的基础之上的,硬件抽象层对处理器 结构和系统硬件平台进行抽象,为上层软件对硬件的控制和访问提供了一个标准接口; 设备驱动程序主要用于对设备进行数据的读写操作以及对设备进行配置和读取配置信 大连理工大学硕士学位论文 息,具有通用的接口形式。因此,r e d b o o t 具有很好的可移植性,要在新的耳标平台上 运行,需要将硬件抽象层和相关的设备驱动程序进行移植,目前已经支持大部分的嵌入 式处理器,如a r m 、m i p s 、p o w e r p c 、s h 、x 8 6 、f u j i t s u 等。 2 3 1 图形配置工具 r e a t b o o t 具有简洁、轻巧、可配置、稳定可靠等品质优点,其主要设计目标是实现 系统的高度可配置能力,为此它将系统分成可重用的软件组件,而这些软件组件又通过 c 预处理器实现了源代码级的高度可配置性。根据目标平台的实际需要,通过图形配置 工具( 如图2 2 ) 可以非常方便地选择需要的组件,或者修改相应的组件配置选项,实现 系统在源码级的配置与裁减。这种可配置性在减少程序代码、节省系统资源方面取得了 很好的效果【9 】。 图2 2 图形配置工具 f i g 2 2c o n t i g u r 址i o nt o o l 图形配置工具的可配置性是依赖于组件定义语言( c d l ,c o m p o n e n td e f i n i t i o n l a n g u a g e ) 实现的。c d l 是对已经存在的工具命令语言t c l 进行了扩展的描述语言。在 每个组件包的源码目录下,都必须用至少一个c d l 脚本描述该组件包,其中包含了该 包中所有配置选项的详细信息,并且提供了一些如何对该包进行编译的信息。所有用 c d l 脚本描述的组件包,最后都必须加入组件仓库中,组件仓库同样使用c d l 语言描 述,图形配置工具通过该组件仓库及其它c d l 脚本解释并显示源代码的层次结构。 一9 一 专用嵌入式平台b o o t l o a d e r 定制研究及应用 2 3 2 命令行接口 r e d b o o t 的命令行接口( c o m m a n d l i n e i n t e r f a c e ) 在最小配置下由串口提供,如果平 台具有网络通信能力,也可以通过网络端口使用t e l n e t 协议提供c l i ,默认端口为 t c p 9 0 0 0 。 在r e d b o o t 中增加新的命令非常方便,格式如下: r e d b o o t _ e m d ( ”e m d _ n a m e ”,严命令名称叫 ”e m d _ d e s c r i p t i o n ”。搴对命令的描述吖 ”e m d _ o p t i o r t s ”, 命令参数+ e m d _ f u n e t i o n 严该命令执行的函数名 ) ; r e d b o o t _ e m d 是一个宏,展开后可知它实际上定义了一个s t r u c tc m d 结构体变量,该结 构体包含了命令对应的参数、函数指针等信息。如果是嵌套的命令,则可以使用 r e d b o o t _ n e s t e dc m d 和l o c a le m d _ e n l r y 定义,格式类似。 2 3 3 闪存映像系统 如果平台具有f l a s h 存储器,r e x t b o o t 可以通过闪存映像系统( f i s ,f l a s hi m a g e s y s t e m ) 保存映像文件,使用丘s 命令可以将可执行映像及相关数据以非常简单的文件形 式保存到f l a s h 中。丘s 命令用于f l a s h 映像文件及f l a s h 数据的操作和管理,支持如下的 命令【l o l : ( 1 ) f i si n i t初始化闪存映像系统 ( 2 ) f i sl i l t查看映像文件 ( 3 ) f i sc r e a t e创建映像文件 ( 4 ) f i s1 0 a d下载映像文件 ( 5 ) f i sd e l e t e删除映像文件 ( 6 ) f i sf f l - a s e擦除f l a s h 数据 ( 7 ) f i sw r i t e 向f l a s h 写入数据 闪存映像系统其实是一个非常简单的文件系统,文件数据只能按f l a s h 块进行存储, 并且用最后一个f l a s h 块保存文件信息。文件信息的数据结构如下: s l r u c tf i s _ i m a g e _ _ d e s c u n s i g n e dc h a rn a m e 1 6 ; 映像文件名 c y g _ a d d r e s sf l a s h _ b a s e ; 映像在f l a s h 上的地址 c y g _ a d d r e s sm e r e _ b a s e ; 可执行映像的内存执行地址 大连理工大学硕士学位论文 t m s i g n e dl o n gs i z e ; 映像长度 c y ga d d r e s se n t r y执行程序的入口点 _ _ p o i n t ; u n s i g n e dl o n g d a t al e n g t h ; 实际 u n s i g n e dc h a r - p a d l j a d _ s i z e ;填充字节 u n s i g n e dl o n gd e s c _ c k s u m ; 映像描述符校验 u n s i g n e dl o n gf i l e _ c k s u m ; 映像数据校验 ) ; 2 3 4g d b 调试 r e d b o o t 内建g d bs t u b ,支持用g d b ( t h eg n ud e b u g g e r ) 下载和调试应用程序,可 对程序进行源代码级的调试。目标板可以通过网络协议动态配置坤地址,支持跨网段 访问。用户可以通过1 f r p 协议下载应用程序,或者通过串口用x m o d e m 或y m o d e m 下 载。 当调试一个远端目标设备时,g d b 是依靠调试桩( s t u b ) 来实现其调试功能。调试桩 是嵌入式系统中的一小段代码,它提供了运行g d b 的宿主机和所调试应用程序间的一 个媒介。目标机的g d bs t u b 和下载到目标机的应用程序通信,执行主机传来的命令, 并将相应的结果通过r e d b o o t 传递给主机【1 1 1 。 在命令行中输入“$ ”符号将使r e d b o o t 转入g d bs t u b 模式,g d bs t u b 开始控制 后,等待来自主机的连接信息,当主机断开连接或目标板复位时可以退出g d bs t u b 模 式。相比于简易j t a g 调试器,g d b 调试更加可靠、更加高速而且稳定,打开c p u 的 缓存后,通过网络下载的速度能达到2 m b p s 。 2 4 t f s 介绍 m i e r o m o n i t o r 是由朗讯科技工程师e ds u r e r 开发的一个嵌入式系统引导平台。e d s u r e r 具有2 0 多年的嵌入式系统的开发经验,曾在十几个硬件平台上开发过b o o t l o a d e r 。 为了避免不断的重复劳动,e ds u r e r 开始开发一个通用的嵌入式系统引导平台,即 m i e r o m o n t o r ,它的大部分代码是c p u 及平台独立的,目前已经被移植到多种嵌入式平 台,包括a r m 、x s c a l e 、m i p s 、p o w e r p c 、s h ,提供了很多c p u 评估板上的常用功能, 如闪存文件系统、命令行接口、x m o d e m 、以太网支持等等【1 2 l 。 m i e r o m o n i t o r 的核心是t f s ( t i n yf i l es y s t e m ) ,一个简单的可扩展的嵌入式闪存文 件系统。许多命令行的命令都需要t f s 支持,例如通过x m o d e m 协议传输文件也是需 要文件系统支持的,上传和下载文件都是基于文件名而不是地址空间的。这个设计带来 了很多方便,使得平台的应用程序更加易于管理。 专用嵌入式平台b o o t l o a d e r 定制研究及应用 2 4 1 闪存文件系统t f s 在使用闪存的嵌入式系统中,通常会使用闪存文件系统,闪存文件系统使得嵌入式 系统更加易于管理。 m i c r o m o n i t o r 的闪存文件系统称为t f s ( t i n yf i l es y s t e m ) ,它是m i e r o m o n i t o r 的一 个主要的组成部分。t f s 是一个线性文件系统,由多个存放的文件块组成,一个文件块 包含一个文件的所有信息,它使得对闪存的访问是通过文件名而不是地址进行的。t f s 尝试解决一些与f l a s h 接口的基本问题。虽然它不支持损耗平衡( w e a r - l e v e l i n g ) 算法, 没有目录层次结构,与其它任何文件系统都不兼容,但是仍然能很好的满足嵌入式系统 的要求,因为在文件不需要频繁更改的情况下这些特性都不是必须的。t f s 提供了一组 独立于底层f l a s h 设备的a p i ,同时也允许程序员在需要的时候直接访问二进制数据。 i t s 可以不依赖于r t o s 运行,并且很容易被应用程序使用,其文件可以选择以压缩方 式存储【13 1 。 2 4 2t f s 文件系统数据结构 t f s 是一种线性文件系统,分成t f s 文件头和文件内容两部分,t f s 文件头是一 个9 6 字节的结构体,其数据结构如下: s t m c tf i s h & u n s i g n e ds h o r th d r s i z e ;严t f s 文件头大小吖 u n s i g n e ds h o r th d r v r s n ;严t f s 文件头版本号+ l o n gf l l s i z e ;严文件大小吖 l o n gf l a g s ;严文件属性+ u n s i g n e dl o n gf l l c r c ;严文件的3 2 位c r c 校验码+ u n s i g n e dl o n gh d r c r c ; 产文件头的3 2 位c r c 校验码。 u n s i g n e dl o n gm o d t i m e ;严文件的上次修改时间吖 s t r u e t t f s h d r * n e x t ;严t f s 中指向下一个文件的指针 c h a r n a m e t f s n a m e s i z e + i ;严文件名+ c h a r i n f o t f s i n f o s i z e + i ; 严其它信息。 # i f t f s _ r e s e r v e d u n s i g n e dl o n gr s v d t f s _ r e s e r v e d ; 严保留+ # c n d i f ) ; 为了同时提供程序员直接用物理地址访问数据的方法,文件内容紧接着文件头存 放,通过宏t f s b a s e 可以得到文件数据的起始地址。 大连理工大学硕士学位论文 2 4 3t f s p l t f s 的a p i 提供了可以进行文件打开、关闭、删除、读写等操作的接口。由于t f s 的代码编译在b o o t l o a d e r 中,因此它可以直接使用t f s 提供的a p i 函数,而应用程序 需要通过a p i 函数钩使用t f s 。 t f s 提供的常用a p i 函数如下: ( 1 ) t f s i n i t :将f l a s h 初始化。 ( 2 ) t f s a d d :添加文件。 ( 3 ) t f s o p e n : 打开文件。 ( 4 ) t f s c l o s e 关闭文件。 ( 5 ) t f s r e a d :从已打开的文件中读数据。 ( 6 ) t f s w r i t e :将数据写入已打开的文件中。 ( 7 ) t f s s k 移动文件读写指针。 ( 8 ) t f s e o f 返回是否达到文件尾。 ( 9 ) t f s s t a t :读取文件状态。 ( 1 0 ) f f s u n l i n k :删除文件。 2 4 4t f s 碎片整理 由于闪存不允许擦除任意大小的存储空间,因此不能在删除一个文件的时候马上将 它从f l a s h 上擦除。当一个文件被删除的时候,t f $ 只是简单地将文件头的f l a g s 变量标 识为已删除,而实际的文件内容仍遗留在闪存内。为了利用被己删除文件占据的存

温馨提示

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

评论

0/150

提交评论