




已阅读5页,还剩75页未读, 继续免费阅读
(通信与信息系统专业论文)基于s3c2440的bootloader设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 摘要 本论文的主要工作是:为实验室项目“穿戴式信息网络”的硬件平台,设计并实现一个基于c p u $ 3 c 2 4 4 0 的b o o t l o a d e r 。b o o t l o a d e r 在嵌入式系统中负责系统各硬件的初始化,及操作系统内核的 加载。研究和实现b o o t i _ o m e r 是嵌入式系统软件开发的重要环节。 在分析“穿戴式信息网络”的应用领域、发展状况及其硬件平台组成和基本结构的基础上,本 文首先基于“穿戴式信息网络”的硬件平台设计了b o o t l o a d e r 开发的软、硬件环境 概述了b o o t i _ o a d e r 的基本概念和典型结构,深入分析并总结了两种通用b o o t l o a d e r ( v i 和 u b o o t ) 的编译方法和运行过程,比较了两者的优缺点。研究并提出了适用于本项目的b o o t l o a d o r 实现方法:即以u - b o o t 为基础,先实现b o o t l o a d e r 的基本功能,再实现扩展功能。在此基础上, 展开具体开发,最终完成了一个可以初始化硬件、引导操作系统内核,并能支持网络下载、n a n d f l a s h 操作和直接烧写y 柚惫文件系统的b o o t l o a d e r 。 本文还针对b o o t l o a d e r 的调试方法进行了讨论,重点分析了基于软件模拟器和基于硬件仿真器 两种调试手段,并给出了各种基本功能和扩展功能的验证方法和结果。 关键词:穿戴式信息网络。s 3 c 2 4 4 0 ,b o o t l o a d e r ,v 】 v i ,u b o o t , m a k e f i l e ,y a f f s a b s t r a c t a b s t r a c t t h ep u r p o s eo ft h i sd i s s e r t a t i o ni st od e s i g na n dr e a l i z e $ 3 c 2 4 4 0 sb o o t l o a d e rb a s e do nh a r d w a r e p l a t f o r mo fw e a r a b l en e t w o r k b o o t l o a d e ri sas e c t o ro fc o d e sw h i c hi su s e dt ob o o ta n dl o a d e re m b e d d e d o p e r a t i o ns y s t e mk e r n e l a st h ei m p o r t a n ti n g r e d i e n to ft h ee m b e d d e ds o f t w a r e ,b o o t l o a d e ri ss i g n i f i c a n t t ob er e s e a r c h e da n da c c o m p l i s h e d a tf i r s t , t h eb a c k g r o u n da n dd e v e l o p m e n ts t a t u so fw e a r a b l en e t w o r ka r ei n t r o d u c e db a s e do nt h e a c t u a lr e q u e s t t h e n , t h es o r w a r ea n dh a r d w a r ee n v i r o n m e n ta r ed e s i g n e db a s e do nt h ea n a l y s i so ft h e c o m p o s i t i o no f w e a r a b l en e t w o r k sh a r d w a r ep l a t f o r m s e c o n d l y , t h eg e n e r a ls t l - 眦t u r ca n db a s i cc o n c e p to ft h eb o o t l o a d 烈- a 聆i n d u c e d t h ec o d es t r u c t u r e 。 c o m p i l i n gm c t l 的d w o r ks t y l ea n do p e r a t i o nm e t h o do ft w ob o o t l o a d e r , v ia n du - b o o t , a a n a l y z e d t h e n , t h i sd i s s e r t a t i o na n a l y z e st h em e t h o do fb o o t l o a d e r sr e a l i z a t i o n e v e n t u a l l y , ab o o t l o a d 盯 w h i c hh a sb a s i cf u n c t i o na n ds u p p o r t sn e t w o r kd o w n l o a d ,n a n df l a s hc o m m a n da n dw r i t i n gy a f f sf i l e s y s t e mw a sa c h i e v e d f 砌l y ,t h i st h e s i st e s t sb o o t l o a d e r , a n dm a k c sa ni n t r o d u c t i o nt ot w oi m p o r t a n td e b u g g i n gm e t h o d s o fb o o t l o a d e r , b a s e do ns o f t w a r es i m u l a t o ra n db a s ho nh a r d w a r ee m l u a t o r k e y w o r d :w e a r a b l en e t w o r k , s 3 c 2 4 4 0 ,b o o t l o a d e r , v i ,u b o o t , m a k e f i l e ,y a f f s i i i 表目录 表目录 表3 - 1 i 顶层目录及描述1 7 表3 - 2 【v i 的常用命令及功能1 8 表3 3u - b o o t 顶层目录及描述2 7 表3 4u b o o t 的常用命令及功能2 8 表4 - l 项目硬件平台的寄存器初始值4 2 表4 2 项目硬件平台上b a n k 的使用情况“ 表4 3s 3 c 2 4 4 0 中和n a n df l a s h 有关的寄存器4 5 表4 - 4 第一阶段中与n a n df l a s h 有关的寄存器的初始值4 6 表4 - 5 代码修改的具体方法5 0 表5 - 1h a n df l a s h 基本函数及关键语句。5 7 表5 - 2n a n d _ l e g a c y c 中的宏5 8 表5 - 3e n vn a n d c 的替换方法5 9 表5 - 4y a f f st a g 的格式6 2 x n i 图目录 图目录 图1 1 穿戴式信息网络示意图1 图2 - 1 硬件方案示意图。5 图2 - 2 中心节点的硬件框图6 图2 3 $ 3 c 2 4 4 0 的功能框图7 图2 4 中心节点的复位电路。8 图2 - 5n o rf l a s h 的连接方式9 图2 - 6n a n df l a s h 的连接方式9 图2 7s d r a m 的连接方式1 0 图3 1 固态存储设备的典型空间分配结构。1 4 图3 - 2v 】【v i 运行m a k em e n u e o n f i g 后出现的配置界面2 3 图3 3 编译前后v 】【v i 文件组成的对比图2 3 图3 _ 4v i v i 编译的具体执行过程。2 4 图3 5 v i 运行完成后的s d r a m 分布图2 6 图3 _ 6u b o o t 运行完成后s d r a m 的分布图3 4 图4 1 存储空间的划分方式3 8 图4 2 $ 3 c 2 4 4 0 中寄存器c l k d i v n 的具体参数4 0 图4 3 $ 3 c 2 4 4 0 中寄存器m p l l c o n 、u p l l c o n 的具体参数4 0 图4 4 $ 3 c 2 4 4 0 中p l l 的典型设置4 l 图4 5 $ 3 c 2 4 4 0 中存储器的地址空间4 3 图4 - 6 第一阶段与n a n df l a s h 有关的软件流程4 6 图5 1c s 8 9 0 0 a 的系统结构5 5 图5 - 2c s 8 9 0 0 a 的连接方式5 5 图5 - 3j f f s 在l i n u x 中的结构图6 0 图5 4 y a f f s 文件系统的数据存储布局6 2 i 图目录 图昏l 超级终端的参数设置。6 8 图6 - 2b o o t l o a d e r 正确启动内核时的串口信息6 8 图6 - 3t r p 命令正确运行时的串口信息6 9 图6 _ 4l i n u x 正确挂载y a 仃s 文件系统时的串口信息7 0 图6 - 5w r i t e y a f f s 命令使用时的文件大小转换7 0 图6 - 6s a v e e r l v 命令正确运行时的串口输出7 0 图6 7p r i n t e n v 命令正确运行时的串口输出7 l 图6 8p i n g 命令正确运行时的串e 1 输出7 l 图6 - 9h a n d 命令正确运行时的串口输出7 1 x h 英文缩略语表 英文缩略语表 b i o sb a s i ci n p u to u t p u ts y s t e m 基本输入输出系统 m b rm a s t e rb o o tr e c o r d 主引导区记录 o s o p e r a t i n gs y s t e m 操作系统 l i l ol i n u xl o a d e r l i n u x 加载程序 g r u bg r a n du n i f i e db o o tl o a d e r 多系统引导管理器 m p s m i c r o p r o c e s s o rw i t h o u ti n t e r l o c k e d 无互锁流水线微处理器 p i p e ds t a g e s c v sc o n c u r r e n tv e r s i o ms y s t e m一种版本控制软件 g n ug n u sn o tu n i x 一个自由软件工程项目 m a k e f i l em a k ef i l e m a k e 文件 e i n t e g r a t e dd e v e l o p m e n te n v i r o n m e n t 集成开发环境 g p lg e n e r a lp u b l i cl i c e n s e 通用性公开许可证 a h ba d v a n c e dh i 9 1 1p e r f o r m a n c eb u s 先进高性能总线 a p ba d v a n c e dp e r i p h e r a lb u s 先进外围总线 a p ia d v a n c e dp r o g r a m m e r si n t e r f a c e高级程序员接口 o o b o u to f b a n d 带外 i c ei nc h i pe m u l a t o r片上模拟器 r d ir e m o t ed e b u gi n t e r f a c e 远程调试接口 i x 东南大学学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得东南大学或其它教育机构的学位或证书而使用 过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明 并表示了谢意。 研究生签名: 东南大学学位论文使用授权声明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的 复印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内 容和纸质论文的内容相一致。除在保密期内的保密论文外,允许论文被查阅和借阅,可 以公布( 包括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研 究生院办理。 碱生繇球寸导师签名吁夺虫 导师签名:y 镑7 和匿 嗍。叫_ - 口 第l 章绪论 第1 章绪论 本课题是实验室项目“穿戴式信息网络”研发工作的重要组成部分,主要任务是为项目硬件平 台的主c p u $ 3 c 2 4 4 0 设计并实现一个可以正确引导嵌入式操作系统内核并能完成一定扩展功能的 b 0 0 也o a d 盯,本章主要介绍“穿戴式信息网络”的基本概念及发展状况、分析b o o t l o a d e r 在项目软 件开发中的重要性,并介绍论文的主要内容。 1 1 穿戴式信息网络简介及发展状况 穿戴式信息网络是一类超微型、可穿戴的移动信息系统,它利用现代通信及信息处理技术,将 人体穿戴的各种设备有机地组合起来,实现“人机最佳结合与协同”。一个基本的可穿戴网络主要包 括穿戴式计算机、头戴显示器( h m d ) 、微型摄像头、g p s 定位器、耳机、话筒、无线通讯、手写 输入板、电池等。所有设备分别戴在头上和装在衣服口袋里【】。它的构成如图1 - 1 所示: 图1 1 穿戴式信息网络示意图 穿戴式信息网络以穿戴式计算机为中心,将人体携带的耳机,话筒,通讯电台,手写输入板, 微型摄像头,头戴显示器,定位器,传感器等设备联系起来。视频设备摄像头去摄取图像,话筒和 手写板录入语音和文字,定位器、传感器获取环境信息,这些信息都被传输到穿戴式计算机进行处 理,然后再传输到终端显示或播放出来。由于应用环境的限制,穿戴式计算机一般采用嵌入式处理 器。穿戴式信息网络使人能更全面地感知周围环境,能更方便地使用在人身上的各种设备,扩大人 体的感知范围【i l 】。 穿戴式信息网络的交互设备,能引领时代的发展早在1 9 7 0 年时,穿戴式设备就被提出用来支 i 东南大学硕士学位论文 持一些特殊的活动,应用于各个领域,例如航行器的维护,虚拟的会议和医药。目前这些技术的应 用,主要集中在整合因特网上的数据,来满足日常生活和工作的需要。 美国x y b , m ,a u t 公司的m o b i l ea s s i s t a n tv 是比较粗糙的通用的穿戴式计算机,已经在很多领域 得到了应用,包括宇航,医学,无线电通信,军事,教育和旅游。它主要是被设计成辅助工程师, 例如,用作航天业务员,急救技术员,和质量控制检查员等,它可在多个位置同时执行多种任务, 如管理视察,修理和定制各个部分j 。 2 0 0 1 年,我国研制出首台可穿戴式计算机,该计算机初步具有了穿戴式信息网络的基本功能。 这种可穿戴式计算机具有手持式键盘和鼠标,主机则挎在腰间,可以通过鼠标和键盘完成基本的计 算机操作。然而从根本上来讲,这样的可穿戴式系统不是很符合现实的需要: 首先,这种穿戴式计算机系统的设计目标是将计算机更方便的穿戴在身上,而并不是从周围环 境中获取数据并对数据进行处理,以便操作者使用。 其次,这种计算机采用的是有线连接,无论是鼠标还是键盘都通过有线电缆与主机连接,这在 一定程度上也影响了系统的便携性。并且因为是有线系统,很容易因为接触不良或其他原因,造成 无法正常工作。而且制作成本较高,需要特别定制。另外,不能根据周围环境选取不同的设备灵活 组网。 有线的穿戴式网络很难在日常生活中为人们提供便利。有线是它的一个重要的制约因素。同时 这种穿戴式计算机还没有形成网络的概念,除了主机、显示设备、键盘和鼠标外,基本没有配置其 他相互连接的数据采集与处理节点,这就使得数据传输局限于主机内部,缺少了网络节点间的信息 交互特性。 显然为了形成真正的可穿戴式网络,我们应从两方面来对现有系统进行改进:一方面,强调 “可穿戴”性,加强设备的小型化,使得设备能够更加适应人体承载,而网络传输则使用无线传输 形式。另一方面,强调“网络”性,采用的各个信息节点之间应该有数据交互与协作处理能力,且 应考虑到不同数据终端的信息传输速率的影响,保证拥有足够的信息传输能力【1 1 1 。 1 2 穿戴式信息网络的软件开发 作为一个典型的嵌入式系统,穿戴式信息网络的软件开发主要可以分为三个部分:嵌入式操作 系统选择、应用软件编程和b o o t l o a d e r 开发。 由于穿戴式信息网络中的穿戴式计算机需要完成的功能较多、控制上也比较复杂,所以需要使 用嵌入式操作系统。嵌入式操作系统是支持嵌入式系统应用的操作系统软件,控制着应用程序编程 与硬件的交互,为嵌入式系统极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内 核、设备驱动接口、通信协议、图形界面、标准化浏览器等。与通用操作系统相比较,嵌入式操作 系统在系统实时高效性、硬件的依赖性、软件固态化及应用的专用性等方面具有较为突出的特点。 2 第l 章绪论 当今流行的嵌入式操作系统包括v x w o r k s 、p s o s 、l i n u x 、p o c k e tp c 、w i n c e 等。每一种操作 系统都有其自身的优越性,根据项目的实际情况我们选择l i n u x 操作系统。 应用软件用来控制系统的运作和行为,在嵌入式系统的开发中,应用软件的开发是实现各种系 统功能的关键。 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 的基本功能,如何为特定的嵌入式处理器设计b o o t l o a d e r ,就成 为了本课题研究的主要内容。 1 3 论文主要内容 根据所涉及的主要研究工作,本文的内容主要包括以下三大部分: 第一部分包括第2 章、第3 章,主要介绍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 :v i v i 和u b o o t 分别进行介绍和分析,介绍了它们的源码结构和操作模式,深入分析了两者的编译方法 和运行过程。 第二部分包括第4 章、第5 章,主要进行b o o t l o a d c r 的总体设计,详细分析了u b o o t 的移 植方法,在实现基本功能的基础上。添加了网络下载、h a s h 烧写、直接烧写y a f f s 文件系统等扩展 功能。 第三部分包括第6 章,主要介绍和分析b o o t l o a d c r 的调试方法及引导操作系统内核、网络下 载和直接烧写y a f f s 文件系统等功能的验证方法及结果。 最后,在第7 章中对全文的工作进行了总结和展望。 3 第2 章b o o t l o a d e r 开发的硬件平台及软、硬件环境 第2 章b o o t l o a d e r 开发的硬件平台及软、硬件环境 2 1 穿戴式信息网络的硬件平台 为了实现穿戴式信息网络的“可穿戴”性和“网络”性,按照项目的具体技术要求,我们采用 u w b 技术实现系统物理层的无线通信。采用基于中心控制的非对称网络体制实现系统的链路层。在 网络模型中将穿戴式计算机等效为中心节点,其他设备视为基本节点。基本节点主要完成各种数据 的采集及与中心节点的交互,需完成的软件操作比较简单。穿戴式信息网络的控制工作主要由中心 节点完成。整个系统的硬件总体框图如图2 1 所示: 图2 1 硬件方案示意图 穿戴式信息网络的硬件分为中心节点和基本节点两个部分,中心节点以嵌入式处理器$ 3 c 2 4 4 0 为核心,与s d r a m 、f l a s h 等各类型存储器、各种接口控制、物理层无线收发模块( 由f p g a 实现) 等一起构成了一套小型的计算机系统。该系统可以支持l c d 显示器、键盘等多种设备。基本节点主 要由数据采集模块、无线收发模块和控制模块组成。其中的数据采集模块由基本节点完成的功能决 定,不同的基本节点具有不同的数据采集模块,比如:对于完成摄像功能的基本节点,它的数据采 集模块就由微型摄像头及其周边元件组成。无线收发模块和控制模块由一块内嵌处理器内核的f p g a 实现,利用f p g a 内的逻辑资源实现无线收发模块,其中的处理器内核实现控制模块。 项目软件开发时,只需为中心节点的硬件设备开发b o o t l o a d e r ,故下面只对中心节点的硬件设 备作详细介绍,并且下文中提到的项目硬件平台都特指中心节点的硬件设备,中心节点的具体硬件 框图如图2 - 2 所示: 5 东南大学硕士学位论文 2 1 1 主c p u 部分 图2 2 中心节点的硬件框图 中心节点的主c p u 部分包括嵌入式处理器芯片及其正常工作时需要的复位电路、实时时钟电 路、晶振等外围电路。 2 1 1 1 c p u 芯片的选用 根据项目的具体要求,中心节点( 穿戴式计算机) 采用的是三星公司基于a r m 9 2 0 t 内核的微 控制器$ 3 c 2 4 4 0 。$ 3 c 2 4 4 0 是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制 器解决方案,其低功耗、简单、且全静态设计特别适合于对功率敏感的应用场合。它采用了新的总 线架构a d v a n c e dm i c r oc o n t r o l l e rb u sa r c h i t e c t u r e ( a m b a ) ,主频高达4 0 0 m h z ,最高可达5 3 3 m h z , 低功耗,高性能,支持各种型号的r o m 引导( n o r n a n df l a s h ,e e p r o m ,或其他) ,适合于p d a , 便携媒体播放器,卫星导航仪等多媒体终端【2 1 。 a r m 9 2 0 t 实现了m m u 、a m b ab u s 和h a r v a r d 高速缓冲体系结构。这一结构具有独立的 1 6 k b 指令c a c h e 和1 6 k b 数据c a c h e 。每个都是由具有8 字长的行组成。通过提供一套完整的通 用系统外设,$ 3 c 2 4 4 0 a 减少了整体系统成本,无需配置额外的组件。$ 3 c 2 4 4 0 a 提供的主要片上 功能如下; 1 2 v 内核供电,1 8 v 2 5 v 3 3 v 存储器供电,3 3 v 外部i o 供电具备1 6 k b 的i - c a c h e 和 l6 l ( b 的d c a c h e m m u 外部存储控制器( s d r a m 控制和片选逻辑) l c d 控制器( 最大支持4 k 色s t n 和2 5 6 k 色t f t ) 提供l 通道l c d 专用d m a 。 6 第2 章b o o t l o a d e r 开发的硬件平台及软、硬件环境 4 通道d m a ,并有外部请求引脚 3 通道u a r t ( i r d a l 0 ,6 4 字节t xf i f o ,和“字节r xf i f o ) 2 通道s p i l 通道i i c - b u s 接口( 多主支持) l 通道i i s b u s 音频编解码器接口 2 端口u s b 主机l 端口u s b 设备( 1 1 版) 4 通道p w m 定时器和l 通道内部定时器看门狗定时器 具有日历功能的r t c 1 3 0 个通用i o 口和2 4 通道外部中断源 具有普通、慢速、空闲和掉电模式 具有p l l 片上时钟发生器 $ 3 c 2 4 4 0 体系结构的功能框图如图2 3 所示。 图2 - 3 $ 3 c 2 4 4 0 的功能框图 7 东南大学硕士学位论文 $ 3 c 2 4 4 0 需要两个外接晶振,频率分别为1 2 m h z 和3 2 。7 6 8 k h z 。前者用于系统时钟,后者用于 r t c ( 实时时钟) 2 1 1 2 复位电路 中心节点采用专用复位芯片m a x 8 1 1 完成复位功能,该芯片在复位条件满足时会产生带宽为 1 4 0 m s 的复位脉冲可以确保主c p u 及其他芯片安全复位。该复位电路支持三种复位方式: 上电复位;系统上电后,复位电路会产生复位信号,对系统进行初始化复位 手动复位:按下复位键后复位,主要用于系统调试 掉电复位:系统工作时。复位电路对系统的电压进行监控,当供电电压低于复位门槛时产生复 位脉冲,m a x 8 1 1 的复位门槛主要有以下几种:4 6 3 v 、4 3 8 v 、3 0 8 v 、2 9 3 v 和2 6 3 v ,复位门槛 的选择一般应以c p u 的f o 供电电压范围为标准,$ 3 c 2 4 4 0 的i o 供电电压范围为3 0 - - 3 6 v ,故选 择复位门槛为2 9 3 v 具体的复位电路如图2 4 所示: 2 1 1 3 实时时钟r t c 图2 _ 4 中心节点的复位电路 r e s 黯 在$ 3 c 2 4 4 0 的内部已经集成了r t c 模块,可以通过总线,向c p u 提供时间数据( 秒、分、时、 日、月、年等) 。用户只要外接一个频率为3 2 7 6 8 k h z 的晶振和一个外部电池即可使r t c 工作。 2 1 2 存储器部分 中心节点的存储器由三部分组成:1 6 m b i t 的n o rf l a s h 、5 1 2 m b i t 的n a n df l a s h 和两片2 5 6 m b i t 的s d r a m 。各部分的具体工作如下l 2 1 2 1 n o rf l a s h 采用一片a m d 公司的a m 2 9 l v l 6 0 d ,容量为1 6 m b i t 。a m 2 9 l v l 6 0 d 是一种仅需采用3 0 v 电 8 第2 章b o o t l o a d e r 开发的硬件平台及软、硬件环境 源进行读写的闪存。该器件提供了7 0 n s 、9 0 n s 和1 2 0 n s 读取时间,无需高速微处理器插入等待状态 进行速度匹配。芯片采用分块结构,非常适用于要求高密度的代码或数据存储的低功耗系统。 a m 2 9 l v l 6 0 d 的具体应用如图2 5 所示: 有一个2 5 针的并行接口,用来接j t a g 连线 有一个9 针的r s - 2 3 2 串行接口。用来进入b o o t l o a d e r 的操作界面及打印一些控制信息 有一个网口,用来进行网络传输 对于台式机,一般来说这三项都可以满足,对于笔记本电脑,基本上都没有并口和串口,串口 可以使用u s b 串口转换器,并口则需要用一些支持u s b 下载的j t a g 仿真工具来代替。 2 3b o o t l o a d e r 开发的软件环境 在上文中提到,我们构建的硬件环境采用交叉开发模式,在这种模式下需进行交叉编译,简单 地说就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包 含两个概念:体系结构( a r c h i t e c t u r e ) 、操作系统( o p e r a t i n gs y s t e m ) 同一个体系结构可以运行不 同的操作系统:同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x 8 6 l i n u x 平台实际上是i n t e lx 8 6 体系结构和l i n u xf o rx 8 6 操作系统的统称( 通俗的说,就是在i n t e l 的 i i 东南大学硕士学位论文 c p u 上运行l i n u x 系统) ;而x 8 6w i n n t 平台实际上是i n t e lx 8 6 体系结构和w i n d o w sn t f o rx 8 6 操 作系统的简称 要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链( c r o s sc o m p i l a t i o nt o o l c h a i n ) ,然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见 的基于a r m 体系结构的交叉编译如下: 在主机的w i n d o w s 操作系统上,利用a d s ( a r m 开发环境) ,使用a r m c c 编译器,可编 译出针对a r mc p u 的可执行代码。 在主机的w i n d o w s 操作系统上,利用c y g w i n 环境,运行a r m - e l f - g c c 编译器,可编译出针 对a r mc p u 的可执行代码。 在主机的l i n u x 操作系统上,利用a r m l i n u x - g c c 编译器,可编译出针对l i n u xa r m 平台 的可执行代码。 由于本课题中设计的b o o t l o a d e r 将用于引导l i n u x 内核,故采用交叉编译器a r m l i n u x g c c 。考 虑到自己对w i n d o w s 下的代码编辑软件和调试软件更为熟悉,故采用虚拟机的方法,在w i n d o w s 下 安装l i n u x 系统。这样便可在w i n d o w s 下编写和调试代码,在l i n u x 系统中编译b o o t l o a d e r 。具体 的软件环境如下: 操作系统:u b u n t u 7 1 0 虚拟机:v m w a l e6 0 。2 虚拟机所在的操作系统:w i n d o w sx p + s p 2 交叉编译器:a r m l i n u x - g e e 一3 4 5 - g l i b c - 2 3 6 t a r g z 2 代码编辑软件:s o u r c ei n s i g h t 3 5 调试软件:a d s i 2 + j l i n k 3 6 8 2 4 本章小结 本章在绪论的基础上,介绍了b o o t l o a d e r 开发的硬件平台:穿戴式信息网络中心节点的硬件设 备。重点分析了其中的主c p u 部分、存储器部分、接口部分和无线收发模块。随后针对嵌入式开发 的特殊性,确定了b o o t l o a d e r 开发的硬件环境采用交叉开发模式,对应的软件环境采用交叉编译并 建立了具体的软件环境。 1 2 第3 章b t l o a d c r 的功能分析 第3 章b o o t l o a d e r 的功能分析 3 1b o o t l o a d e r 的通用模型 3 1 1 b o o t l o a d e r 的基本概念 b o o t l o a d e r ,称为引导加载程序,是嵌入式系统上电后运行的第一段代码,通过这段程序,我 们可以初始化硬件设备,建立内存空间的映射图。从而将系统的软硬件环境带到一个合适的状态, 为最终调用操作系统内核准备好合适的环境。其作用相当于p c 机里的b i o s ,但又有所不同。 在p c 机的体系结构中,引导加载程序是由b i o s ( 其本质是一段固件程序) 和位于硬盘m b r 中的o sb o o t l o a d 盯( 比如:l i l o 和g r u b 等) 一起组成。b i o s 在完成硬件检测和资源分配后, 将硬盘m b r 中的o ss b o o t l o a d e r 读到系统的r a m 中,然后将控制权交给o sb o o t l o a d e r 。o s b o o t l o a d e r 的主要任务就是将内核映像从硬盘上读到r a m 中,然后跳转到内核的入口点去运行, 即开始启动操作系统。 而在嵌入式系统中,通常并没有像b i o s 这样的固件程序( 注:有的嵌入式c p u 也会内嵌一段 短小的启动程序) ,因此整个系统的加载启动任务就完全由b o o t l o a d e r 来完成,例如在一个基于 a r m 9 2 0 tc o r e 的嵌入式系统中,系统在上电或复位后通常都从地址0 x 0 0 0 0 0 0 0 0 处开始执行,而在 这个地址处安排的通常就是系统的b o o t l o a d e r 程序。简而言之,嵌入式系统中的b o o t l o a d e r 相比 b i o s 而言,还要作更多的工作 2 4 1 。 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 还依赖于具体的嵌入式板级设备的配置。也就是说,对于两 块不同的嵌入式板而言,即使它们基于相同的c p u 构建,运行在其中一块电路板上的b o o t l o a d e r , 未必能够运行在另一块电路开发板上。 3 1 2 b o o t l o a d e r 的安装媒介及控制机制 系统上电或复位后。所有的嵌入式处理器通常都从某个由制造商预先安排的地址上取指令。比 如,m i p s 结构的嵌入式处理器会从0 x b f c 0 0 0 0 0 处取第一条指令。而a r m 结构的嵌入式处理器则 从地址0 x 0 0 0 0 0 0 0 0 处开始,基于嵌入式处理器构建的嵌入式系统通常都有某种类型的固态存储设备 ( 比如:r o m 、e e p r o m 或f l a s h 等) 被映射到这个预先安排的地址上,b o o t l o a d e r 就存放在这 个地址开始处,这样一上电就可以执行 下图3 1 中就是一个同时装有b o o t l o a d e r 、启动参数、内核映像和根文件系统映像的固态存储 1 3 东南大学硕士学位论文 设备的典型空间分配结构图。 b o o t l o a d e r 图3 1 固态存储设备的典型空间分配结构 “b o o tp a r a m e t e r s 一分区中存放一些可设置的参数,比如:i p 地址、串口波特率、要传递给内核的 命令行参数等。正常启动过程中,b o o t l o a d e r 首先运行,然后将内核复制到r a m 中( 也有些内核 可以在固态存储设备上直接运行) ,并且在内存某个固定的地址设置好要传递给内核的参数,最后启 动内核。内核启动之后,会挂接根文件系统,启动文件系统中的应用程序 软件开发时,通常需要使用各种命令控制b o o t l o a d e r ,一般通过串口来实现p c 机和开发板的 互联,也可以在串口上输入各种命令、观察运行结果。 3 1 3 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 的实现依赖于c p u 的体系结构,因此大多数b o o t l o a d e r 都分为第一阶段和第二阶段两 大部分。依赖于c p u 体系结构的代码,比如设备初始化代码等,通常都放在第一阶段中,而且通常 都用汇编语言来实现,以达到短小精悍的目的。而第二阶段则通常用c 语言来实现,这样可以实现 更为复杂的功能,而且代码也会有更好的可读性和可移植性 一般而言,这两个阶段完成的任务可以分类如下。 ( 一) b o o t l o a d e r 第一阶段的任务 硬件设备初始化。 为加载b o o t l o a d e r 的第二阶段代码准备r a m 空间。 复制b o o t l o a d e r 的第二阶段代码到r a m 空间。 设置堆栈。 1 4 第3 章b o o t l o a d e r 的功能分析 跳转到第二阶段代码的c 入口点 在第一阶段进行的硬件初始化一般包括:关闭看门狗、关中断、设置c p u 的速度和时钟频 率、r a m 初始化等。这些并不都是必须的,比如在u - b 0 0 t 中针对$ 3 c 2 4 1 0 开发板的代码部分, 就将c p u 的速度设置放在了第二阶段。 甚至将第二阶段代码复制到r a m 空间中也不是必需的,对于n o rf l a s h 等存储设备,完全 可以在上面直接执行代码,只不过相比在r a m 中执行效率会大为降低。 ( 二) b o o t l o a d e r 第二阶段的任务 初始化本阶段要使用到的硬件设备。 检测系统内存映射。 将内核映像和根文件系统映像从f l a s h 上读到r a m 空间。 为内核设置启动参数。 调用内核。 3 1 3 1 初始化本阶段要使用到的硬件设备 为了方便开发,至少需要初始化一个串口,以便开发者与b o o t l o a d e r 进行交互。设备初始化完 成后,可以输出一些打印信息,程序名字字符串、版本号等 3 1 3 2 检测系统的内存映射 所谓检测内存映射就是指在整个4 g b ( 一般的嵌入式处理器都是3 2 位,故地址空间为4 g b ) 物理 地址空间中确定有哪些地址范围被用来寻址系统的r a m 单元。比如,在三星s 3 c 2 4 4 0 中,从 0 x 3 0 0 0 0 0 0 0 到0 x 4 0 0 0 0 0 0 0 之间的2 5 6 m 地址空间被用作系统的r a m 地址空问。虽然c p u 通常会 预留出一段足够大的地址空问给系统r a m ,但是在搭建具体的嵌入式系统时却不一定会实现c p u 预留的全部r a m 地址空间。也就是说,具体的嵌入式系统往往只把c p u 预留的全部r a m 地址空 间中的一部分映射到r a m 单元上,而让剩下的那部分预留r a m 地址空间处于未使用状态。基于上 述事实,b o o t l o a d e r 的第二阶段必须在它想干点什么( 比如,将存储在f l a s h 上的内核映像读到r a m 空间中) 之前检测整个系统的内存映射情况,即它必须知道在c p u 预留的全部r a m 地址空间中哪 些被真正映射到了r a m 地址单元,哪些没有被使用【2 4 1 。 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 将参数放在某个约定的地方之后,再启动内核,内核启动后从 这个地方获取参数。b o o t l o a d e r 调用内核的方法是直接跳转到内核的第一条指令处。 1 5 东南大学硕士学位论文 3 1 4 b o o t l o a d e r 的操作模式 大多数b o o tl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版高端商务咨询与市场分析合同
- 2025版锅炉维修应急响应与处理服务合同
- 二零二五年度建筑工程二次结构承包与建筑信息模型(BIM)技术应用合同
- 二零二五年度房地产交易税费代缴付款台账合同
- 二零二五年度木方木材加工厂采购合同模板
- 二零二五年度古玩市场摊位承包合同范本下载
- 2025版新能源汽车销售与服务合同规范
- 2025版电商平台合作孵化项目合同范本
- 二零二五年度智能机器人技术秘密保护及知识产权合同
- 二零二五版互联网企业股权投资战略合作合同
- 肠外营养个案护理
- CJ/T 94-2005饮用净水水质标准
- 2025-2030系统级芯片(SoC)测试机产业市场深度调研及前景趋势与投资研究报告
- 《化工和危化品生产经营单位重大生产安全事故隐患判定标准(细化版)》知识培训
- 2025年汉防己甲素项目市场调查研究报告
- (2025)发展对象考试题(附答案)
- 驿站快递合同协议书
- 《新型主动脉夹层护理策略》课件
- 石油合作协议合同协议
- 2025年人教版小学五年级下册奥林匹克数学竞赛试卷(附参考答案)
- T∕CACM 1099-2018 中医治未病技术操作规范 隔药灸干预原发性痛经
评论
0/150
提交评论