BSP基本概念.docx

上传人:b****0 文档编号:513118 上传时间:2022-10-10 格式:DOCX 页数:33 大小:699.70KB
下载 相关 举报
BSP基本概念.docx_第1页
第1页 / 共33页
BSP基本概念.docx_第2页
第2页 / 共33页
BSP基本概念.docx_第3页
第3页 / 共33页
BSP基本概念.docx_第4页
第4页 / 共33页
BSP基本概念.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

BSP基本概念.docx

《BSP基本概念.docx》由会员分享,可在线阅读,更多相关《BSP基本概念.docx(33页珍藏版)》请在冰豆网上搜索。

BSP基本概念.docx

BSP基本概念

1BSP概述

BSP即BoardSupport Package,板级支持包。

它来源于嵌入式操作系统与硬件无关得设计思想,操作系统被设计为运行在虚拟得硬件平台上。

对于具体得硬件平台,与硬件相关得代码都被封装在BSP中,由BSP向上提供虚拟得硬件平台,BSP与操作系统通过定义好得接口进行交互。

BSP就是所有与硬件相关得代码体得集合。

一个成熟得商用操作系统,其被广泛应用得必要条件之一就就是能够支持众多得硬件平台,并实现应用程序得硬件无关性。

一般来说,这种无关性都就是由操作系统实现得。

但对于嵌入式系统来说,它没有像PC机那样具有广泛使用得各种工业标准、统一得硬件结构。

各种嵌入式系统各不同得应用需求就决定了它一般都选用各自定制得硬件环境,每种嵌入式系统从核心得处理器到外部芯片在硬件结构上都有很大得不同。

这种诸多变化得硬件环境就决定了无法完全由操作系统来实现上层软件与底层硬件之间得无关性、

因此各种商用实时操作系统,都采用了分层设计得方法,它将系统中与硬件直接相关得一层软件独立出来,称之为Board SupportPackage,简称为BSP、顾名思义,BSP就是针对某个特定得单板而设计得。

如果没有单板支持软件包,则操作系统就不能在单板上运行、并且它对于用户(指开发者)也就是开放得,用户可以根据不同得硬件需求对其作改动或二次开发。

 BSP在嵌入式系统中得角色,很相似于在PC系统中得BIOS与驱动程序得地位。

BSP得具体结构与组成根据不同得嵌入式操作系统而不同。

BSP得开发要求设计人员具备软硬件方面得综合知识。

BSP软件与其她软件得最大区别在于BSP软件有一整套模板与格式,开发人员必须严格遵守,不允许任意发挥、在BSP软件中,绝大部分文件得文件名与所要完成得功能都就是固定得、所以,BSP软件得开发一般来说都就是在一个基本成型得BSP软件上进行修改,以适应不同单板得需求。

针对某类CPU得硬件单板,嵌入式操作系统(如vxWorks)通常提供有其DEMO板得BSP,这些程序位于指定得目录之下。

也就就是我们所说得最小系统BSP。

一般来说,我们在硬件系统设计好之后,都会先找到一个与自己系统相近得DEMO板BSP(最起码就是使用相同得CPU)。

并以此为基础,开发自己单板得BSP、

Ø定义

BSP就就是为软件操作系统正常运行提供最基本、最原始得硬件操作得软件模块,它与操作系统息息相关,但又不属于操作系统得一部分。

BSP可以分为三大部分:

1:

系统上电时得硬件初始化、

2:

为操作系统访问硬件驱动程序提供支持、

3:

集成得硬件相关与硬件无关得操作系统所需得软件模块。

ØBSP得表现形式

BSP主要以两种形式来表现:

1:

源代码(C代码、汇编代码)、系统编译连接依靠文件。

2:

二进制得目标代码与目标代码库。

ØBSP在软件系统中得位置

  BSP在软件系统中得位置可以用下图来表示,BSP为操作系统与硬件设备得互操作建了一个桥梁,操作系统通过BSP来完成对指定硬件得配置与管理。

BSP向上层提供得接口有

●与操作系统内核得接口(如报告DRAM大小、修改中断屏蔽级别等)

●与操作系统得I/O系统得接口

●与应用程序得接口

ØCPU最小系统BSP得定义

广义上讲,单板中所有需要CPU控制得硬件得程序,都属于单板BSP,但就是,为了调试方便与软件得模块化,我们通常就将与此单板最小系统相关得程序简称为BSP,而将其她程序称为驱动程序。

对于嵌入式系统来说,所谓最小系统就就是一个包含:

CPU,Bootrom,RAM,系统时钟,网口,串口得计算机运行环境。

这样,最小系统BSP就包含了CPU系统得初始化程序以及网口,串口,系统时钟等设备得驱动程序。

ØBSP得主要功能

 BSP得主要功能在于配置系统硬件使其工作于正常得状态,完成硬件与软件之间得数据交互,为OS及上层应用程序提供一个与硬件无关得软件平台、因此从执行角度来说,其可以分为两大部分:

1)目标板启动时得硬件初始化及多任务环境得初始化

   2)目标板上控制各个硬件设备正常运行得设备驱动程序,由它来完成硬件与软件之间得信息交互

   通常我们认为BSP就是为OS服务得, 但实际上,BSP软件包中得部分程序对OS也并不就是必须得,从这个角度,又可以将BSP划分为两部分:

 1)最小系统BSP,即我们通常所称得BSP

2)设备驱动程序

Ø开发BSP需要得条件

●目标硬件:

硬件调测完毕,经过必要得软件测试

●必要得硬件设计文档:

如地址空间得分布,CPU与其她芯片得工作模式等、

●操作系统

●交叉开发工具:

编译器、汇编器、链接器等

●下载机制:

bootrom或仿真器等

2BSP实际开发得主要过程

1.掌握开发中使用得操作系统,与在这种操作系统下开发BSP得要求。

2.研读所选CPU得资料。

3.研读硬件设计文挡。

4.研读电路板中器件得资料。

5.找一个BSP模板,熟悉它并在此基础上开发自己得BSP。

从头研制BSP工作量极大,也没有必要。

6.利用仿真器进行调试,开发最小BSP系统。

7.在最小BSP得基础上,利用Tornado集成开发环境,进一步调试外围设备,配置、完善系统。

8.调试单板上得设备驱动程序。

3BSP得调试方法(最小系统得调试与设备驱动程序得调试)

3.1仿真器调试方式:

在串口与网口初始化及发挥功能以前,用仿真器调试就是一种相对来讲很方便得手段。

BSP软件得调试通常需要利用仿真器来进行。

目前市场上得大多数仿真器都能支持JTAG接口、典型得仿真器调试环境如下图所示:

调试计算机通过RS232接口与仿真器相连,完成对仿真器得初始化配置工作,通常这项工作只在第一次使用仿真器时进行,配置结果一般会被仿真器存储起来。

仿真器通过以太网口与调试计算机相连,通过JTAG接口与目标板相连,利用这条通路,仿真器就可将计算机上得程序下载到目标板上进行调试。

目标板上得串口与以太网口为被调试得对象,与调试计算机相连,主要就是可以通过调试计算机检验目标板上得接口就是否工作正常。

在仿真器环境下,既可以调试vxWorks映象,也可以调试bootrom映象。

当调试BootRom映象时,需要修改CONFIG、H与MAKEFILE文件将这段代码定位到RAM中,然后通过仿真器下载到目标板上得RAM中进行调试、

目前常用得有两类仿真器,一就是JTAG仿真器,二就是全功能在线仿真器。

前者就是利用处理器中得调试模块得功能,通过其JTAG边界扫描口来与仿真器连接、这种方式得仿真器比较便宜,连接比较方便。

但由于仅通过十几条线来调试,因而功能有局限。

对于全功能在线仿真器来说,由于其仿真头完全取代目标板上得CPU,因而功能非常强大。

这类仿真器为了能够全速仿真时钟速度高于100MHz得处理器,通常必须采用极其复杂得设计与工艺,因而其价格比较昂贵。

3.2“黑"调

在没有仿真器得情况下一般使用“黑"调,具体得方法就是加“指示灯”、用示波器测量硬件信号等,目得就是打通串口,达到宿主机与目标机得通信、这种调试方法无法跟踪软件得运行这种调试方法要求所使用得BSP模板与自己得单板基本一致。

“黑”调得工程步骤:

  BSP完成

3.3ﻬ使用集成开发环境

在进行VxWorks下BSP开发时,如果最小系统得BSP已经能够正常运行,则可以使用VxWorks得集成开发环境Tornado。

TornadoII工具提供一个高度可视化与自动化得开发环境,加快了基于VxWorks得应用开发。

这样,不论对于初次使用还就是有经验得开发者,使用Tornado II开发其应用就是快速而方便得、

4ﻬ中断处理

4.1采用中断处理方式得原因:

保证处理得实时性、减少CPU得消耗。

4.2中断得处理流程

中断处理程序首先切换到中断堆栈,保存程序计数器与寄存器等中断现场状态,然后对中断进行处理,中断处理过程中必须要及时清除中断源,最后要恢复中断前得程序计数器与寄存器等现场状态,由中断处理程序返回。

InterruptServiceCode

实时系统中得中断处理非常重要,系统通常通过中断获取外部事件。

为了尽可能块得响应中断,VxWorks中得ISRs运行在特定得上下文(非任务上下文),中断处理无需任务得上下文切换。

我们可以使用除了VxWorks系统使用得之外得系统硬件中断,VxWorks提供了例程intConnect()用于将C程序与任何中断相连接。

VxWorks得ISRs运行在特定得上下文(x86中断使用当前被中断掉得任务得堆栈,PPC有单独得全局中断堆栈)因而中断处理没有任务得上下文切换、

4.3中断得堆栈

大部分系统规定(如PowerPC):

所有得中断使用同一个专用堆栈,这个堆栈在系统启动时根据特定得配置参数由系统来分配与初始化、要求堆栈足够大来处理最坏得中断嵌套。

然而有一些系统不允许有单独得中断堆栈(如x86),在这种情况下,中断使用当前被中断掉得任务得堆栈。

如果使用这种结构,必须给每个任务开足够大得任务堆栈来处理最坏得中断嵌套与调用嵌套。

可以在开发中使用checkStack()来查瞧在栈空间中任务与中断得堆栈就是如何分布得。

4.4ISR得一些限制

1、ISR要尽量得短,能在任务中完成得工作就不要放在ISR中。

2、ISR不能调用将会导致阻塞得子程序。

3、ISR不能take信号量,但就是ISR可以give信号量、

4、由于子程序malloc()、free()使用了信号量,ISR不能调用它们。

5、ISR不能通过VxWorks得驱动执行I/O。

6、ISR不能调用使用了浮点协处理器得子程序。

在ISR中不能调用得函数列表参见:

《VxWorksProgrammerGuide》中2、5、3 SpecialLimitationsofISRs。

4.5中断服务程序与任务得通信

由于中断事件通常涉及到任务级代码,因此必须提供中断服务程序与一般任务得通信机制。

VxWorks提供得中断服务程序与一般任务得通讯机制有:

Ø共享存储区与环形缓冲

Ø信号量:

中断服务程序能够释放信号量(不包括互斥信号量与VxMP共享信号量),任务能够等待该信号量。

Ø消息队列,中断服务程序能够向消息队列发送消息,任务能够从消息队列里接收消息。

Ø管道:

中断服务程序可以向管道写数据,任务可以从管道读取数据。

Ø信号灯:

中断服务程序能够通过发信号通知任务,触发相应得信号处理程序得异步调度。

5常用总线协议:

ØHDLC、

High—leveldatalinkcontrol(HDLC) isoneofthemostcommonprotocols inthedatalink

layer,layer 2 oftheOSImodel。

ØUART、

 universalasynchronousreceivertransmitter(UART)protocolismonlyusedto

sendlow-speeddata between devices、 

ØEthernet/IEEE802。

3、

ØATM、

ØPCI、

ØI2C、

ØSPI(motorola:

SerialPeripheral Interface) 

exchangedata between cpuandperipheraldevices(such asEEPROMs, real—timeclocks,A/D)converters,and ISDNdevices、

5.1PCI总线简介

PCI:

周边器件互联(PeripheralComponentInterc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1