2022年BSP基本概念[整 .pdf
《2022年BSP基本概念[整 .pdf》由会员分享,可在线阅读,更多相关《2022年BSP基本概念[整 .pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1BSP概述BSP即Board Support Package,板级支持包。它来源于嵌入式操作系统与硬件无关的设计思想, 操作系统被设计为运行在虚拟的硬件平台上。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由 BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义好的接口进行交互。 BSP是所有与硬件相关的代码体的集合。一个成熟的商用操作系统,其被广泛应用的必要条件之一就是能够支持众多的硬件平台,并实现应用程序的硬件无关性。一般来说,这种无关性都是由操作系统实现的。但对于嵌入式系统来说,它没有像PC机那样具有广泛使用的各种工业标准、统一的硬件结构。 各种嵌入式系统各不同的应用需求就
2、决定了它一般都选用各自定制的硬件环境,每种嵌入式系统从核心的处理器到外部芯片在硬件结构上都有很大的不同。这种诸多变化的硬件环境就决定了无法完全由操作系统来实现上层软件与底层硬件之间的无关性。因此各种商用实时操作系统,都采用了分层设计的方法,它将系统中与硬件直接相关的一层软件独立出来,称之为Board Support Package,简称为 BSP 。顾名思义, BSP 是针对某个特定的单板而设计的。如果没有单板支持软件包,则操作系统就不能在单板上运行。并且它对于用户 (指开发者) 也是开放的, 用户可以根据不同的硬件需求对其作改动或二次开发。 BSP在嵌入式系统中的角色,很相似于在PC 系统中
3、的 BIOS和驱动程序的地位。BSP 的具体结构和组成根据不同的嵌入式操作系统而不同。BSP 的开发要求设计人员具备软硬件方面的综合知识。BSP软件与其他软件的最大区别在于BSP软件有一整套模板和格式,开发人员必须严格遵守, 不允许任意发挥。在 BSP软件中, 绝大部分文件的文件名和所要完成的功能都是固定的。所以, BSP软件的开发一般来说都是在一个基本成型的BSP软件上进行修改,以适应不同单板的需求。针对某类 CPU的硬件单板, 嵌入式操作系统( 如 vxWorks) 通常提供有其DEMO板的 BSP, 这些程序位于指定的目录之下。也就是我们所说的最小系统BSP 。一般来说,我们在硬件系统设
4、计好之后,都会先找到一个与自己系统相近的DEMO 板 BSP (最起码是使用相同的 CPU ) 。并以此为基础, 开发自己单板的BSP 。?定义BSP就是为软件操作系统正常运行提供最基本、最原始的硬件操作的软件模块,它和操作系统息息相关,但又不属于操作系统的一部分。BSP可以分为三大部分:1:系统上电时的硬件初始化。2:为操作系统访问硬件驱动程序提供支持。3:集成的硬件相关和硬件无关的操作系统所需的软件模块。?BSP 的表现形式BSP主要以两种形式来表现:1:源代码( C代码、汇编代码) 、系统编译连接依靠文件。2:二进制的目标代码和目标代码库。名师资料总结 - - -精品资料欢迎下载 - -
5、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 31 页 - - - - - - - - - ?BSP 在软件系统中的位置BSP 在软件系统中的位置可以用下图来表示,BSP 为操作系统和硬件设备的互操作建了一个桥梁,操作系统通过BSP 来完成对指定硬件的配置和管理。和硬件无关的系统软件模块I/O 系统文件系统TCP/IP MUX 操作系统库硬件相关的系统软件模块Flash/SCSI Driver 操作系统内核Lan Driver BSP 硬件SCC Timer Lan 控制器Flash/SCSI Controller
6、BSP 向上层提供的接口有与操作系统内核的接口(如报告DRAM 大小、修改中断屏蔽级别等)与操作系统的I/O 系统的接口与应用程序的接口? CPU 最小系统BSP 的定义广义上讲,单板中所有需要CPU控制的硬件的程序,都属于单板BSP ,但是,为了调试方便和软件的模块化,我们通常就将与此单板最小系统相关的程序简称为BSP ,而将其他程序称为驱动程序。对于嵌入式系统来说,所谓最小系统就是一个包含:CPU, Bootrom, RAM, 系统时钟,网口,串口的计算机运行环境。这样,最小系统BSP就包含了 CPU系统的初始化程序以及网口,串口,系统时钟等设备名师资料总结 - - -精品资料欢迎下载 -
7、 - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 31 页 - - - - - - - - - 的驱动程序。? BSP 的主要功能BSP 的主要功能在于配置系统硬件使其工作于正常的状态,完成硬件与软件之间的数据交互,为OS 及上层应用程序提供一个与硬件无关的软件平台。因此从执行角度 来说,其可以分为两大部分:1)目标板启动时的硬件初始化及多任务环境的初始化2)目标板上控制各个硬件设备正常运行的设备驱动程序,由它来完成硬件与软件之间的信息交互通常我们认为BSP 是 为 OS 服务 的,但实际上,BSP 软件包中的部分程
8、序对OS也并不是必须的,从这个角度,又可以将BSP 划分为两部分:1)最小系统BSP,即我们通常所称的BSP2) 设备驱动程序?开发 BSP 需要的条件目标硬件:硬件调测完毕,经过必要的软件测试必要的硬件设计文档:如地址空间的分布,CPU 和其他芯片的工作模式等。操作系统交叉开发工具:编译器、汇编器、链接器等下载机制: bootrom 或仿真器等2BSP实际开发的主要过程1.掌握开发中使用的操作系统,和在这种操作系统下开发BSP 的要求。2.研读所选CPU的资料。3.研读硬件设计文挡。4.研读电路板中器件的资料。5.找一个 BSP模板,熟悉它并在此基础上开发自己的BSP 。从头研制BSP工作量
9、极大,也没有必要。6.利用仿真器进行调试,开发最小BSP系统。7.在最小 BSP的基础上,利用Tornado 集成开发环境,进一步调试外围设备,配置、完善系统。8.调试单板上的设备驱动程序。3BSP的调试方法(最小系统的调试和设备驱动程序的调试)3.1 仿真器调试方式:在串口和网口初始化及发挥功能以前,用仿真器调试是一种相对来讲很方便的手段。BSP软件的调试通常需要利用仿真器来进行。目前市场上的大多数仿真器都能支持 JTAG接口。典型的仿真器调试环境如下图所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - -
10、 - - - - - 第 3 页,共 31 页 - - - - - - - - - 调试计算机仿真器目标板RS232RS232ENETJTAG调试计算机通过 RS232接口与仿真器相连,完成对仿真器的初始化配置工作,通常这项工作只在第一次使用仿真器时进行,配置结果一般会被仿真器存储起来。仿真器通过以太网口与调试计算机相连,通过JTAG接口与目标板相连,利用这条通路,仿真器就可将计算机上的程序下载到目标板上进行调试。目标板上的串口和以太网口为被调试的对象,和调试计算机相连,主要是可以通过调试计算机检验目标板上的接口是否工作正常。在仿真器环境下, 既可以调试 vxWorks映象,也可以调试 boo
11、trom 映象。当调试 BootRom映象时,需要修改CONFIG.H和 MAKEFILE 文件将这段代码定位到RAM 中,然后通过仿真器下载到目标板上的RAM 中进行调试。目前常用的有两类仿真器,一是JTAG 仿真器,二是全功能在线仿真器。前者是利用处理器中的调试模块的功能,通过其 JTAG 边界扫描口来与仿真器连接。这种方式的仿真器比较便宜, 连接比较方便。但由于仅通过十几条线来调试,因而功能有局限。对于全功能在线仿真器来说,由于其仿真头完全取代目标板上的CPU,因而功能非常强大。这类仿真器为了能够全速仿真时钟速度高于100MHz 的处理器,通常必须采用极其复杂的设计和工艺,因而其价格比较
12、昂贵。3.2 “黑”调在没有仿真器的情况下一般使用“黑”调,具体的方法是加“指示灯”、用示波器测量硬件信号等, 目的是打通串口,达到宿主机与目标机的通信。这种调试方法无法跟踪软件的运行这种调试方法要求所使用的BSP模板与自己的单板基本一致。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 31 页 - - - - - - - - - “黑”调的工程步骤: BSP完成烧 ROMBuild 最简IMAGEBuildBSPlibModifyBSP最小系统OK?Bsp其他部分okd
13、ownloadBuild ram类型imageBuild image验证其他部分增加bsp其他部分STARTNO“黑”调YESye sNO名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 31 页 - - - - - - - - - 3.3 使用集成开发环境在进行 VxWorks 下 BSP 开发时, 如果最小系统的BSP 已经能够正常运行,则可以使用VxWorks 的集成开发环境Tornado。 Tornado II 工具提供一个高度可视化和自动化的开发环境,加快了基于V
14、xWorks 的应用开发。这样,不论对于初次使用还是有经验的开发者,使用 Tornado II 开发其应用是快速而方便的。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 31 页 - - - - - - - - - 4中断处理4.1 采用中断处理方式的原因:保证处理的实时性、减少CPU 的消耗。4.2 中断的处理流程中断处理程序首先切换到中断堆栈,保存程序计数器和寄存器等中断现场状态,然后对中断进行处理, 中断处理过程中必须要及时清除中断源,最后要恢复中断前的程序计数器和
15、寄存器等现场状态,由中断处理程序返回。Interrupt Service Code 实时系统中的中断处理非常重要,系统通常通过中断获取外部事件。为了尽可能块的响应中断, VxWorks 中的 ISRs 运行在特定的上下文(非任务上下文),中断处理无需任务的上下文切换。我们可以使用除了VxWorks 系统使用的之外的系统硬件中断,VxWorks 提供了例程intConnect( )用于将 C程序与任何中断相连接。VxWorks 的 ISRs 运行在特定的上下文(x86中断使用当前被中断掉的任务的堆栈,PPC有单独的全局中断堆栈)因而中断处理没有任务的上下文切换。4.3 中断的堆栈大部分系统规定(
16、如PowerPC ) :所有的中断使用同一个专用堆栈,这个堆栈在系统启动时根据特定的配置参数由系统来分配和初始化。要求堆栈足够大来处理最坏的中断嵌套。然而有一些系统不允许有单独的中断堆栈(如x86) ,在这种情况下,中断使用当前被中断掉的任务的堆栈。如果使用这种结构,必须给每个任务开足够大的任务堆栈来处理最坏的中断嵌套和调用嵌套。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 31 页 - - - - - - - - - 可以在开发中使用 checkStack()来查看在
17、栈空间中任务和中断的堆栈是如何分布的。4.4 ISR 的一些限制1、 ISR 要尽量的短,能在任务中完成的工作就不要放在ISR 中。2、 ISR 不能调用将会导致阻塞的子程序。3、 ISR 不能 take 信号量,但是ISR 可以 give 信号量。4、 由于子程序malloc () 、free ()使用了信号量,ISR 不能调用它们。5、 ISR 不能通过 VxWorks 的驱动执行I/O 。6、 ISR 不能调用使用了浮点协处理器的子程序。在 ISR 中不能调用的函数列表参见:VxWorks Programmer Guide 中 2.5.3 Special Limitations of I
18、SRs。4.5 中断服务程序与任务的通信由于中断事件通常涉及到任务级代码,因此必须提供中断服务程序和一般任务的通信机制。 VxWorks 提供的中断服务程序和一般任务的通讯机制有:? 共享存储区和环形缓冲? 信号量:中断服务程序能够释放信号量(不包括互斥信号量和VxMP 共享信号量),任务能够等待该信号量。? 消息队列,中断服务程序能够向消息队列发送消息,任务能够从消息队列里接收消息。? 管道:中断服务程序可以向管道写数据,任务可以从管道读取数据。? 信号灯:中断服务程序能够通过发信号通知任务,触发相应的信号处理程序的异步调度。5常用总线协议:? HDLC 、High-level data l
19、ink control (HDLC) is one of the most common protocols in the data link layer, layer 2 of the OSI model. ? UART 、universal asynchronous receiver transmitter (UART) protocol is commonly used to send low-speed data between devices. ? Ethernet/IEEE 802.3 、名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - -
20、- - - - - 名师精心整理 - - - - - - - 第 8 页,共 31 页 - - - - - - - - - ? ATM 、? PCI、? I2C、? SPI(motorola : Serial Peripheral Interface) exchange data between cpu and peripheral devices (such as EEPROMs, real-time clocks, A/D)converters, and ISDN devices.5.1 PCI 总线简介PCI:周边器件互联(Peripheral Component Interconnec
21、t )。目前最新版本2.2,但很多器件还只支持2.1。PCI与器件的基本关系。?Host/PCI 北桥:连接主处理器总线到PCI 总线?PCI/ISA 南桥:连接 PCI总线到 ISA(或 EISA)总线,南桥通常含IDE 控制器、中断控制器、 USB 主控制器、 DMA 控制器。?PCI/PCI :连接 PCI总线到 PCI总线设备和功能:支持 256个PCI总线。每条 PCI总线上最多可以有32个设备(最多56个比较合适)。每个设备可以有1 8个功能。性能:33M,32bit 传输速率 132MB 33M,64bit 传输速率 264MB 66M,32bit 传输速率 264MB 66M,
22、64bit 传输速率 528MB 6单板的硬件组成BSP 与单板密切相关,要开发BSP 就要了解单板的硬件组成,单板一般由CPU 最小系统和一些外围硬件设备构成。CPU 最小系统:CPU 、内存、内存控制器、调试串口、调试网口、系统时钟、桥片、外围芯片(包括)、实时时钟、定时器、FPGA 、部分嵌入式系统也包括软硬盘控制器、显卡、键盘。不同单板使用不同的专用设备芯片:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 31 页 - - - - - - - - - DMA 控制
23、器、 E1 传输芯片、光接口芯片、时隙交换、FLASH 、 host/pci 桥片pci/pci 桥片、以太网口芯片 (如 intel 的 82559、 realtek 的 8139) 、 以太网口交换芯片 (BCM5616 ) 、 CSM5000 、CSM5500、看门狗、专用FPGA逻辑等等。典型的单板组成示意图:? IS95/1X 中的 SVICM 单板组成示意图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 31 页 - - - - - - - - - ? 3G
24、 系统中的 CPU 最小系统结构示意HOST/PCIPCI接口PMC P11/P12?33MHz-32bitPCI总线PCI? -ETHERNET接口转换芯片RJ45CORE ? ? ? ? RS232OSCOSCUART控制器BOOT LASH512KBSDRAMFLASHEPLD监控LED/CS_UART/CS_BOOT/RCS0 、LOCAL ADDRESSCPUPMC P14连接器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 31 页 - - - - - -
25、- - - ?3G系统中的 CCM 单板结构示意7处理器:我们目前经常使用的处理器:POWERPC 、ARM 、MIPS、x86 等系列处理器?POWERPC: Mpc860、Mpc8260、Mpc850、Mpc8250、Mpc755、Mpc8245 、Mpc7450 、IBM750 ?ARM :IXP1200 、IXC1100 ?X86 :(PIII 处理器)各处理器的特点 (见硬件相关文档) : 嵌入式系统使用的CPU 一般具有低功耗、 体积小、集成度高等特点,而且一般内部集成了内存控制器、串口控制器、以太网口控制器等芯片。例如:MPC8260 POWERQUICC 是一个功能强大的嵌入式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年BSP基本概念整 2022 BSP 基本概念
限制150内