欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    Vxworks BSP开发流程.docx

    • 资源ID:3168787       资源大小:43.70KB        全文页数:15页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Vxworks BSP开发流程.docx

    Vxworks BSP开发流程Vxworks BSP开发 1 板级支持包的介绍 2 VxWorks映象及启动顺序 3 VxWorks预内核初始化 4 BSP的配置 5 BSP的开发 6 VxWorks下设备驱动程序概述 板级支持包的介绍 一板级支持包简述 在VxWorks系统中,对BSP的简单描述为:介于底层硬件环境和VxWorks之间的一个软件接口,它的主要功能是在系统加电后初始化目标机硬件、初始化操作系统、提供部分硬件的驱动程序。具体功能包括: 初始化。所谓初始化就是指从系统上电复位开始,到VxWorks开始初始化用户应用的一段时间内系统所执行的过程。这个过程主要包括三个部分的工作: ·CPU初始化。初始化CPU的内部寄存器。 ·目标机初始化。初始化控制芯片的寄存器,I/O设备的寄存器,为整个软件系统提供底层硬件环境的支持。 ·系统资源初始化。为操作系统及系统的正常运行做准备,进行资源初始化,如空间分配等等。 使VxWorks能够访问硬件驱动程序。这主要是指VxWorks包含必要的设备驱动程序和相关设备的初始化。 在VxWorks系统中,集成了与硬件相关的软件和部分与硬件无关的软件。 二板级支持包与VxWorks 从上面的图中,我们可以看到,BSP不是设备驱动程序,因为设备驱动程序可以访问硬件设备,同时,相同设备的驱动程序可以不作修改的从一个环境移植到另外一个环境当中去,而BSP只能在特定的环境下面运行。 简单地说,BSP开发人员要完成两个方面的工作: 完全支持BSP管理设备 通用设备驱动程序的集成工作 三BSP的组成 BSP包含的程序是提供VxWorks访问目标机硬件环境的主要接口。BSP主要由下面几类文件组成。 1 源文件 主要是由C语言编写的代码所组成的文件,也有一小部分由汇编语言编写而成。 2 头文件 包含针对CPU板的硬件定义以及内存定位定义的文件。 3 Make file文件 控制构造所有类型映象的文件 4 派生文件 由其他文件衍生而成的文件。 BSP的组成文件主要包含在以下四个目录里面: · .Tornadotargetconfigall · .TornadotargetconfigcompsvxWorks · .Tornadotargetconfigcompssrc · .Tornadotargetconfigbspname 1. .targetconfigall目录下的文件 这个目录下的文件作为VxWorks体系结构产品的一部分交给用户.如果不是特殊需要的话,没有必要修改这些文件。简单的说,configall下的文件并不是特定BSP的一部分,而是所有BSP的公共部分。该目录下主要包含如下几个文件: (1) bootConfig.c 引导ROM映象的主要初始化和控制文件. (2) bootInit.C bootInit.c包含引导ROM映象第二阶段初始化的代码。该文件定义了romStart函数,romInit.s中的romInit函数执行完毕后会跳转到romStart函数。该函数执行必要的代码压缩和ROM型映象的重定位。 (3) dataSegPad.c 它保证了代码段和数据段不会共享一个MMU. (4) usrCongif.c 包含了VxWorks映象的主要初始化代码。不同于bootInit.c文件,它是非常完整的。 (5) version.c 提供了VxWorks的版本号、构造映象的日期和时间等信息。 (6) configAll.h 设置了所有VxWorks映象的默认设置。在这个文件里定义的变量是一些通用的设置,如果需要的VxWorks映象不同于默认的设置,使用configbspname目录下的config.h文件中定义的宏来替换这里定义的默认宏。 2. .targetconfigbspname目录下的文件 这个子目录包含系统或者硬件相关的BSP文件,主要由下面的一些文件组成。 (1) Readme文件 Readme文件包含了这个BSP的发布记录。它记录了每次发布版本、修订版本和新版本上面所做的工作。 (2) Makefile和depend.bspname文件 Makefile文件控制使用命令行方式构造映象。从VxWorks5.2开始,标准的make工具是GNU make。BSP make系统包含了位于targethmake目录下的make子文件。如果某个相关性文件不存在,make将自动产生一个depend.bspname文件,它可以用来追踪所有模块的相关性。 (3) Config.h文件 Config.h文件包含了所有头文件和CPU板相关的特殊定义。标准的config.h包含下面的内容: · BSP版本号和修订版本号 · 包含configAll.h文件 · 高速缓冲存储器和MMU的配置 · 共享内存网络定义 · 目标板上的内存地址和大小 · ROM地址和大小 · 非易失性RAM · 默认的引导参数 · 时间戳驱动程序支持 · 外部总县地址映射 · 网络设备和中断向量 · 包含bspname.h文件 (4) romInit.s文件 该文件包含引导ROM和基于引导ROM的VxWorks映象的入口初始化汇编代码。入口点为romInit函数,是系统加电启动后首先执行的代码。同时它也设置了启动参数类型,并把该参数传递给通用的romStart函数。如果硬件需要立即内存映射或者设置特殊的寄存器,则在这里处理。 一个普遍的错误是BSP的开发人员企图在romInit.s文件中进行过多的初始化操作。实际上,大部分其他初始化操作是被推迟到sysHwInit函数中进行的。另外,romInit.s文件中的代码不应当被其它的函数或者模块所调用。 (5) sysALib.s 这个文件包含目标机体系结果所决定的、与系统有关的汇编语言程序。所有BSP程序应当用C语言来编写,然而由于编译等原因需要用汇编语言程序编写的时候,可以把所有汇编语言编写的程序代码放在 sysALib.s中。 sysALib.s文件里的sysInit函数是VxWorks映象的入口点。系统引导之后,首先执行该段代码。 (6) sysLib.c 这个文件包含目标机体系结构所决定的、与系统有关的C程序。这些程序提供板极接口,基于这些板极接口,VxWorks和应用程序的构造和系统无关。sysLib.c文件中包含了对驱动程序的安装和初始化工作,这些工作具体在一些子文件中实现,比如sysSerial.c、sysScsi.c、sysNet.c等。使用子文件的目的是为了保持设备驱动程序的安装和初始化不随结构的变化而改变。 (7) sysSerial.c SIO设备串行I/O设备驱动程序的安装和初始化 (8) sysScsi.c 包含SCSI-2设备驱动程序的安装和初始化 (9) sysNet.c 网络接口程序的安装和初始化 (10) bspname.h 与目标板有关的特殊信息的定义 (11) target.nr 这个文件了运行VxWorks必须需要的目标板特殊信息 (12) configNet.h 网络配置头文件。主要包含END网络设备驱动程序的配置。 3. .targetconfigcompsvxWorks目录下的文件 VxWorks实时内核基本模块描述文件. 4. .targetconfigcompssrc目录下的文件 VxWorks实时内核基本模块配置文件. 四BSP开发 下面对BSP的开发做一下宏观上面的描述: (1) BSP的开发步骤应当是一个逐步增加应用的过程 (2) 开发过程中的软、硬件支持 (3) 开发效率的提高 (4) BSP的调试方法 仿真器 ·ICE调试法 主机 映象 并口 ·BDM调试法 主机 BDM适配器 并口 ·黑调试法 利用亮灯、示波器等手段。 数据线 目标板 数据线 目标板BDM口 五Tornado目录结构 Tornado开发系统包含三个高度集成的部分: ·运行在宿主机和目标机上功能强大的交叉开发工具和实用程序 ·运行在目标机上的高性能、可裁剪的实时操作系统VxWorks ·连接宿主机和目标机的连接方式,如以太网、串口线、ICE、ROM仿真器等 Tornado下的主要目录如下: Host目录树 Target目录树 VxWorks映象及启动顺序 最小的初始化处理是由防在目标机内存特殊位置的一部分代码和可能的一些表组成。当目标机复位或者加电以后,处理器总是跳转到这个位置。这部分代码初始化机器到某一个指定的状态上、初始化内存和内存地址、关中断,然后把控制权交给附加引导代码。 一VxWorks映象类型 系统把VxWorks映象的类型分成三种,各类型的影响内部又包含不同的子类型。 1 可加载的映象类型 可加载型映象的执行需要通过引导代码把它装载到目标机RAM中,然后才开始执行。而引导代码分为两中: ·引导代码固化在ROM或FLASH中 ·引导代码是一个独立的VxWorks应用 引导代码通常也是一种VxWorks映象,有时候称之为引导映象。它的设计目的就是把另一个包含应用的VxWorks映象装入到RAM中。引导映象在运行时,可能在ROM/FLASH中执行,也可能在RAM中执行。 2 基于ROM的映象类型 基于ROM型映象在执行前首先把自己从ROM或者FLASH中装载到RAM中。这种类型的映象通常在启动阶段会比较慢,但是执行阶段比较快。 3 ROM驻留的映象类型 ROM驻留型映象在启动的时候,把数据段拷贝到目标机RAM中。这种类型的映象通常在启动的时候会比较快,当目标机的RAM空间比较小的时候,通常使用这种映象。在嵌入式应用中通常使用这种类型的映象,然而它在目标机上的执行速度要比其它类型的映象要慢。 二VxWorks映象启动顺序 在目标机加电启动时发生的顺序启动事件是一个典型VxWorks映象需要执行的功能。所有类型的VxWorks映象在初始化阶段启动顺序是一样的,处理器通过”Jump”跳转指令跳转到ROM或者Flash中引导代码的入口处,这段引导代码通常包含如下的操作: ·关中断 ·初始化目标机内存 ·装载适当的VxWorks映象段 ·跳转到设置目标机为静止状态的代码处 1 可加载型VxWorks映象引导顺序 可加载型VxWorks映象引导的详细过程如下: 数据段和代码段的装入。系统加电后执行引导带代码,首先把引导代码的代码段和数据段从ROM或者FLASH里装到RAM中。此时,需要考虑下面的情况: ·压缩型引导代码。这种类型的引导代码在拷贝的时候,要对其进行解压操作。 ·非压缩型引导代码。这种类型的引导代码直接进行拷贝操作就可以了。 ·驻留型引导代码。这种类型的引导代码只拷贝它的数据段就可以了。 VxWorks映象的装入。引导代码执行后,把VxWorks映象装入到RAM中,然后跳转到VxWorks映象装入点。 系统初始化。这步操作由静态链接在VxWorks映象里的系统初始化代码来完成,最终完成系统的初始化操作。 2 基于ROM的VxWorks映象启动顺序 引导带程序 VxWorks映象 基于ROM的VxWorks映象 基于ROM的VxWorks映象启动详细过程如下: VxWorks映象的装入。系统加电后引导代码的执行,首先将VxWorks映象从ROM或者FLASH里装入到RAM中。 控制权转移。VxWorks映象被装入之后,系统控制权交给VxWorks映象中的系统初始化代码部分 系统初始化。静态链接在VxWorks中的系统初始化代码在RAM里执行,完成系统初始化操作 3 ROM驻留型VxWorks映象启动顺序 基于ROM驻留型的VxWorks映象启动详细过程如下: VxWorks映象的装入。系统加电后引导代码的执行,首先将VxWorks映象的数据段从ROM或者FLASH里装入到RAM中。 控制权转移。VxWorks映象被装入RAM之后,系统控制权交给ROM/Flahs里的VxWorks映象中的系统初始化代码部分 系统初始化。静态链接在VxWorks中的系统初始化代码执行,完成系统初始化操作 引导带程序 VxWorks代码段 VxWorks数据段 三典型的VxWorks映象 1 VxWorks 2 VxWorks.st 3 VxWorks_rom 4 VxWorks.st_rom 5 VxWorks.res_rom 6 VxWorks.res_rom_nosym 7 Bootrom 8 Bootrom_uncmp 9 Bootrom_res VxWorks数据段 VxWorks预内核初始化 预内核初始化主要是指CPU的初始化、向量表的安装、全局描述表的安装、目标机上硬件设备的初始化、操作系统初始化等操作。 一 预内核初始化概述 下载型VxWorks映象预内核的初始化顺序 目标机系统加电后,首先执行VxWorks引导程序,由引导程序把VxWorks映象装载到目标机RAM中。当把VxWorks映象装入到RAM之后,处理器跳转到映象装入地址处。接下来首先执行sysInit函数,然后执行usrInit函数,由usrInit函数彻底完成整个预内核的初始化。 ROM型VxWorks映象预内核的初始化顺序 目标系统加电后,首先执行romInit函数,其功能是对CPU进行初始化,然后执行romStart函数进行映象段的拷贝和解压缩工作,然后执行usrInit函数,由usrInit函数彻底完成整个预内核的初始化。 二 预内核的特殊初始化函数 VxWorks映象里的特殊函数如下: ·romInit函数 ·romStart函数 ·sysInit函数 romInit函数和romStart函数是所有固化在ROM/Flash里的VxWorks映象所必须执行的函数,而sysInit函数仅仅只是所有装载型VxWorks映象执行的函数。 1 romInit函数 romInit函数功能简述 romInit函数包含在romInit.s文件中,且用汇编语言编写。它是系统加电后首先执行的代码,也是所有ROM型VxWorks映象入口点。它执行目标机最小的初始化操作及调用romStart函数。romInit函数必须包含下面的功能: ·屏蔽处理器中断和处理器复位 ·初始化系统内存 ·初始化堆栈指针和其他寄存器,开始执行romStart函数及传递启动参数 冷启动和热启动 冷启动是指硬件环境通过加电启动。在romInit函数中需要保存系统启动类型,启动类型的宏定义为BOOT_COLD。 热启动是指通过调用reboot,Ctrl+X或者异常中断等重新启动目标机系统的方式。 2 romStart函数 romStart函数是所有固化在ROM/Flash里VxWorks映象第一个执行的C语言函数。 romStart函数的功能描述 romStart函数包含在./all/bootInit.c文件中,并且用C语言编写成。它是系统最先执行的一个C语言程序,为ROM映象执行必要的代码重定位、解压缩和RAM初始化操作,具体如下: ·拷贝适当的ROM映象段到RAM中 ·清理没有被使用的那部分内存 ·执行解压缩操作 ·调用预内核的通用初始化程序usrInit romStart的修改 在BSP的开发过程中,可能需要修改bootInit.c文件。这个文件是BSP的一个公用文件,所以对于该文件的修改,情况比较特殊,具体步骤如下: ·拷贝bootInit.c文件。bootInit.c文件是一个公用文件,所以不可以直接修改.config/all目录下的bootInit.c文件,而是应该把该文件拷贝到某个BSP目录下,然后修改这个BSP目录下的bootInit.c文件。 ·修改makefile文件。为了链接拷贝的bootInit.c文件,而不是原始的文件,需要修改BSP目录下的makefile文件。在HEX_FLAGS宏定义后面增加一行: BOOTINIT = bootInit.c 在构造VxWorks映象的控制文件rules.bsp文件中,系统通过使用BOOTINIT宏定义来访问bootInit.c文件。这个宏定义的默认的访问的值是./config/all/bootInit.c文件。 romStart配置宏定义 ROM和RAM的布局 3 sysInit函数 sysInit函数功能描述 sysInit函数是装载型VxWorks映象的入口点。当映象被装载到RAM中以后,处理器将跳转到sysInit函数处执行。该函数原形在sysAlib.s中,是用汇编语言编写成的。 当映象被装载到RAM中,sysInit函数驻留在装载型VxWorks映象的装载地址处。它执行必须的最小初始化操作以及调用usrInit函数,而硬件初始化推迟到预内核通用初始化代码中进行。 sysInit代码的获得 sysInit函数的代码可以通过修改romInit函数的代码获得,仅仅需要修改一些便可以得到sysInit(0函数代码: ·删除内存初始化代码 ·把调用romStart函数改为调用usrInit函数 ·sysInit函数在RAM中执行,所以不需要设计成与地址无关的代码 RAM布局 三 预内核的通用初始化代码 1. 通用初始化代码概述 通用初始化代码的职责 ·通用初始化代码必须为VxWorks内核提供一个环境,以便激活VxWorks内核 ·内核代码执行后,初始化系统需要的系统内存空间或者多任务环境 通用初始化 预内核的通用初始化操作是通过usrInit进行的,该函数是用C语言编写的。其原型函数包含在usrConfig.c文件中。当构造VxWorks文件的时候,它被静态链接到映象中。系统调用该函数也就激活了VxWorks内核。 而初始化硬件的操作,主要是通过调用sysHwInit函数来实现的,该函数主要包含主要功能如下: ·屏蔽所有硬件设备的中断 ·初始化硬件设备到可知的静止状态 BSP的配置 用户在开发自己的目标机BSP之前,必须了解在VxWorks操作系统下BSP的配置,只有在熟悉BSP的配置之后才可以正确对BSP进行移植和修改工作,并根据自己的需要成功的配置一个BSP。 一BSP的基本配置 ROM和RAM布局 用户可以根据目标机的具体情况对ROM和RAM的空间布局进行配置,配置过程主要是通过修改地址宏定义的值而达到的,在config.h文件中定义了这些宏。在修改这些宏的时候,需要注意的是,同时也将makefile文件中定义的宏做对应的修改。 内存配置 内存配置包括用户驻留程序的内存基地址、局部总线内存基地址、内存基地址以及内存大小等。 启动设备及参数配置 启动设备及参数配置主要包含引导参数的配置,即从哪里下载VxWorks映象、系统热启动之后从什么设备上启动系统以及设备相关的其它参数的配置: ·默认引导参数配置 ·热启动设备和参数配置 外围设备驱动程序及相关参数的配置 ·配置TrueFFS驱动程序 ·配置软盘驱动程序 ·并行端口驱动程序 ·时钟配置 ·浮点处理支持 ·硬盘配置 ·串口配置 文件系统配置 网络驱动程序配置 高级缓存配置 堆栈配置 二VxWorks的基本配置 内核软件的配置 内核软件工具的配置 内核软件扩展工具的配置 VxWorks下设备驱动程序概述 VxWorks下的设备驱动程序在设计上继承了常规驱动程序的设计,同时也包含了自己的独到之处。VxWorks下的设备驱动程序都以模块为单位、各个模块之间功能明确、接口规范。VxWorks设备驱动程序是一个直接控制下层设备的上层软件接口。 一VxWorks下常用设备驱动程序源文件 如下: 二VxWorks下设备驱动程序的配置 配置VxWorks下系统自带的设备驱动程序,是一个非常简单的事情,只要在相关的文件中找到驱动对应的宏,就可以把设备驱动程序添加到系统中了。 在.Tornadotagerconfigbspname目录下,可以找到config.h文件,在这个文件里包含了通用设备驱动程序的宏定义。比如网卡驱动程序、硬盘驱动程序、时钟驱动程序、软盘驱动程序等等。 设备厂商提供的设备驱动程序通常以库文件或者对象文件、加上头文件的方式提交给客户的。在其提供的readme文件里,描述了如何把这个设备驱动程序添加到VxWorks中的方法。该文件中通常还会包括驱动程序版本信息,编写厂家,介绍,系统需求及驱动程序使用说明。

    注意事项

    本文(Vxworks BSP开发流程.docx)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开