基于VxWorks的BSP概念与开发.pdf

上传人:苏美尔 文档编号:7208049 上传时间:2020-11-06 格式:PDF 页数:7 大小:156.73KB
返回 下载 相关 举报
基于VxWorks的BSP概念与开发.pdf_第1页
第1页 / 共7页
基于VxWorks的BSP概念与开发.pdf_第2页
第2页 / 共7页
基于VxWorks的BSP概念与开发.pdf_第3页
第3页 / 共7页
基于VxWorks的BSP概念与开发.pdf_第4页
第4页 / 共7页
基于VxWorks的BSP概念与开发.pdf_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《基于VxWorks的BSP概念与开发.pdf》由会员分享,可在线阅读,更多相关《基于VxWorks的BSP概念与开发.pdf(7页珍藏版)》请在三一文库上搜索。

1、vxworksbsp:.基于VxWorks的 BSP概念与开发 疯狂代码 : http:/ 基于VxWorksBSP概念与开发 2002年3月B版 摘 要:本文以VxWorks操作系统为例阐述了BSP概念和系统启动流程并描述了BSP开发过程 关键词:BSP;VxWorks;镜像;boot Rom 概述 VxWorks操作系统是美国WindRiver公司于1983年设计开发种嵌入式实时操作系统(RTOS)它采用微内核结构 具有支持多种处理器丰富网络协议良好兼容性和裁减性等特点同时具有动态链接和下载功能 图1 BSP在VxWorks系统中地位 图2 压缩可引导镜像启动过程 BSP(Board Su

2、pport Packet板级支持包)是介于底层硬件和上层软件之间底层软件开发包它主要功能为屏 蔽硬件提供操作系统驱动及硬件驱动具体功能包括: 单板硬件化主要是CPU化为整个软件系统提供底层硬件支持; 为操作系统提供设备驱动和系统中断服务; 定制操作系统功能为软件系统提供个实时多任务运行环境; 化操作系统为操作系统正常运行做好准备; BSP在VxWorks系统中地位见图1 BSP文件在vxworks/target/config/all和vxworks/target/config/bspname文件夹里其中all文件夹里文件是所 有BSP通用文件bspname文件夹文件是用户自己定制BSP文件 经

3、过编译、链接并在makefile和depend. bspname等文件控制下原最后将生成镜像VxWorks镜像可分为两类 :可下载镜像和可引导镜像 可下载镜像(Loadable Image):实际包括两部分是vxWorks二是boot ROM两部分是独立创建其中boot ROM包括被压缩boot ROM镜像(bootrom)、非压缩boot ROM镜像(bootrom_uncmp)和驻留ROMboot ROM镜像(bootrom_res)三种类型; 可引导镜像(Bootable Image):是将引导和vxWorks融为体镜像它常常是最终产品包括不驻留ROM镜像和驻 留ROM镜像两种类型 Vx

4、Works系统启动流程 般来说所有处理器VxWorks系统启动流程都是相似但有些处理器会有些特殊步骤而另些处理器会跳过几个步骤 下面以CPU为ARM7TDMI为例具体描述(见表1) 对于可引导镜像在usrConfig.c文件里执行对于可下载镜像在bootConfig.c文件里执行 图2为压缩可引导镜像启动过程图示其中所用到地址说明见表 BSP开发过程 建立开发环境 主要是以目标板CPUBSP文件为模板在 ornado argetconfig目录下创建用户BSP目录bspname把 ornado argetconfigall下文件和BSP模板文件拷贝到该目录下根据具体情况选择合适VxWorks镜

5、像类型 修改模板 Makefile Makefile文件控制镜像创建在Makefile文件里使用了将近135个宏最简单Makefile文件要包含以下宏: CPU:目标板CPU类型; TOOL:主机make工具为GNU; TGT_DIR:target路径默认为$(WIND_BASE)/target; TARGET_DIR:BSP目录名; VENDER:目标板生产商名; BOARD:目标板名; ROM_TEXT_ADRS:boot ROM入口地址(以16进制表示并且与config.h文件定义相同); ROM_SIZE:ROM大小; RAM_LOW_ADRS:加载vxWorks目标地址; RAM_H

6、IGH_ADRS:boot ROM拷贝到RAM目标地址; HEX_FLAGS:特殊结构标记用于产生S记录文件; MACH_EXTRA:扩展文件用户可以加入自己目标模块; 除此以外Makefile文件还需要包括以下文件: $(TGT_DIR)/h/make/defs.bsp:Vxworks系统运行标准变量定义; $(TGT_DIR)/h/make/make.$(CPU)$(TOOL):提供了特别目标机结构和套编译工具如make. ARM7TDMI_Tgnu; $(TGT_DIR)/h/make/defs.$(WIND_HOST_TYPE):提供了与主机系统有关定义; rules.bsp:在创建目

7、标文件时所需要规则; rules. $(WIND_HOST_TYPE):指出创建目标文件时所需从属文件表; 如果没有用all目录下文件而是拷贝到bspname下修改并使用需要定义与这些文件有关宏如 BOOTINIT=bootInit.c 这样在创建镜像时就不会用all目录下文件而使用bspname目录下相应文件了; 在Makefile文件里凡是16进制数前面都无需加“0 x”; bspname.h 根据具体目标板设置串行接口、时钟以及I/O设备等在该文件中必须包含以下内容: 中断向量/级别 I/O设备地址 设备寄存器位含义 系统和附加时钟参数(最大和最小速率) config.h 根据目标板具体

8、情况配置宏定义注意ROM_TEXT_ADRS、ROM_SIZE、RAM_LOW_ADRS、 RAM_HIGH_ADRS要与Makefile文件里定义致LOCAL_MEM_LOCAL_ADRS和LOCAL_MEM_SIZE要正确 romInit.s 这是系统上电后运行第个根据具体目标板对寄存器和CPU进行设置;以CPU为ARM7TDMI为例romInit.s 需要 进行工作有: 保存启动方式:对于冷启动如果CPU配置是HIGH VECTORS就设置入口地址为0 xFFFF0000否则设置入口地址 为0 x00000000; 屏蔽中断:通过设置cpsrI_BIT和F_BIT都为1来实现还要设置中断

9、寄存器为关模式同时设定运行模式为SVC32模 式; 化堆栈指针pc和sp:堆栈指针sp指向STACK_ADRS这个宏定义为当镜像为驻留ROM时该宏值为_sdata当镜像 为非驻留ROM时该宏值为_romInit这两个地址经过地址映射后都指向被拷贝镜像在RAM目标地址; 化cache屏蔽cache; 根据具体目标板需要化其他寄存器; 指针跳转到romStart并执行; bootConfig.c 般不需要用户修改也可以根据具体情况做适当修改; sysALib.s 与romInit.s文件实现功能相似但如果在romInit.s文件里对DRAM和内存控制器进行了化在这里不再进行这项工 作; 创建VxW

10、orks镜像 根据具体需要在命令行环境下利用Makefile创建各种镜像也可以在Tornado集成环境下Build菜单中选择Build Boot ROM来创建各种类型Boot ROM; 除此以外如果系统硬件包括串口还要根据具体情况修改sysSerial.c文件;如果包含网络部分要修改 configNet.h;如果包含NVRAM要修改bootnv.h文件总之BSP开发要根据具体目标板硬件进行 结语 我们已经利用基于VxWorksBSP开发包成功进行了线缆调制解调器底层软件开发在开发过程中深感BSP在整个 系统软件中重要性没有正确BSP软件整个系统启动和运行也不会正确另外需要强调是:BSP概念只是

11、针对 嵌入式操作系统而言而像DOS、WINDOWS、UNIX等BIOS操作系统是无BSP可言对同目标板而言不同操作系 统BSP在本质上是样但是不同操作系统将提供不同支持库另外在BSP结构上也可能会有所不同在做BSP移植时候 应该注意 参考文献 1. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado 2.0Edition 11999 2. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado 1.0.1Edition 11997 3. VxWorks Programme

12、r誷 GuidesEdition 11999 基于VxWorksBSP概念与开发 2002年3月B版 摘 要:本文以VxWorks操作系统为例阐述了BSP概念和系统启动流程并描述了BSP开发过程 关键词:BSP;VxWorks;镜像;boot Rom 概述 VxWorks操作系统是美国WindRiver公司于1983年设计开发种嵌入式实时操作系统(RTOS)它采用微内核结构 具有支持多种处理器丰富网络协议良好兼容性和裁减性等特点同时具有动态链接和下载功能 图1 BSP在VxWorks系统中地位 图2 压缩可引导镜像启动过程 BSP(Board Support Packet板级支持包)是介于底层

13、硬件和上层软件之间底层软件开发包它主要功能为屏 蔽硬件提供操作系统驱动及硬件驱动具体功能包括: 单板硬件化主要是CPU化为整个软件系统提供底层硬件支持; 为操作系统提供设备驱动和系统中断服务; 定制操作系统功能为软件系统提供个实时多任务运行环境; 化操作系统为操作系统正常运行做好准备; BSP在VxWorks系统中地位见图1 BSP文件在vxworks/target/config/all和vxworks/target/config/bspname文件夹里其中all文件夹里文件是所 有BSP通用文件bspname文件夹文件是用户自己定制BSP文件 经过编译、链接并在makefile和depend

14、. bspname等文件控制下原最后将生成镜像VxWorks镜像可分为两类 :可下载镜像和可引导镜像 可下载镜像(Loadable Image):实际包括两部分是vxWorks二是boot ROM两部分是独立创建其中boot ROM包括被压缩boot ROM镜像(bootrom)、非压缩boot ROM镜像(bootrom_uncmp)和驻留ROMboot ROM镜像(bootrom_res)三种类型; 可引导镜像(Bootable Image):是将引导和vxWorks融为体镜像它常常是最终产品包括不驻留ROM镜像和驻 留ROM镜像两种类型 VxWorks系统启动流程 般来说所有处理器VxW

15、orks系统启动流程都是相似但有些处理器会有些特殊步骤而另些处理器会跳过几个步骤 下面以CPU为ARM7TDMI为例具体描述(见表1) 对于可引导镜像在usrConfig.c文件里执行对于可下载镜像在bootConfig.c文件里执行 图2为压缩可引导镜像启动过程图示其中所用到地址说明见表 BSP开发过程 建立开发环境 主要是以目标板CPUBSP文件为模板在 ornado argetconfig目录下创建用户BSP目录bspname把 ornado argetconfigall下文件和BSP模板文件拷贝到该目录下根据具体情况选择合适VxWorks镜像类型 修改模板 Makefile Makef

16、ile文件控制镜像创建在Makefile文件里使用了将近135个宏最简单Makefile文件要包含以下宏: CPU:目标板CPU类型; TOOL:主机make工具为GNU; TGT_DIR:target路径默认为$(WIND_BASE)/target; TARGET_DIR:BSP目录名; VENDER:目标板生产商名; BOARD:目标板名; ROM_TEXT_ADRS:boot ROM入口地址(以16进制表示并且与config.h文件定义相同); ROM_SIZE:ROM大小; RAM_LOW_ADRS:加载vxWorks目标地址; RAM_HIGH_ADRS:boot ROM拷贝到RAM

17、目标地址; HEX_FLAGS:特殊结构标记用于产生S记录文件; MACH_EXTRA:扩展文件用户可以加入自己目标模块; 除此以外Makefile文件还需要包括以下文件: $(TGT_DIR)/h/make/defs.bsp:Vxworks系统运行标准变量定义; $(TGT_DIR)/h/make/make.$(CPU)$(TOOL):提供了特别目标机结构和套编译工具如make. ARM7TDMI_Tgnu; $(TGT_DIR)/h/make/defs.$(WIND_HOST_TYPE):提供了与主机系统有关定义; rules.bsp:在创建目标文件时所需要规则; rules. $(WIN

18、D_HOST_TYPE):指出创建目标文件时所需从属文件表; 如果没有用all目录下文件而是拷贝到bspname下修改并使用需要定义与这些文件有关宏如 BOOTINIT=bootInit.c 这样在创建镜像时就不会用all目录下文件而使用bspname目录下相应文件了; 在Makefile文件里凡是16进制数前面都无需加“0 x”; bspname.h 根据具体目标板设置串行接口、时钟以及I/O设备等在该文件中必须包含以下内容: 中断向量/级别 I/O设备地址 设备寄存器位含义 系统和附加时钟参数(最大和最小速率) config.h 根据目标板具体情况配置宏定义注意ROM_TEXT_ADRS、

19、ROM_SIZE、RAM_LOW_ADRS、 RAM_HIGH_ADRS要与Makefile文件里定义致LOCAL_MEM_LOCAL_ADRS和LOCAL_MEM_SIZE要正确 romInit.s 这是系统上电后运行第个根据具体目标板对寄存器和CPU进行设置;以CPU为ARM7TDMI为例romInit.s 需要 进行工作有: 保存启动方式:对于冷启动如果CPU配置是HIGH VECTORS就设置入口地址为0 xFFFF0000否则设置入口地址 为0 x00000000; 屏蔽中断:通过设置cpsrI_BIT和F_BIT都为1来实现还要设置中断寄存器为关模式同时设定运行模式为SVC32模

20、式; 化堆栈指针pc和sp:堆栈指针sp指向STACK_ADRS这个宏定义为当镜像为驻留ROM时该宏值为_sdata当镜像 为非驻留ROM时该宏值为_romInit这两个地址经过地址映射后都指向被拷贝镜像在RAM目标地址; 化cache屏蔽cache; 根据具体目标板需要化其他寄存器; 指针跳转到romStart并执行; bootConfig.c 般不需要用户修改也可以根据具体情况做适当修改; sysALib.s 与romInit.s文件实现功能相似但如果在romInit.s文件里对DRAM和内存控制器进行了化在这里不再进行这项工 作; 创建VxWorks镜像 根据具体需要在命令行环境下利用M

21、akefile创建各种镜像也可以在Tornado集成环境下Build菜单中选择Build Boot ROM来创建各种类型Boot ROM; 除此以外如果系统硬件包括串口还要根据具体情况修改sysSerial.c文件;如果包含网络部分要修改 configNet.h;如果包含NVRAM要修改bootnv.h文件总之BSP开发要根据具体目标板硬件进行 结语 我们已经利用基于VxWorksBSP开发包成功进行了线缆调制解调器底层软件开发在开发过程中深感BSP在整个 系统软件中重要性没有正确BSP软件整个系统启动和运行也不会正确另外需要强调是:BSP概念只是针对 嵌入式操作系统而言而像DOS、WINDO

22、WS、UNIX等BIOS操作系统是无BSP可言对同目标板而言不同操作系 统BSP在本质上是样但是不同操作系统将提供不同支持库另外在BSP结构上也可能会有所不同在做BSP移植时候 应该注意 参考文献 1. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado 2.0Edition 11999 2. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado 1.0.1Edition 11997 3. VxWorks Programmer誷 GuidesEdition 11999 2008-12-12 15:53:11 疯狂代码

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

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1