首页资源分类嵌入式系统 > BSP基础知识学习总结

BSP基础知识学习总结

已有 445008个资源

下载专区

上传者其他资源

    文档信息举报收藏

    标    签:BSPvxworks

    分    享:

    文档简介

    BSP基础知识学习总结 1

    1. 板级支持包(BSP) 1

    1.1. BSP概述 1

    1.2. BSP职责 2

    1.2.1. 目标硬件环境初始化 2

    1.2.2. 硬件驱动程序集成 2

    1.2.3. 与硬件相关的软件集成 2

    2. BSP的组成 2

    2.1. 公共文件 2

    2.1.1. bootConfig.c文件 3

    2.1.2. bootInit.c文件 3

    2.1.3. usrConfig.c文件 3

    2.1.4. dataSegPad.c文件 3

    2.1.5. version.c文件 3

    2.1.6. configAll.h文件 3

    2.2. BSP文件 3

    2.2.1. Makefile文件 3

    2.2.2. Config.h文件 3

    2.2.3. romInit.s文件 3

    2.2.4. sysALib.s文件 4

    2.2.5. sysLib.c文件 4

    2.2.6. sysSerials.c文件 4

    2.2.7. sysNet.c文件 4

    2.2.8. bspname.h文件 4

    2.2.9. 生成文件与其他 4

    2.3. BSP启动过程 4

    3. BSP的开发 5

    4. Tornado介绍与使用 6

    文档预览

     BSP基础知识学习总结 1. 板级支持包(BSP) 1.1. BSP概述 所谓BSP通常是指针对具体的硬件平台,用户所编写的启动代码和部分设备驱动程序的集合。它所实现的功能包括初始化、驱动部分设备。最基本的BSP仅需要支持处理器复位、初始化驱动串口和必要的时钟处理。 在VxWorks系统中,BSP的简单描述为介于底层硬件环境和VxWorks之间的一个软件接口,也可以说是VxWorks的一部分,或者是最简单的VxWorks。BSP主要的功能是系统的上电初始化硬件处理器、初始化操作系统以及提供部分硬件的驱动程序。所以在VxWorks系统中的BSP是和该操作系统密切相关的,以下所说的均是VxWorks的BSP。 初始化包括:CPU初始化,CPU内部寄存器;相关硬件初始化,如控制芯片寄存器等,为整个软件系统建立硬件环境;系统资源初始化,为操作系统运行做准备。 硬件驱动程序,BSP提供必要的设备驱动程序和相关设备的初始化操作。 初始化操作系统,在VxWorks系统中,BSP集成了与硬件相关的软件和部分硬件无关的软件。 BSP不单单是一个硬件设备的驱动程序,它是一个运行在特定硬件环境当中的软、硬件接口程序。其 1.2. BSP职责 BSP管理了目标板从上电到VxWorks内核加载之间目标板的运行方式,其职责概括起来主要有以下几个要点: 1.2.1. 目标硬件环境初始化 BSP是在存储器里的特殊地址处提供一段代码,当目标硬件复位或上电时处理器立即执行这段代码。设置处理器的具体状态,存储器编址,关闭中断,将控制权转交给引导代码,加载需要的VxWorks段到内存中,初始化VxWorks内核前,使目标硬件处于一个静止状态。 1.2.2. 硬件驱动程序集成 BSP必须包含设备的驱动程序以及相关支持和配置管理等功能,支持目标硬件环境的驱动程序集成,完成使用设备的全部功能,将产品的开发和设备的配置分开。最简单的BSP必须具备Flash、内存,串口的配置(WDB和Console,WDB也可选择网口),其他的设备驱动可以放在以后VxWorks中支持。 1.2.3. 与硬件相关的软件集成 BSP功能实现的同时还要考虑代码的可读性和可移植性问题。 2. BSP的组成 BSP的组成包括源文件(C文件和汇编文件)、头文件、makefile文件和生成文件组成,在Tornado(后面章节介绍)安装目录C:\Tornado2.2\target\config下提供了各类CPU类型的BSP的参考文件,针对自己特定的目标板可以按照相近的BSP,直接在上面修改,生成自己的BSP。Config目录下包括两个重要的文件目录:…config\all和…config\BSPname,前一个目录是BSP的公共文件部分,创建工程时需要使用的部分;后一个文件夹是自己创建的BSP目录。 2.1. 公共文件 在Tornado安装目录C:\Tornado2.2\target\config\all下提交了公共的配置文件,构造工程并不直接使用这些文件,只有新建一个可引导型工程时才使用。创建工程后,…\config\all目录下的文件的任何修改都不会对工程产生影响,若需要修改就在工程区中直接修改。但在Tornado开发环境下修改工程的有关配置信息不会对引导映像的构造产生影响,只有直接修改这些配置文件才能影响引导映像的构造。换句话说,若是修改了这些文件,就需要重新创建新的工程。 2.1.1. bootConfig.c文件 所有引导ROM映像的主要初始化与控制文件。包含完整的引导ROM外壳任务,bootConfig.c是usrConfig.c的一个子集,并不包含完整的VxWorks映像的所有可选特性,只提供完整Image中的部分功能。 2.1.2. bootInit.c文件 包含引导ROM映像第二阶段的初始化代码。定义了romStart()函数,用于bootrom的第二阶段初始化。romInit.s文件中的romInit()函数执行完成以后会跳转到romStart()函数,该函数将bootrom从ROM拷贝到RAM中,然后跳转到sysInit()或者用户初始化程序。 2.1.3. usrConfig.c文件 包含VxWorks的主要初始化代码,不同于bootConfig.c,他是非常完整的,包含了…\target\src\config\usrExtra.c,以及在其他提供系统初始化和配置的文件。该文件只有在命令杭下编译时才使用。部分功能跟bootConfig.c里面的功能类似,例如对硬件设备的初始化。 2.1.4. dataSegPad.c文件 只有在VxVMI对代码段进行保护时才使用该文件,它保证了代码段和数据段不会共享一个MMU页,防止冲突发生。 2.1.5. version.c文件 此文件总包含在每一个编译映像中,提供VxWorks的版本号和创建时间。这些信息总是在执行VxWorks映像时显示。 2.1.6. configAll.h文件 设置了所有类型的VxWorks映像的默认配置。这个文件定义的宏是一些通用设置,如果需要的VxWorks映像不同于默认配置,可使用…\config\bspname\目录下的config.h文件进行定义。 2.2. BSP文件 找到相近的BSP文件夹拷贝到…\config\目录下,更改为自己项目的BSP名称。其中包括的文件为: 2.2.1. Makefile文件 Makefile文件是一个采用命令行方式构造VxWorks映像的批处理文件,BSP make系统包含了位于target\h\make下的make子文件。如果某个相关文件不存在,make将自动产生depend.bspname文件,它可以用来追踪所有模块的相关性。 depend.bspname相关性文件并不包含在BSP中,而是一个自动生成的文件。 2.2.2. Config.h文件 该文件包含了所有头文件和与CPU板相关的特殊定义。标准的config.h要对BSP版本号、包含文件、存储器配置(ROM和RAM)、网络配置、时间戳,总线映射等参数进行配置。 2.2.3. romInit.s文件 该文件包含引导ROM和基于ROM的VxWorks映像的入口初始化汇编代码。入口点为romInit()函数,使系统加电启动后首先执行的代码。romInit()主要完成三个主要功能:屏蔽中断,初始化CPU;初始化内存系统,通常包括关闭高速缓存和初始化内存控制器;初始化堆栈指针和其他寄存器以便能够执行C代码。同时他也设定了启动类型参数BOOT_COLD,并把该参数传递给通用的romStart()函数。 2.2.4. sysALib.s文件 该文件包含目标板体系结构或系统相关的汇编语言程序。该文件包含目标板或系统相关的汇编语言函数,该文件中的sysInit()函数是VxWorks映像入口点。系统引导后,首先执行该段代码。sysALib.s所执行的所有功能类似于romInit.s的工作,但它不执行系统内存初始化。 sysInit()是bootrom起来以后执行的第一段代码,sysInit()是在RAM中执行的第一个函数。 2.2.5. sysLib.c文件 包含目标板或系统相关的C语言函数,该文件提供板级接口,通过该接口,VxWorks和应用程序的实现与目标系统无关,sysLib.c可以包含target\src\drv目录下的驱动程序子文件,驱动程序的安装和初始化在子文件中完成。 2.2.6. sysSerials.c文件 是一个可选文件,包含所有的SIO设备串行I/O驱动程序的安装和初始化。主要用于串口设置和初始化。 2.2.7. sysNet.c文件 可选文件,包含网络接口驱动程序的安装和初始化。 2.2.8. bspname.h文件 包含与目标板有关的特殊信息定义。例如串口、时钟、I/O设备。要把src\drv下的某驱动程序移植到目标板上,必须在bspname.h文件开始包含目录src\drv下该驱动程序对应的头文件。 bspname.h应该定义:中断向量或中断号;I/O设备地址;设备寄存器位的含义定义;系统时钟和辅助时钟最大和最小时钟速率。 2.2.9. 生成文件与其他 生成的O文件、BIN文件等是从源文件、头文件、驱动程序等衍生出来的文件。BIN文件作为生成的BSP映像文件可下载到目标板的ROM中。 2.3. BSP启动过程 BSP可分为bootrom引导映像类型和Vxworks映像类型。针对BSP的开发主要是做操作系统加载前的引导映像。启动过程如图所示: 引导程序成功运行后,就将控制权交给VxWorks操作系统,构造VxWorks映像时,可以根据需要构造不同的映像类型:可加载的映像,需要通过引导代码把它装载到目标机的RAM中,然后执行;基于ROM的映像,基于ROM的映像在执行前首先将自己从ROM或FLASH中装载到RAM,然后在RAM中运行程序;ROM驻留型映像,启动时只将数据段拷贝到目标机的RAM中,这类方式启动快运行慢。 3. BSP的开发 BSP开发需要关注的文件较多,最好的方法是找一个近似的BSP作为参考模板,然后根据具体的目标硬件环境在上面修改。新建的BSP的过程可以借助Tornado开发环境下的一些辅助工具,按照一定的步骤分阶段进行开发,每一个步骤都是建立在前一步的开发基础上。步骤如下: (1) 开发环境建立。 软件环境:安装Tornado V2.2.1版本,VxWorks开发环境。 硬件环境:仿真器一台,两个串口线(WDB和Console)。 (2) 安装一个基本的BSP开发环境。找一个近似的BSP文件包拷贝到…\target\config\目录下,文件包中包含上述提到的(2.2中)最基本的文件外,还须有一个P.bat文件,这个批处理文件将把make命令的执行路径指向\Tornado2.2\HOST\X86-WIN32\BIN,为了以后在使用make命令时能找到执行路径; (3) 编写VxWorks内核启动前的初始化代码。修改新建的BSP目录下的相关文件,与目标硬件环境一致,关注CPU、寄存器、内存、I/O等的配置。加载WDB调试口驱动,构造和下载VxWorks引导映像。构造引导映像方法:进入命令行方式->切换目录到当前BSP目录下->P.bat(执行路径选择)->make clean(清除编译文件)->make bootrom_uncmp.bin(编译成一个ROM型可引导非压缩的映像文件)。BSP目录将会产生O文件和一个BIN文件。O文件为源文件生成的编译文件,BIN文件可通过JTAG口下载到目标硬件中; (4) 编译成功下载后,设置PC的超级终端,对应连接Console口,若是正确编译和下载,将会在Console监控界面发现有VxWorks启动信息; (5) 加载WDB驱动。在Tornado中设置WDB为串口,将VxWorks和目标板关联,此时最简的VxWorks加载成功。下一章将详细介绍加载过程。 4. Tornado介绍与使用 Tornado是风河(Wind River)公司的一个交叉编译开发环境,其提供了VxWorks的开发环境。下文将介绍在开发BSP过程中Tornado的使用。 (1) Tornado安装后,首先保证版本为2.2.1,由于原先2.2.0往往在编译时出错。安装2.2后,可以将2.2.1的target目录下的文件覆盖拷贝到2.2.0; (2) 创建项目Create a vbootable VxWorks,基于ROM的VxWorks。Create av downloadable VxWorks,一个可下载的VxWorks,在调试中使用; (3) 选定近似的BSP,按照上文提到的修改与目标硬件对应的正确BSP,在命令行方式下使用make命令编译成vbootrom_uncmp.bin文件; (4) 下载BSP到Flash。可选用JLINK工具,注意内存寄存器设置,SDRAM是单片还是双片; (5) 编译创建的最精简的VxWorks,没有加任何组建。在编译属性中修改Built->default->在属性将Macros中的wind_Base文件夹删除(此文件夹不存在)。然后编译,会在Project\BSPprj\default目录下,生成一个VxWorks; (6) Tools->Target Server->configure设置使用串口作为WDB。Target Server Properti选择Target Server File syst Root,文件选择(5)中生成的VxWorks文件,然后启动(Launch); (7) 等待下载完成后,最精简的VxWorks加载成功,从Console口就可以看到VxWorks启动信息; (8) 在Project中可以加入组件target shell compoents,再从第(5)中执行,启动Tornado shell工具可进入调试环境,至此表明BSP调试成功。

    Top_arrow
    回到顶部
    EEWORLD下载中心所有资源均来自网友分享,如有侵权,请发送举报邮件到客服邮箱bbs_service@eeworld.com.cn 或通过站内短信息或QQ:273568022联系管理员 高员外,我们会尽快处理。