【VC++开源代码栏目提醒】:网学会员VC++开源代码为您提供嵌入式板级支持环境研究与实现 - 硕士论文参考,解决您在嵌入式板级支持环境研究与实现 - 硕士论文学习中工作中的难题,参考学习。
华中科技大学 硕士学位
论文嵌入式板级支持环境研究与实现 级别:硕士 专业:计算机应用 指导教师:阳富民 20070131 论 文 论 文 摘 要 一个完整的嵌入式系统一般是由硬件环境、嵌入式操作系统和应用软件三部分组成的。
硬件环境作为操作系统和应用软件的运行平台随系统功能的不同而呈现多样性。
在系统研发初期,硬件驱动测试和开发、核心引导和装载、目标板与主机通讯和控制等将是开发的主要任务。
板级支持环境(BSE:Board Support Environment)是一套能够独立运行于硬件开发板的小型系统,它将负责目标板的初始化和提供对板上硬件操作的支持,为操作系统及应用软件的开发提供一个良好的开发调试环境,缩短系统研发周期。
根据板级支持环境功能的要求,构建了 BSE 系统的整体结构。
将 BSE 系统划分为三个主要模块:系统引导模块、驱动接口模块和命令接口模块。
系统引导模块首先初始化目标板软硬件环境以实现系统引导,系统引导不仅完成了普通引导装载程序(bootloader)所需完成的硬件初始化任务,还完成了缓存和堆栈初始化、构建异常处理机制等系统运行所必需的软件初始化工作。
由于 CPU 体系结构的不同,引导
代码的实现体现了多样性的特点,它们与 CPU 的体系结构高度相关。
系统设备驱动模块提供一个规整的调试操作接口,完成开发板上硬件的操作和测试。
这一接口建立了从标准系统调用到设备驱动程序的映射,系统可利用这一接口完成目标板上硬件驱动程序的调用。
系统命令接口模块提供了一组调试和操作命令供用户使用,命令字与命令对应的执行程序采用统一的接口实现关联。
命令涵盖了嵌入式系统开发所需要实现的部分控制功能,利用该系统提供的功能可以使嵌入式系统开发脱离对仿真器和调试器的依赖。
整个系统具备功能可扩展性和平台可移植性。
关键词: 嵌入式系统,板级支持环境,设备驱动,接口 I 论 文 论 文 Abstract A new complex embedded system was consisted of hardware environmentembedded operating system and application software. As a hardware platform of operatingsystem and application hardware environment has character of diversity with differentfunctions. In the preliminary phase of system development the main mission of systemdevelopment has included driver test bootloader message transmission and target control.BSE Board support environment was able to operate on the target board independentlywhich could initialize system and control hardware . BSE had given a good environment forthe development of operating system and application which could shorten the developmentcycle. According to the requirement of BSE functions the overall structure of BSE isestablished. The overall system was divided into tree main modules: system boot moduledevice driver module and command console module. The system boot module initializedthe hardware and software of target board to boot itself firstly. It not only completed thehardware initialization tasks of general bootlaoder but also completed some softwareinitialization tasks such as cache initialization stack initialization except handles and soon. Different CPU architecture has different realization of system boot module. A standard device operation interface was provided by the device driver modulewhich given hardware control and test function of BSE. This interface realized amechanism that could translate the standard system call to the device driver. The BSEsystem and application software could use it to call the device driver. Some control and debug commands were realized to users by the command consolemodule which established the relationship between the command characters and thecommand function. This commands was involved in some control operation which wasneeded in the preliminary phase of embedded system development. The BSE system couldhelp the embedded system development to independent with Debugger and Simulator. Theentire BSE system had scalability and portability.Key words: embedded system board support environment device driver interface II 论 文 论 文 独创性声明 本人声明所呈交的学位
论文是我个人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除文中已经标明引用的内容外,本
论文不包含任何其他个人或集体已经发表或撰写过的研究成果。
对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到,本声明的法律结果由本人承担。
学位
论文作者签名: 日期: 年 月 日 学位
论文版权使用授权书 本学位
论文作者完全了解学校有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权华中科技大学可以将本学位
论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位
论文。
保密□ ,在_____年解密后适用本授权书。
本
论文属于 不保密□。
(请在以上方框内打“√”)学位
论文作者签名: 指导教师签名:日期: 年 月 日 日期: 年 月 日 论 文 论 文 1 绪论1.1 课题背景 在计算机、互联网和通信技术高速发展的同时,嵌入式系统开发技术也取得迅速发展,嵌入式技术应用范围的急剧扩大,已被广泛地应用于科学研究、工程设计、军事技术以及文艺商业等方方面面,成为 IT 领域发展的主力军12。
人们开始考虑如何将客户终端设备变得更加智能化、数字化,从而使得改进后的客户终端设备轻巧便利、易于控制或具有某些特定的功能3。
为了达到人们对客户终端设备提出的新要求,嵌入式技术提供了一种灵活、高效和高性价比的解决方案,这类解决方案一般是由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等几个部分组成的4。
操作系统和应用软件的开发和测试都必须装载到硬件开发板上进行,由于大多数嵌入式开发板上没有通常的 BIOSBasic Input Output System来实现整个系统的启动和装载,这部分工作一般都是通过仿真器和调试器来完成,使得系统的开发对仿真器和调试器有很大的依赖性。
通常 CPU 厂商提供的 bootloader 仅仅只能完成操作系统的引导工作,这些功能在产品性能稳定后进行量产时能够满足需求;而在系统开发调试阶段,这些功能是远远不够的,需要进行扩充57。
目前,可选用的嵌入式CPU 体系结构有很多,如:ARM8、MIPS9、DSP10、X86 等等。
同类体系结构在CPU 实现及外围电路上也多有不同;CPU 厂商提供的 bootloader 也只能局限于自己的 CPU 芯片,不具备一定的可移植性。
在开发调试阶段,开发板经常需要和主机进行数据通信以完成数据的交换;需要完成对部分硬件驱动的检测;需要完成核心及应用程序的装载测试;需要能够接收用户的命令来完成相应的操作并将操作结果反馈给用户。
以上功能需求都不是普通 bootloader 所能完全具备的,一个功能齐备,界面友好的开发支持环境还不多见。
为完成上述操作,开发者往往需要使用价格不菲的调试器或仿真器来完成,因此, 1 论 文 论 文开发一套功能强大、使用方便、易于移植的集成板级支持环境是非常必要的。
本课题目的是通过对嵌入式板级支持环境的功能进行需求分析,构建一套功能强大、界面友好、易于移植的嵌入式板级支持环境,并就实现该系统的若干关键技术给出解决方案。
该系统以基于 MIPS 体系结构的 IDT RC32438 芯片为例来实现系统与硬件相关的部分
代码;根据不同的 CPU 结构,修改这一部分
代码可方便的实现板级支持环境的移植。
1.2 国内外概况1.2.1 嵌入式系统 嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等几个部分组成,用于实现对其他设备的控制、监视或管理等功能。
与传统的通用计算机、数字产品相比,嵌入式系统产品有其自身的特点11: 1.由于嵌入式系统采用的是微处理器,独立的操作系统,实现相对单一的功能,所以往往不需要大量的外围器件,因而在体积上,功耗上有其自身的优势; 2.嵌入式系统由于空间和各种资源相对不足,硬件和软件都必须高效率地设计,力争在同样的硅片面积上实现更高的性能; 3.嵌入式系统为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在非易失性存储器芯片或单片机本身中,而不是存贮于磁盘载体中; 4.为适应嵌入式分布处理结构和应用上网需求,嵌入式系统要求配备一种或多种标准的网络通信接口。
以信息家电为代表的互联网时代嵌入式产品,不仅为嵌入式市场展现了美好前景,注入了新的生命;同时也对嵌入式系统技术,特别是软件技术提出新的挑战。
这主要包括:支持日趋增长的功能密度、灵活的网络联接、轻便的移动应用和多媒体的信息处理,此外,还需对付更加激烈的市场竞争。
在市场和技术进步的双重推 2 论 文 论 文动下,嵌入式系统技术未来的发展,将呈现出以下几点趋势: 1.功能复杂度日益增大, 随着客户需求的不断改进,嵌入式电子设备的功能不再单一,电气结构也更为复杂。
为了满足应用功能的升级,一方面采用更强大的嵌入式处理器如 32 位、64 位 RISC 芯片或信号处理器 DSP 增强处理能力12;同时还采用实时多任务编程技术和交叉开发工具技术来控制功能复杂性,简化应用程序设计、保障软件质量和缩短开发周期1314。
2.网络连接成为必然趋势,为适应嵌入式分布处理结构和应用上网需求,嵌入式系统要求配备标准的一种或多种网络通信接口1516。
针对 INTERNET 联网要求,嵌入设备必须配有通信接口,并提供 TCP/IP 协议栈支持;由于家用电器相互关联(如防盗报警、灯光能源控制、影视设备和信息终端交换信息)及实验现场仪器的协调工作等要求,新一代嵌入式设备还需具备 IEEE1394、USB、CAN、Bluetooth 或 IrDA通信接口,同时也需要提供相应的通信组网协议和物理层驱动软件。
3.小尺寸、微功耗和低成本,越来越多的嵌入式产品在外观尺寸、电能消耗及生产制造成本上提出了苛刻的要求。
为满足这种特性,要求嵌入式产品设计者相应降低处理器的功耗,限制内存容量和复用芯片接口。
这就相应提高了对嵌入式软件设计的技术要求,要求设计者选用最佳的编程模型和不断改进算法,优化编译器的性能17。
4.系统开发需要强大的开发工具和操作系统的支持,嵌入式开发是一项系统工程,因此要求嵌入式系统厂商不仅提供嵌入式软硬件系统本身,同时还应提供强大的硬件开发环境和软件开发包支持。
目前很多厂商已经充分考虑到这一点,在主推芯片的同时,将开发环境也作为重点推广。
比如三星在推广 ARM7、ARM9 芯片的同时还提供开发板和板级支持包(BSP)1819,而 Windows CE 在主推系统的同时也提供 Embedded
VC作为开发工具20,还有 VxWorks 的 Tornado 开发环境21、DeltaOS 的 Lambda 开发环境等22,都是这一典型趋势的体现。
1.2.2 主流嵌入式 CPU 体系结构特点 嵌入式 CPU 芯片是嵌入式系统的核心部件,用于嵌入式系统的处理器大都是采 3 论 文 论 文用精简指令集计算机(RISC)结构的。
RISC 系统结构一般具有如下一些共性23: 1.较小的指令集; 2.运算指令的操作数和结果面向寄存器; 3.指令的执行长度、寻址方式以及指令的格式基本统一; 4.对于子程序调用返回多利用寄存器实现。
与复杂指令集计算机(CISC)结构相比,RISC 结构 CPU 有电路简单、速度快、芯片功耗和尺寸小、开发周期短等优点,因此广泛应用于嵌入式系统开发领域2425。
目前应用最广的两类嵌入式 RISC 处理器结构是 ARM(Advanced RISC Machine)和 ,两类处理器各有特色,简MIPS(Microcomputer without Interlocked Pipeline Stages)述如下: 1.ARM 处理器特点 ARM 处理器是一种 16/32 位的高性能、低成本、低功耗的嵌入式 RISC 微处理器,它由英国 ARM 公司设计,授权给各半导体厂商生产,目前它是应用最为广泛的嵌入式处理器之一2627。
世界上几乎所有的主要半导体厂商都生产基于 ARM 体系结构的通用芯片, 如: Motorola、 或在其专用芯片中嵌入 ARM 的相关技术。
TI、 Philips、NEC、Sharp、CirrusLogic、SAMSUNG 等公司都有相应的产品。
目前 ARM 芯片广泛应用于无线产品、PDA、GPS、网络、消费类电子产品及 IC 卡产品之中。
ARM 芯片具备了 RISC 结构的典型特征,如: 1 具有大量的寄存器; 2 采用加载/存储结构,数据运算只在寄存器中完成,不直接访问内存; 3 寻址方式简单,地址可由寄存器和指令域确定; 4 采用固定长度的指令格式,易于指令译码; 除此之外,ARM 芯片还采用了一些特别的技术,在保证高性能的同时尽量减少芯片尺寸,减低芯片功耗,提高
代码密度2829。
这些技术包括: 1 在一条数据处理指令中同时完成算术逻辑处理和移位处理; 2 使用地址自增(自减)来优化程序中的循环处理; 3 可用加载/存储指令批量传输数据,以提高数据传输效率; 4 论 文 论 文 4 所有指令都可根据前面指令执行结果决定是否被执行,提高指令执行效率。
ARM 处理器共有 37 个寄存器,被分为若干个组(BANK),这些寄存器包括 31个通用寄存器和 6 个状态寄存器。
此外,ARM 处理器又有 7 种不同的处理器模式,在每一种处理器模式下均有相应的一组寄存器与之对应。
ARM 处理器在较新的体系结构中同时支持两种指令集:ARM 指令集和 Thumb指令集30。
其中 ARM 指令为 32 位长度,Thumb 指令为 16 位长度。
Thumb 指令集是 ARM 指令集的功能子集,与等价的 ARM
代码相比较,Thumb 指令集可节省3040以上的存储空间。
2.MIPS 处理器特点 MIPS 是一种优秀的 RISC 体系结构。
MIPS 处理器应用范围极广,从嵌入式领域到超级计算机应用无所不在。
在嵌入式领域,MIPS 是使用最广泛的体系结构之一,广泛的应用于打印机、游戏机、路由器、多媒体设备及机顶盒等。
MIPS 起源于斯坦福Stanford大学的一个学术项目,后来由一些半导体合作厂家生产并投放市场。
目前,该体系结构得到了半导体制造商们最广泛的支持。
国际上,MIPS 体系结构被多家 工 作 站 和 服 务 器 公 司 所 采 用 , 包 括 SGISilicon Graphics Inc. 和 DECDigitalEquipment Corp.等公司。
许多大的嵌入式 CPU 厂商如 IDT、AMD、Toshiba、NEC等都先后推出了基于 MIPS 体系结构的 CPU 芯片;国产的通用高性能处理器龙芯一号和龙芯二号以及清华大学的 THUMP 嵌入式处理器等均参考了 MIPS 体系结构31。
MIPS 指令体系是基于固定长度和规则编码的指令集,并且采用了 Load/Store 数据传输模式3233;MIPS 采用高效的多级流水线结构,支持高级语言的优化执行;算术和逻辑运算指令采用 3 操作数格式,支持浮点运算;系统内部含有 32 个通用寄存器,使得编译器可通过在这些寄存器中存取那些需要频繁存取的数据,实现对
代码的进一步优化。
灵活的高性能缓存(Cache)和存储器管理体制加强了 MIPS 体系结构的性能。
MIPS 的 Cache 分为指令 Cache 和数据 Cache,Cache 大小可从 256 字节到 4M 字节之间定义,数据 Cache 可以以写回(write-back)或写透(write-through)两种工作方式运行;MIPS 采用 TLB(Translation Look-aside Buffer)存储管理机制来实现内存的 5 论 文 论 文保护和映射,满足了许多嵌入式操作系统对存储器管理的要求。
MIPS 通过附加的敏感数据处理、数据流及预操作等流水线功能,可以满足嵌入式领域对计算能力日益增加的需求。
定点 DSP 类指令加强了对多媒体的处理能力,通过这些新的指令,不需要增加额外的 DSP 硬件,就可以提供更强大的音频、视频及多媒体数据流的处理能力。
上述两类主流嵌入式 CPU 体系结构,虽然不同 CPU 厂商在外围电路实现都有所不同,但内部核都是一样的。
此外 DSP(Digital Signal Process)芯片也是应用较广的一类嵌入式 CPU,它是一种特别适合于进行数字信号处理运算的微处理器34,主要用于实时快速地实现各种数据信号处理算法。
DSP 芯片主要应用于通用信号处理、通信、语音、图形/图像处理等领域。
1.2.3 板级支持环境 由于嵌入式系统开发是与硬件电路密切相关的,大多数 CPU 厂商都无法提供一个通用的、功能齐全的板级支持环境来支持用户的后续开发。
有的公司提供的板级支持包仅在自己提供的评估板上运行良好,想要在其它采用相同类型 CPU 的开发板上运行都必需进行工作量很大的移植工作。
此外,大多数公司提供的板级支持环境功能都很欠缺,有的只包含简单的引导功能,对板上硬件的操作和系统的调试都需要借助于额外的仿真器或调试器,如 BDI 来实现。
目前,许多
开源的引导/装载程序提供的功能都很有限,如:Blob35,U-Boot3637,vivi3839,YAMON40等。
在功能上,这些
开源的引导/装载程序存在下列的一个或几个不足: 1.功能单一,仅仅完成系统的引导和装载任务; 2.无命令接口,用户无法与之进行交互操作; 3.采用串口进行数据传输,速度极慢; 4.无硬件驱动接口,无法完成对板上硬件的操作测试。
上述这些功能上的不足导致了这些引导/装载程序不能提供一个完善的板级支持环境,同时也可以看出:一个完整的板级支持环境是一套庞大而复杂的软件系统,需要仔细的规划和实现。
6 论 文 论 文1.3 课题主要研究工作 从功能上来划分,板级支持环境可分为两大部分:一部分是系统的引导与装载;另一部分是系统的监控与调试。
在目标板上电复位后,板级支持环境首先完成系统的引导和初始化。
随后,在没有用户干预的情况下就直接加载和启动固化在闪存上的操作系统核心;如果有用户干预就进入监控和调试模式,实现对目标板的控制和核心的调试4142。
本课题在分析嵌入式系统开发对板级支持环境功能需求的基础上,结合已有的
开源引导/装载程序的优点,提出并实现一套嵌入式板级支持环境。
本文将对板级支持环境的功能需求进行分析;在功能需求分析的基础上设计板级支持环境的总体结构,并进行功能模块划分;最后就一些关键的功能模块实现给出解.