网站大量收购闲置独家精品文档,联系QQ:2885784924

VxWorks BSP基础.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VxWorks BSP基础

VxWorks应用设计 中科信软培训中心 九、VxWorks BSP 基础 1. BSP基本概念 是介于底层硬件和上层软件之间的底层软件开发包,它主要用来屏蔽底层硬件,提供操作系统的驱动及硬件驱动。此外,BSP还要完成硬件与软件之间的数据交互,从而为操作系统及上层应用程序提供一个与硬件无关的软件平台。 BSP由两部分组成:初始化和驱动程序初始化:指系统从上电复位开始直到wind微内核和usrRoot根任务启动的这段系统的执行过程。包括寄存器操作、直接I/O操作。 驱动程序:调用某具体硬件设备的驱动程序的接口对该硬件初始化的过程。如串口驱动,网口驱动等。 2.BSP具体功能 单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持; 为操作系统提供设备驱动程序和系统中断服务程序; 定制操作系统的功能,为软件系统提供一个实时多任务运行环境; 初始化操作系统,为操作系统的正常运行做好准备。 (1) 系统加电后的硬件初始化 ? 加电后PC指针跳到特定的存储空间位置 ? 设置处理器 ? 初始化内存和内存地址 ? 禁止中断 ? 执行附加引导代码 ? 将VxWorks载入RAM ? 载入VxWorks内核 (2) 提供操作系统对硬件驱动的访问 一些驱动的支持是由BSP完成的,如驱动程序中定义了中断服务程序(ISR),BSP完成了中断服务程序与中断向量表的挂接 一些偏移常量是由BSP定义的,但供驱动程序使用 简化了驱动程序的安装 设备的配置管理 (3) 屏蔽上层软件和底层硬件以及硬件驱动 BSP文件组成结构 BSP的组成文件主要包含在四个目录下: ? …/target/config/all -- 所有BSP公共使用的代码 ? …/target/config/comps/vxworks -- 基本模块描述文件(*.cdf) ? …/ target/config/comps/src -- 操作系统模块的配置文件(usrConfig.c使用) ? …/target/config/bspname -- 与具体目标板相关的代码部分 3.BSP文件组成结构 Config/all: -- bootInit.c:定义了romStart()函数,用于bootrom的第二阶段初始化。将bootrom从ROM拷贝到RAM中,然后跳转sysInit()或者userInit() -- usrConfig.c:包含VxWorks的主要初始化代码,其部分功能跟bootConfig.c里面的功能类似,例如对硬件设备的初始化。 BSP文件组成结构 Config/bspname: --config.h 包含所有的头文件和与CPU相关的宏定义,如:对Cache和MMU的配置,RAM和ROM的定位以及大小配置,外部总线地址映射,PCI地址宏。 --configNet.h 网络驱动的主要配置文件,主要对END驱动设置 -- romInit.s 包含bootrom和rom-based vxworks Image的初始化入口汇编代码。 --sysALib.s 包含目标板或系统相关的汇编语言函数入口,即在RAM中执行的第一个函数。 BSP文件组成结构 Config/bspname: -- sysLib.c 包含目标板或系统相关的C语言函数,该文件提供板级接口,通过该接口,VxWorks和应用程序的实现与目标系统无关,sysLib.c包含target/src/drv目录下的驱动程序子文件,驱动程序的安装和初始化在子文件中完成。 --sysSerial.c 用于串口设置和初始化 -- bspname.h 包含与板子相关的宏定义,如中断向量或中断号;I/O设备地址;设备寄存器位的含义定义;系统时钟和辅助时钟最大和最小时钟速率。 --要把src/drv下的某驱动程序移植到目标板上,必须在bspname.h中包含该驱动程序对应的头文件。 sysLib.c sysLib.c中应该实现一下几类函数 系统时钟中断相关的函数: sysClkConnect(),sysClkDisable(),sysClkEnable(), ? sysClkInt(),sysClkRateGet(),sysClkRateSet(); 系统硬件初始化函数:sysHwInit(),sysHwInit2() 内存相关的函数: sysMemTop(),sysNvRamGet(),sysNvRamSet() 串口相关的函数: sysSerialHwInit(),sysSerialHwInit2(),sysSerialChanGet() 杂项函数:sysBspRev(),sysModel(),sysToMonitor() 其它可选函数:如:辅助时钟中断相

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档