VxWorks BSP基础
vxworks bsp基础与实现
Vxworks的代码是下面这个样子,文件众多,分类放在不同的地方,有没有一个类似 批处理的方式解决,那就是makefile。
Make与makefile(3)
在vxworks开发时,我们使用的ide环境,但我也要知道整个工程的编译。建立一个 Bootloader工程时,会在要目录下有如下一个makefile文件:
这个地址起始是可以移动。初始化值为0xff400000
E3000启动时初始地址空间(1)
每个外设的地址如何来?IMMR+1M内偏移 有些控制器有多个片选,如何定义地址?
E3000启动时初始地址空间(2)
E3000启动时初始地址空间(3)
Nor flash
定义了boorom的8m地址范围,最前面还是最后面 代码位置在nor flash中
1、Vxbus模式
2、传统兼容驱动 configNet.h
Vxworks驱动-网卡驱动(2)
MII接口一般应用于MAC层和PHY层之间的以太网数据传输,也可叫数据接口。 (MAC与PHY间的管理接口一般是MDIO).常用的有MII、RMII、SMII、SSMII、SSSMII、 GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等
我们可以看到,当我们执行build时候,比如我们我们执行make bootloader.bin时, Bootloader.bin我们称之为目标,也就是说我们编译链接的最终就是生成这个镜像。 第一幅图的最终结果是cd bsp目录,执行make bootloader.bin,那个看下面bsp目录 Makefile中的一段文字:
汇编相关问题(3)寻址方式
VxWorks操作系统基础(适合初学者阅读)2024新版
系统库(System Library)
提供一系列操作系统服务,如文件操作、网络协议栈等。
驱动程序(Device Drivers)
与硬件设备交互,实现对硬件设备的控制和管理。
内核组成及作用
内核组成及作用
01
内核的主要作用包括
02 管理系统资源,如CPU、内存、I/O设备等 。
06
VxWorks文件系统操作指南
文件系统类型及特点介绍
RAM-based File System
基于RAM的文件系统,读写速度快,但数据在 关机后丢失。
TrueFFS
Wind River特有的闪存文件系统,提供磨损均 衡和掉电保护功能。
ABCD
DOS File System (dosFs)
兼容MS-DOS的文件系统,支持FAT12、FAT16 和FAT32格式。
01
VxWorks操作系统概述
VxWorks操作系统定义
VxWorks是一款由美国风河公司( Wind River)开发的嵌入式实时操 作系统(RTOS),专为需要实时响 应和高可靠性的应用而设计。
VxWorks提供了丰富的中间件和开发 工具,支持多种处理器架构和硬件平 台,广泛应用于航空、航天、通信、 医疗、工业自动化等领域。
在ISR中处理完中断事件后, 需要及时清除中断标志,避 免重复处理。
中断优先级设置和嵌套处理
01
VxWorks支持多级中断优先级,高优先级的中断可以打断低优先 级的中断处理。
02
中断优先级可以通过配置文件或动态调整进行设置,以满 足不同应用场景的需求。
03
在处理中断时,如果发生更高优先级的中断请求, VxWorks会自动保存当前中断的上下文信息,并跳转到更 高优先级的中断处理程序中。处理完成后,再恢复之前中 断的上下文信息并继续执行。这种机制称为中断嵌套处理 。
vxWorks的BSP开发
VxWorks的BSP开发1BSP概述一个成熟的商用操作系统,其被广泛应用的必要条件之一就是能够支持众多的硬件平台,并实现应用程序的硬件无关性。
一般来说,这种无关性都是由操作系统实现的。
但对于嵌入式系统来说,它没有像PC机那样具有广泛使用的各种工业标准,各种嵌入式系统其不同的应用需求就决定了它一般都选用了各自定制的硬件环境,这种诸多变化硬件的环境就决定了无法完全由操作系统来实现上层软件与底层硬件之间的无关性。
因此各种商用实时操作系统,都采用了分层设计的方法,它将系统中与硬件直接相关的一层软件独立出来,称之为Board Support Package即简称BSP。
顾名思义,BSP是针对某个单板而设计的,并且它对于用户(指开发者)也是开放的,用户可以根据不同的硬件需求对其作改动或二次开发,而操作系统本身仅仅提供了CPU内核的无关性。
BSP在系统中的角色,很相似于BIOS在PC系统中的地位。
定义BSP就是为软件操作系统正常运行提供最基本、最原始的硬件操作的软件模块,它和操作系统息息相关,但又不属于操作系统的一部分。
BSP可以分为三大部分:1:系统上电时的硬件初始化。
2:为操作系统访问硬件驱动程序提供支持。
3:集成的硬件相关和硬件无关的操作系统所需的软件模块。
BSP的表现形式BSP主要以两种形式来表现:1:源代码(C代码、汇编代码)、系统编译连接依靠文件。
2:二进制的目标代码和目标代码库。
BSP在软件系统中的位置BSP在软件系Array统中的位置可以用下图来表示,BSP为操作系统和硬件设备的互操作建了一个桥梁,操作系统通过BSP来完成对指定硬件的配置和管理。
2 vxWorks系统中的BSP 目录结构BSP软件与其他软件的最大区别在于BSP软件有一整套模板和格式,开发人员必须严格遵守,不允许任意发挥。
在BSP软件中,绝大部分文件的文件名和所要完成的功能都是固定的。
所以,BSP软件的开发一般来说都是在一个基本成型的BSP软件上进行修改,以适应不同单板的需求。
vxworks系统的bsp概念及启动过程
VxWorks 系统的BSP 概念及启动过程乔从连(船舶重工集团公司723所,扬州225001)摘要:VxWorks 作为一个高性能的嵌入式实时操作系统,已经得到了广泛的应用。
介绍了实时操作系统VxWorks 的BSP 的概念及组成,详细分析了VxWorks 系统的初始化流程和启动过程。
关键词:板级支持包;初始化;启动过程中图分类号:TP316.89 文献标识码:B 文章编号:CN3221413(2005)0120061204Concept and Starting Procedure of VxWorks System BSPQ IAO Cong 2lian(The 723Institute of CSIC ,Yangzhou 225001,China )Abstract :As a high 2performance embedded real 2time operating system ,VxWorks has been already applied widely.This paper introduces t he concept and component of VxWorks BSP ,analyses t he initialization flow and starting p rocedure of VxWorks system in detail.K eyw ords :board support package ;initialization ;starting p rocedure0 引 言板级支持包(board support package ,BSP )是介于硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好地运行于硬件。
在使用嵌入式系统VxWorks 时,有时需要根据硬件平台移植BSP 或者对某一配件的驱动进行开发修改。
VxworksBSP开发流程
Vxworks BSP开发1.板级支持包的介绍2.VxWorks映象及启动顺序3.VxWorks预内核初始化4.BSP的配置5.BSP的开发6.VxWorks下设备驱动程序概述板级支持包的介绍一.板级支持包简述在VxWorks系统中,对BSP的简单描述为:介于底层硬件环境和VxWorks之间的一个软件接口,它的主要功能是在系统加电后初始化目标机硬件、初始化操作系统、提供部分硬件的驱动程序。
具体功能包括:(1)初始化。
所谓初始化就是指从系统上电复位开始,到VxWorks开始初始化用户应用(即系统执行到usrAppInit函数处)的一段时间内系统所执行的过程。
这个过程主要包括三个部分的工作:·CPU初始化。
初始化CPU的内部寄存器。
·目标机初始化。
初始化控制芯片的寄存器,I/O设备的寄存器,为整个软件系统提供底层硬件环境的支持。
·系统资源初始化。
为操作系统及系统的正常运行做准备,进行资源初始化,如空间分配等等。
(2)使VxWorks能够访问硬件驱动程序。
这主要是指VxWorks包含必要的设备驱动程序和相关设备的初始化。
(3)在VxWorks系统中,集成了与硬件相关的软件和部分与硬件无关的软件。
二.板级支持包与VxWorks从上面的图中,我们可以看到,BSP不是设备驱动程序,因为设备驱动程序可以访问硬件设备,同时,相同设备的驱动程序可以不作修改的从一个环境移植到另外一个环境当中去,而BSP只能在特定的环境下面运行。
简单地说,BSP开发人员要完成两个方面的工作:(1)完全支持BSP管理设备(2)通用设备驱动程序的集成工作三.BSP的组成BSP包含的程序是提供VxWorks访问目标机硬件环境的主要接口。
BSP主要由下面几类文件组成。
1.源文件主要是由C语言编写的代码所组成的文件,也有一小部分由汇编语言编写而成。
2.头文件包含针对CPU板的硬件定义以及内存定位定义的文件。
3.Make file文件控制构造所有类型映象的文件4.派生文件由其他文件衍生而成的文件。
VxWorks基础知识(互联资料)
VxWorks基础知识收藏1.多任务:允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。
3.任务切换之前要保存上下文。
4.优先级是动态的0~255,0级最高。
5.Wind内核taskLock()和taskUnlock()禁止和解除抢占,但对中断不起作用。
6.异常处理:VxWorks异常处理包,一般是将引起异常的任务休眠,保存任务在异常出错处的状态值。
内核和其它任务继续执行。
7.为什么要共享存储区:任务间通信的最简单的方法是采用共享存储区,也即相关的各个任务分享属于它们的地址空间的同一内存区域。
8. 为什么要互斥:当某一地址空间用于数据交换时,为了避免冲突,对于内存的锁定是非常重要的。
一般来说,关中断是最有效的解决互斥的方法。
但这对于实时应用来说,它阻止系统对外部事件的响应,无法满足实时性的要求。
同样,中断延迟也是不能接受。
因为它们没有实时性。
所以要用信号量来完成互斥,主要是二进制信号量,并且二进制信号量不仅能完成互斥而且能完成同步!,但是关中断应该用到程序的初始化过程中。
9.信号量:VxWorks信号量提供最快速的任务间通信机制,它主要用于解决任务间的互斥和同步。
针对不同类型的问题,有以下三种信号量:⊙二进制信号量使用最快捷、最广泛,主要用于同步或互斥;⊙互斥信号量主要用于优先级继承、安全删除和回溯;⊙计数器VxWorks还提供POSIX信号量和多处理器上信号量的应用。
10.消息队列,任务之间利用消息队列发送和接收消息。
11.管道:管道是一种灵活的消息传送机制,它比消息队列强在有一个select()12.信号量的创建与删除:semBCreate() 创建(产生并激活)一个二进制信号量semMCreate() 创建(产生并激活)一个互斥信号量semCCreate() 创建(产生并激活)制一个计数信号量semDelete() 中止并自由信号量semTake()获得信号量semGive() 给出信号量semFlush() 解锁所有正等待某一信号量的任务13.消息队列的创建与删除:msgQCreate() 创建(产生并激活)消息队列msgQDelete() 中止并自由信号量msgQSend() 向消息队列发送消息msgQReceive() 从消息队列接收消息14.网络通讯:与其它主机进行通信。
vxworks bsp制作概要
VxWorks BSP制作概要要了解vxworks BSP的制作,首先要对vxworks的启动过程有个大体的了解,下面我们从vxworks的启动过程开始介绍。
VxWowks的启动过程一般来说,所有的处理器执行相同的逻辑步骤初始化和加载VxWorks,但一些处理器可能会有一些特殊的步骤,而另外一些则可能跳过一些步骤。
但它们都要进行以下步骤,如:初始化处理器,并在存储器的特定位置提供一段代码(可能还有一些表)以供处理器上电或重启时运行。
这段代码设置处理器的状态,初始化存储器和存储器地址,关中断把控制权交给启动代码(bootstrapping code)。
1. 处理器首先跳到ROM的入口地址,设置状态字并创建一个哑堆栈(dummy stack);2. 跳到C程序的入口地址,根据哑堆栈中的参数决定是否清零内存RAM(如是冷启动(cold start)则清零),再把ROM段的剩余部分拷贝到RAM(如果ROM 代码是压缩的,还要解压);3. 处理器跳到RAM的入口地址(bootConfig.c),使cache无效,清零bss段,初始化向量表,进行板级初始化。
4. 启动多任务内核。
VxWorks的boot ROM本身就是一个独立的应用。
开发者可用它来通过网络启动一个VxWorks映像并和应用代码连接。
1 VxWorks启动流程romInit()——》romStart()——》sysInit()——》initVectBaseSet()——》sysHwInit()——》usrKernelInit()——》kernelInit()——》usrRoot()2文件和程序说明romInit.S:romInit()关中断,把启动类型(cold/warm)入栈,清零cache后跳到romStart的入口。
bootInit.C:romStart()把ROM代码和数据段拷贝并重定位到RAM,清零RAM的未用部分,需要的话要进行解压缩,然后跳到sysInir()的入口地址。
VxWorks操作系统BSP和BootLoader介绍
之前要对板卡上所用的处理器、外围电路和设备一 我们可以通过仿真器 清二楚。在 BSP 调试的前期, 来调试。由于这个时期我们没有更多的手段获取处 理器执行 BSP 代码的情况 ( 包括控制指令执行, 获
另外, 在初始化时, 数据缓存和指令缓存应当被 禁止, 中断应当被禁止。
图1 内核后调试环境
!-1
"#$%&’( 启动过程
首先在上电时在处理器跳转的固定位置( ROM
!
"#$%&’( )*+ 实例
本 章 对 一 个 具 体 的 VxWorks BSP 进 行 讨 论 ,
或 Flash中)固化的代码完成处理器的初始化状态 设置, 初始化内存, 下载 VxWorks 镜像所需驱动程 跳转到 VxWorks 序的初始化, 下载 VxWorks 镜像, 镜像所在入口地址继续执行初始化内核( 见表 2 ) 。
%&!&’
内核前调试环境
下载手段有:
1)目标板上的 ROM 编程; 调试只读存储器) ; 2)目标板的 DEBUG ROM ( 3)ROM 仿真; 。 4)集成调试环境( ICE )
调试工具有:
%
"#$ 的开发方法和过程
由于 BSP 的开发同硬件密切相关, 所以在开发
1)标板 DEBUG ROM ; 2)ICE ; 3)逻辑分析仪; 如发光二极管( 。 4)目标板上设备, LED ) %&!&! 内核后调试环境
BSP基础
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 中支持。
基于VxWorks的BSP概念与开发
vxworksbsp:. 基于VxWorks的BSP概念与开发疯狂代码 / ĵ:http://NetworkProgramming/Article33345.html基于VxWorksBSP概念与开发2002年3月B版摘 要:本文以VxWorks操作系统为例阐述了BSP概念和系统启动流程并描述了BSP开发过程关键词:BSP;VxWorks;镜像;boot Rom概述VxWorks操作系统是美国WindRiver公司于1983年设计开发种嵌入式实时操作系统(RTOS)它采用微内核结构具有支持多种处理器丰富网络协议良好兼容性和裁减性等特点同时具有动态链接和下载功能图1 BSP在VxWorks系统中地位图2 压缩可引导镜像启动过程BSP(Board Support Packet——板级支持包)是介于底层硬件和上层软件之间底层软件开发包它主要功能为屏蔽硬件提供操作系统驱动及硬件驱动具体功能包括:·单板硬件化主要是CPU化为整个软件系统提供底层硬件支持;·为操作系统提供设备驱动和系统中断服务;·定制操作系统功能为软件系统提供个实时多任务运行环境;·化操作系统为操作系统正常运行做好准备;BSP在VxWorks系统中地位见图1BSP文件在vxworks/target/config/all和vxworks/target/config/bspname文件夹里其中all文件夹里文件是所有BSP通用文件bspname文件夹文件是用户自己定制BSP文件经过编译、链接并在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镜像两种类型VxWorks系统启动流程般来说所有处理器VxWorks系统启动流程都是相似但有些处理器会有些特殊步骤而另些处理器会跳过几个步骤 下面以CPU为ARM7TDMI为例具体描述(见表1)对于可引导镜像在usrConfig.c文件里执行对于可下载镜像在bootConfig.c文件里执行图2为压缩可引导镜像启动过程图示其中所用到地址说明见表2BSP开发过程建立开发环境主要是以目标板CPUBSP文件为模板在 ornado argetconfig目录下创建用户BSP目录bspname把 ornado argetconfigall下文件和BSP模板文件拷贝到该目录下根据具体情况选择合适VxWorks镜像类型修改模板MakefileMakefile文件控制镜像创建在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目标地址;·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. $(WIND_HOST_TYPE):指出创建目标文件时所需从属文件表;·如果没有用all目录下文件而是拷贝到bspname下修改并使用需要定义与这些文件有关宏如BOOTINIT=bootInit.c这样在创建镜像时就不会用all目录下文件而使用bspname目录下相应文件了;·在Makefile文件里凡是16进制数前面都无需加“0x”;bspname.h根据具体目标板设置串行接口、时钟以及I/O设备等在该文件中必须包含以下内容:·中断向量/级别·I/O设备地址·设备寄存器位含义·系统和附加时钟参数(最大和最小速率)config.h根据目标板具体情况配置宏定义注意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就设置入口地址为0xFFFF0000否则设置入口地址为0x00000000;·屏蔽中断:通过设置cpsrI_BIT和F_BIT都为1来实现还要设置中断寄存器为关模式同时设定运行模式为SVC32模式;·化堆栈指针pc和sp:堆栈指针sp指向STACK_ADRS这个宏定义为当镜像为驻留ROM时该宏值为_sdata当镜像为非驻留ROM时该宏值为_romInit这两个地址经过地址映射后都指向被拷贝镜像在RAM目标地址;·化cache屏蔽cache;·根据具体目标板需要化其他寄存器;·指针跳转到romStart并执行;bootConfig.c般不需要用户修改也可以根据具体情况做适当修改;sysALib.s与romInit.s文件实现功能相似但如果在romInit.s文件里对DRAM和内存控制器进行了化在这里不再进行这项工作;创建VxWorks镜像根据具体需要在命令行环境下利用Makefile创建各种镜像也可以在Tornado集成环境下Build菜单中选择Build Boot ROM来创建各种类型Boot ROM;除此以外如果系统硬件包括串口还要根据具体情况修改sysSerial.c文件;如果包含网络部分要修改configNet.h;如果包含NVRAM要修改bootnv.h文件总之BSP开发要根据具体目标板硬件进行结语我们已经利用基于VxWorksBSP开发包成功进行了线缆调制解调器底层软件开发在开发过程中深感BSP在整个系统软件中重要性——没有正确BSP软件整个系统启动和运行也不会正确另外需要强调是:BSP概念只是针对嵌入式操作系统而言而像DOS、WINDOWS、UNIX等BIOS操作系统是无BSP可言对同目标板而言不同操作系统BSP在本质上是样但是不同操作系统将提供不同支持库另外在BSP结构上也可能会有所不同在做BSP移植时候应该注意■参考文献1. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado2.0Edition 119992. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado 1.0.1Edition 119973. VxWorks Programmer誷 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——板级支持包)是介于底层硬件和上层软件之间底层软件开发包它主要功能为屏蔽硬件提供操作系统驱动及硬件驱动具体功能包括:·单板硬件化主要是CPU化为整个软件系统提供底层硬件支持;·为操作系统提供设备驱动和系统中断服务;·定制操作系统功能为软件系统提供个实时多任务运行环境;·化操作系统为操作系统正常运行做好准备;BSP在VxWorks系统中地位见图1BSP文件在vxworks/target/config/all和vxworks/target/config/bspname文件夹里其中all文件夹里文件是所有BSP通用文件bspname文件夹文件是用户自己定制BSP文件经过编译、链接并在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镜像两种类型VxWorks系统启动流程般来说所有处理器VxWorks系统启动流程都是相似但有些处理器会有些特殊步骤而另些处理器会跳过几个步骤 下面以CPU为ARM7TDMI为例具体描述(见表1)对于可引导镜像在usrConfig.c文件里执行对于可下载镜像在bootConfig.c文件里执行图2为压缩可引导镜像启动过程图示其中所用到地址说明见表2BSP开发过程建立开发环境主要是以目标板CPUBSP文件为模板在 ornado argetconfig目录下创建用户BSP目录bspname把 ornado argetconfigall下文件和BSP模板文件拷贝到该目录下根据具体情况选择合适VxWorks镜像类型修改模板MakefileMakefile文件控制镜像创建在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目标地址;·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. $(WIND_HOST_TYPE):指出创建目标文件时所需从属文件表;·如果没有用all目录下文件而是拷贝到bspname下修改并使用需要定义与这些文件有关宏如BOOTINIT=bootInit.c这样在创建镜像时就不会用all目录下文件而使用bspname目录下相应文件了;·在Makefile文件里凡是16进制数前面都无需加“0x”;bspname.h根据具体目标板设置串行接口、时钟以及I/O设备等在该文件中必须包含以下内容:·中断向量/级别·I/O设备地址·设备寄存器位含义·系统和附加时钟参数(最大和最小速率)config.h根据目标板具体情况配置宏定义注意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就设置入口地址为0xFFFF0000否则设置入口地址为0x00000000;·屏蔽中断:通过设置cpsrI_BIT和F_BIT都为1来实现还要设置中断寄存器为关模式同时设定运行模式为SVC32模式;·化堆栈指针pc和sp:堆栈指针sp指向STACK_ADRS这个宏定义为当镜像为驻留ROM时该宏值为_sdata当镜像为非驻留ROM时该宏值为_romInit这两个地址经过地址映射后都指向被拷贝镜像在RAM目标地址;·化cache屏蔽cache;·根据具体目标板需要化其他寄存器;·指针跳转到romStart并执行;bootConfig.c般不需要用户修改也可以根据具体情况做适当修改;sysALib.s与romInit.s文件实现功能相似但如果在romInit.s文件里对DRAM和内存控制器进行了化在这里不再进行这项工作;创建VxWorks镜像根据具体需要在命令行环境下利用Makefile创建各种镜像也可以在Tornado集成环境下Build菜单中选择Build Boot ROM来创建各种类型Boot ROM;除此以外如果系统硬件包括串口还要根据具体情况修改sysSerial.c文件;如果包含网络部分要修改configNet.h;如果包含NVRAM要修改bootnv.h文件总之BSP开发要根据具体目标板硬件进行结语我们已经利用基于VxWorksBSP开发包成功进行了线缆调制解调器底层软件开发在开发过程中深感BSP在整个系统软件中重要性——没有正确BSP软件整个系统启动和运行也不会正确另外需要强调是:BSP概念只是针对嵌入式操作系统而言而像DOS、WINDOWS、UNIX等BIOS操作系统是无BSP可言对同目标板而言不同操作系统BSP在本质上是样但是不同操作系统将提供不同支持库另外在BSP结构上也可能会有所不同在做BSP移植时候应该注意■参考文献1. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado2.0Edition 119992. Tornado BSP Developer誷 Kit for VxWorks User誷 GuideTornado 1.0.1Edition 119973. VxWorks Programmer誷 GuidesEdition 119992008-12-12 15:53:11疯狂代码 /。
VXWORKS BSP调试
支持 tsfs 加载需要修改 config.h
#ifndef INCLUDE_TSFS_BOOT #define INCLUDE_TSFS_BOOT #endif /* TSFS */
#undef NUM_TTY #define NUM_TTY
N_SIO_CHANNELS /* 2 serial ports */
eking 20040416
欲知后事,且听下回分解
44B0x 的 BSP 是如何调成的(1)
工欲善其事, 必先利其器
一. 制作 44B0x 的 VxWorks 的 BSP 需要以下硬件和软件的准备
1. 44B0x 的开发板, 可选择的很多, 这里就不用说了. 2. Tornado IDE 2.0/2.2, 我用的是 2.2, 注意的是 2.2 只能安装在 windows 2K/XP 下, 生成的文件是 el f 格式, 2.0 可以在 98 下安装, 生成的文件是 coff 格式, 2.0 如果补充几个文件, 也可以下载 2.2 生成的 elf 格式 vxworks 3. ICE 或者 wiggler, 我用的是 wiggler, 鱼的 wiggler 就不错,51eda 的板子随板带一个 jtag 小板,简单 jtag, 支持 sdt251,也可以用 4. Source Insight, 编写代码 5. Ultraedit, 查看二进制文件, 运行 bat 文件 6. Beyond Compare, 版本文件比较(修改了文件代码, 突然发现不能工作的时候, 就需要它了) 7. SDT251, 实际上只需要 ADW 8. 2K/xp 下的 jtag.exe, 可以到 51eda 下载 9. 烧写软件 FlashPGM 或者 fluted, FlashP(推荐使用, 不用换线), 使用 FlashPGM+wiggler 烧写速度快,
VxWorks BSP基础PPT课件
6
BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
© 2000 Wind River Systems, Inc.
7
BSP功能
BSP功能简介 BSP与VxWorks的关系
© 2000 Wind River Systems, Inc.
8
BSP功能简介
1 系统加电后的硬件初始化
© 2000 Wind River Systems, Inc.
16
文件介绍
Config\bspname:
makefile:Image的编译规则,其中定义了一些 宏,如:RAM_LOW_ADRS,RAM_HIGH_ADRS。
config.h:包含所有的头文件和与CPU相关的宏定 义,如:对Cache和MMU的配置,RAM和ROM 的定位以及大小配置,外部总线地址映射,PCI 地址宏。
© 2000 Wind River Systems, Inc.
14
文件介绍
Config\all:
bootConfig.c:所有 bootrom的主要初始化与控 制文件。bootConfig.c是usrConfig.c的一个子 集。只提供完整Image中的部分功能。在集成环 境下修改工程相关的配置信息不会影响Boot Image,只有直接修改config.h, configAll.h,bootConfig.c和bootInit.c文件才会 影响到Boot Image;
VxWorks BSP Basics
© 2000 Wind River Systems, Inc.
1
第一部分
整体概述
THE FIRST PART OF THE OVERALL OVERVIEW, PLEASE SUMMARIZE THE CONTENT
VxWorks及BSP启动流程与顺序
目录1vxworks映像类型 (1)1.1可加载的映像类型(vxwoks) (1)2vxworks映像启动顺序 (1)2.1可加载型vxworks映像启动顺序 (2)2.2基于ROM的vxworks映像启动顺序 (2)2.3基于ROM驻留型vxworks映像启动顺序 (3)3BSP基础知识 (3)3.1BSP的定义 (3)3.2BSP的功能 (3)3.3 BSP的组成 (4)4BSP的启动 (4)4.1 BSP的启动流程 (4)4.2.1romInit.s:romInit()函数 (5)4.2.2bootInit.c:romStart()函数 (14)4.2.3bootConfig.c分析 (24)4.2.4sysLib.s:sysInit()函数 (26)4.2.5usrconfig.c:usrInit()函数 (27)4.2.6usrconfig.c:usrRoot()函数 (28)5总结 (31)VxWorks及BSP启动流程与顺序———李守轩摘要:本文首先介绍vxworks映像的类型及各类型vxworks映像的启动顺序;然后介绍BSP的启动流程与初始化顺序。
关键词:vxworks映像;BSP启动;代码分析1 vxworks映像类型对于vxworks映像的启动情况,从根本上看,在初始化和装载vxworks映像的过程中,处理器所执行的步骤在逻辑上是一样的。
对于有些处理器可能需要增加一些额外的步骤,而另一些处理器可能会省略掉某些步骤。
当构造vxworks映像时,根据需要可以构造不同类型的映像,系统把这些映像划分成以下三种类型。
1.1可加载的映像类型(vxwoks)可加载型映像的执行需要通过引导代码把它装载到目标机RAM中,然后才开始执行。
而引导代码分为两种:(1)引导代码固化在ROM或FLASH中;(2)引导代码是一个独立的vxworks应用;引导代码通常也是一种vxworks映像,也被称为引导映像。
VxWork BSP 和启动过程
VxWork BSP 和启动过程开发BSP主要的两点:1. 系统image的生成,image的种类,i mage的download下载过程,系统的启动顺序和过程,调试环境的配置及远端调试的方式和方法,相应BSP设置文件的修改(网络,串口..),BSP各文件的组成和作用.2. 要对系统底层驱动清楚,也就是对CPU及相关的硬件有所了解.主要是32微处理器(上电启动过程, download i mage的方式方法,读写ROM,地址空间分配,MMU,寄存器,中断定义,..).参照硬件资料,多读一些源码会有所帮助.Tornado 2 开发调试环境协议框图主机开发(Host De v e lopment Sy stem)目标机(T arget Sy stem)WDB协议通信<==========>两个主要两个协议WTX协议(Wind River Tool eXc hange): 用于开发机内部Tornado工具与T arget Server之间通信.WDB协议(Wind DeBug): 用于主机Target Server与目标机之间的通信.一.基本概念BSP定义:Provides VxWorks with primary interface to hardware environment.作用:∙在通电后,初始化硬件.∙支持V x W o r k s和硬件驱动通信.∙使hardware-dependent 和hardware-independent在VxWor k s系统中很好的结合.主要BSP主要文件目录的组成及主要文件的作用:∙目录target/config/All:这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件.configAll.h:缺省定义了所有VxWor k s的设置.如果不用缺省的设置,可在BSP目录下的config.h文件中用#define或#undef方式来更改设置.bootInit.c:在romInit.s后,完成Boot ROM的第二步初始化.程序从romInit.s中的romInit()跳到这个文件中的romStart().来执行必要的解压和ROM image的放置. bootConfig.c:完成Boot ROM image的初始化和控制.usrConfig.c: Vx Work s image的初始化代码.∙目录target/config/comps/src:涉及系统核心的components,主要由target/config/All中usrConfig.c中函数调用∙目录target/config/bspname:包含系统或硬件相关的BSP文件.Makefile一些命令行控制images的生成,参见BSP设置部分及生成下载READMEBSP发布纪录,版本,总的文档config.h包括所有涉及CPU主板的设置及定义(includes,defi nations),参见BSP设置文件及生成下载configNet.h网络驱动的主要设置文件,主要对END驱动设置.romInit.s汇编语言文件,是Vx Work s Boot ROM和ROM based image的入口,参见系统启动部分sysALib.s汇编语言文件,程序员可以把自己的汇编函数放在这个文件里,在上层调用.VxWor k s image的入口点_s y s Init在这个文件里,是在RAM中执行的第一个函数. sysLib.c包含一些系统相关的函数例程,提供了一个board-level的接口,VxWorks和应用程序可以以system-indepent的方式生成.这个文件还能包含目录target/config/comps/src的驱动.sysScsi.c可选文件用于Scsi设备设置和初始化.sysSerial.c可选文件用于所有的串口设置和初始化.bootrom.hexASIC文件包含VxWorks Boot ROM代码VxWorks运行在目标机上,完整的,连结后的Vx Wor k s二进制文件.VxWorks.sym完全的,连结后带有符号表的Vx Work s二进制文件VxWorks.st完全的,连结后,standalone,带有符号表的VxWor k s二进制文件∙BSP用"make"来编译连接生成(Created),而不是用Tornado的工具.∙BSP和应用程序都可以在"make"或"tornade"上开发(developed)∙BSP被设置包括以下驱动:中断控制interrupt controller,计时器timer(sys/aux),串口UART(serial),显示屏LCD,键盘Keyboard(opt),触摸屏touch-screen(opt).前面三个是BSP的主要部分.∙BSP默认的download VxWorks RAM image方式是从ethernet.∙串口电缆需要用来和开发板(COM1)通信,通过协议WDB.VxWorks Image的种类:∙Loadable images.∙R O M-b ased images---compressed/uncompressed.∙R O M-Resident images.ROM-resident image 对一些系统内存RAM资源较少的情况下,为了节省资源,只拷贝image中的数据部分(data segment)到内存RAM,留下程序部分(text segment)在ROM中执行。
第8章(327)
第8章 VxWorks BSP基础及其开发过程
(6) 装载需要的VxWorks段到RAM中,例如把数据段从 ROM拷贝到RAM中。
(7) 在初始化VxWorks内核前,使目标机硬件处于一个静 止状态。
2. 硬件驱动程序的集成 访问硬件设备驱动程序,BSP必须包含设备驱动程序的相 关支持、设备的配置管理等。这主要是指下面几个方面: (1) BSP里提供了一些驱动程序支持。在BSP里包含了一 些驱动程序的支持,其中包括驱动程序的中断服务程序、驱 动程序相关的结构以及宏定义等。 ① 除BSP包含与中断向量表关联的中断服务程序外,还 包含驱动程序定义的中断服务程序。
第8章 VxWorks BSP基础及其开发过程
第8章 VxWorkshop BSP 基础及其开发过程
8.1 BSP基础理论知识 8.2 BSP的基本配置和VxWorks的初始化 8.3 BSP的开发要求及开发过程 8.4 BSP中设备驱动程序的开发 8.5 本章小结
第8章 VxWorks BSP基础及其开发过程
要接口。因此,了解BSP的文件组成和结构是十分必要也是十 分重要的。在这之前,由于VxWorks系统是运行于Tornado开 发环境下的,因此我们首先介绍在开发环境Tornado软件包安 装后的模块组成和目录结构。
1. Tornado 的模块组成 Tornado开发系统包含三个高度集成的部分: (1) 运行在宿主机和目标机上功能强大的交叉开发工具和 实用程序。 (2) 运行在目标机上的高性能、可剪裁(用户可根据自己的 需要配置系统)的实时操作系统VxWorks。
第8章 VxWorks BSP基础及其开发过程
以上是从BSP的功能去理解BSP,但是到目前为止还没有 对BSP得出明确的定义。在VxWorks系统中,对BSP的简单描 述为介于底层硬件环境和VxWorks之间的一个软件接口。BSP 的主要特点是硬件相关性和操作系统相关性。因此BSP与操作 系统是相对应的,不同的操作系统就应该对应于不同定义形 式的BSP。例如,VxWorks的BSP和Linux的BSP相对于某一 CPU来说尽管实现的功能一样,可是写法和接口定义是完全 不同的,所以写BSP一定要按照该操作系统BSP的定义形式来 写(BSP的编程过程大多数是在某一个成型的BSP模板上进行 修改)。这样才能与上层OS保持正确的接口,良好地支持上层 OS。
Vxworks基础
BC NG 文件系统
VxWorks包括多种使用块设备的本地文件系统 VxWorks的I/O结构使VxWorks可以同时有多种文件系
统: MS-DOS兼容文件系统:dosFs RT-11兼容文件系统:rt11Fs
CPU 上电复位 基本配置初始化
ROM 拷贝到 RAM 并跳到 RAM 入口
硬件初始化 包括通信口
初始化 Vxworks 核 启动 Vxworks 核
重新执行目标机 的硬件初始化
执行用户程序
BC NG VxWorks的特点--高度伸缩性的环境
Memory Requirements
(Kbytes)
500
2、替换模板
模板中的图片展示页面,您可以根据需要
方法一:更改图片
2. 在图“替换”下拉列表中选择要更改字体。(如下图)
1.选中模版中的图片(有些图片与其他对 而不是组合)。
2.单击鼠标右键,选择“更改图片”,选
3. 在“替换为”下拉列表中选择替换字体。 4. 点击“替换”按钮,完成。
BC NG板支持包(BSP)
的下载及运行Tornado 工具通过以太网口进行。
BCTNoGrnado开发环境
BCTNoG nado开发环境(续)
BCTNoG rnado开发环境(续)
BC赠NG送精美图标
1、字体安装与设置
BC NG
如果您对PPT模板中的字体风格不满意,可进行批量替换,一次性更改各页面字体。
1. 在“开始”选项卡中,点击“替换”按钮右侧箭头,选择“替换字体”。(如下图)
BC NG Vxworks简介
最成功的实时操作系统 1981,Windriver,嵌入式咨询公司 TCP/IP,NFS工具集 WIND内核 1995,tornado集成开发环境 收购SDS、DIAB、pSOS
VxWorks BSP基础
中科信软培训中心
九、VxWorks BSP 基础
1. BSP基本概念
是介于底层硬件和上层软件之间的底层软件开发包,它 主要用来屏蔽底层硬件,提供操作系统的驱动及硬件驱 动。此外,BSP还要完成硬件与软件之间的数据交互, 从而为操作系统及上层应用程序提供一个与硬件无关的 软件平台。 BSP由两部分组成:初始化和驱动程序初始化:指系统 从上电复位开始直到wind微内核和usrRoot根任务启动 的这段系统的执行过程。包括寄存器操作、直接I/O操作 。 驱动程序:调用某具体硬件设备的驱动程序的接口对该 硬件初始化的过程。如串口驱动,网口驱动等。
2.BSP具体功能
单板硬件初始化,主要是CPU的初始化,为整 个软件系统提供底层硬件支持; 为操作系统提供设备驱动程序和系统中断服务 程序; 定制操作系统的功能,为软件系统提供一个实时 多任务运行环境; 初始化操作系统,为操作系统的正常运行做好准 备。
(1) 系统加电后的硬件初始化 加电后PC指针跳到特定的存储空间位置 设置处理器 初始化内存和内存地址 禁止中断 执行附加引导代码 将VxWorks载入RAM 载入VxWorks内核
Makefile文件
以下是BSP的Makefile中要使用最基本的宏 ROM_TEXT_ADRS: boot ROM入口地址(以16进制表 示),并且与config.h文件中的定义相同 ROM_SIZE: ROM的大小 RAM_LOW_ADRS: 加载VxWorks的目标地址 RAM_HIGH_ADRS: boot ROM拷贝到RAM的目标地址 HEX_FLAGS: 特殊结构的标记,用于产生s-record文件 MACH_EXTRA: 扩展文件,用户可以加入自己的目标 模块
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2013-7-10
© 2000 Wind River Systems, Inc.
BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
2013-7-10
© 2000 Wind River Systems, Inc.
BSP启动序列
映像类型 Loadable VxWorks image启动序列 ROM-Based VxWorks image启动序列 ROM-Resident VxWorks image启动序列 Bootrom Image 启动序列 启动列表
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Resident VxWorks image启动序列
系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Resident VxWorks image启动序列
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍
Config\bspname: makefile:Image的编译规则,其中定义了一些 宏,如:RAM_LOW_ADRS,RAM_HIGH_ADRS。 config.h:包含所有的头文件和与CPU相关的宏定 义,如:对Cache和MMU的配置,RAM和ROM 的定位以及大小配置,外部总线地址映射,PCI 地址宏。 configNet.h:网络驱动的主要配置文件,主要对 END驱动设置
2013-7-10
© 2000 Wind River Systems, Inc.
BSP主要完成:
单板硬件初始化,主要是CPU的初始化,为整个软件系 统提供底层硬件支持;
为操作系统提供设备驱动程序和系统中断服务程序;
定制操作系统的功能,为软件系统提供一个实时多任务 运行环境; 初始化操作系统,为操作系统的正常运行做好准备。
© 2000 Wind River Systems, Inc.
BSP与VxWorks的关系
2013-7-10
© 2000 Wind River Systems, Inc.
BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
2013-7-10
© 2000 Wind River Systems, Inc.
2013-7-10
© 2000 Wind River Systems, Inc.
启动列表(cont’)
2013-7-10
© 2000 Wind River Systems, Inc.
© 2000 Wind River Systems, Inc.
2013-7-10
Loadable VxWorks image启动序列
VxWorks在RAM中运行,如果写入ROM中的 boot或VxWorks image是压缩的,需要先解压 copy所有的text和data到RAM的 LOCAL_LOW_ADRS中,系统直接跳到RAM的 首地址,运行VxWorks
系统代码空间转移图示
2013-7-10
© 2000 Wind River Systems, Inc.
Bootrom Image 启动序列
目标板硬件系统引导代码启动,一般bootrom都 是烧到ROM或者Flash里面,可以调到RAM里面 运行或者在ROM里面运行,只初始化必要的硬件。
2013-7-10
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍
Config\all: bootConfig.c:所有 bootrom的主要初始化与控 制文件。bootConfig.c是usrConfig.c的一个子 集。只提供完整Image中的部分功能。在集成环 境下修改工程相关的配置信息不会影响Boot Image,只有直接修改config.h, configAll.h,bootConfig.c和bootInit.c文件才会 影响到Boot Image;
ROM-Resident VxWorks image启动序列
VxWorks在ROM中运行,系统直接跳到ROM的首地 址,运行VxWorks。 VxWorks 在ROM中的运行是 为了节省RAM空间,以便应用程序有更大的空间运 行。只需要把VxWorks image的data和BSS复制到 RAM的LOCAL_LOW_ADRS,text留在ROM并在中 执行。缺点是运行速度慢。
VxWorks BSP Basics
2013-7-10
© 2000 Wind River Systems, Inc.
BSP概念 BSP功能 BSP构成 BSP启动序列 BSP开发 BSP部分代码
2013-7-10
© 2000 Wind River Systems, Inc.
BSP概念
2013-7-10
© 2000 Wind River Systems, Inc.
Loadable VxWorks image启动序列
系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
Loadable VxWorks image启动序列
系统代码空间转移图示
2013-7-10 © 2000 Wind River Systems, Inc.
Hale Waihona Puke 文件介绍sysALib.s:包含目标板或系统相关的汇编语言函数, 实现了_sysInit()。是bootrom起来以后执行的第 一段代码,sysInit是loadable VxWorks映像调 用的入口,是在RAM中执行的第一个函数。 sysLib.c:包含目标板或系统相关的C语言函数, 该文件提供板级接口,通过该接口,VxWorks和 应用程序的实现与目标系统无关,sysLib.c包含 target\src\drv目录下的驱动程序子文件,驱动程 序的安装和初始化在子文件中完成。
ROM-Based VxWorks image启动序列
系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Based VxWorks image启动序列
系统代码空间转移图示
2013-7-10
© 2000 Wind River Systems, Inc.
© 2000 Wind River Systems, Inc.
Bootrom Image 启动序列
系统执行图示
2013-7-10
© 2000 Wind River Systems, Inc.
启动列表
2013-7-10
© 2000 Wind River Systems, Inc.
启动列表(cont’)
2013-7-10
© 2000 Wind River Systems, Inc.
文件介绍
sysSerial.c:用于串口设置和初始化 bspname.h:包含与板子相关的宏定义。要把 src\drv下的某驱动程序移植到目标板上,必须在 bspname.h文件开始包含目录src\drv下该驱动 程序对应的头文件。 bspname.h应该定义:中断向量或中断号;I/O设 备地址;设备寄存器位的含义定义;系统时钟和 辅助时钟最大和最小时钟速率。
2013-7-10
© 2000 Wind River Systems, Inc.
BSP功能简介
1 系统加电后的硬件初始化
加电后PC指针跳到特定的存储空间位置 设置处理器 初始化内存和内存地址 禁止中断 执行附加引导代码 将VxWorks载入RAM 载入VxWorks内核
2013-7-10
© 2000 Wind River Systems, Inc.
BSP(Board Support Packet): 是介于底层硬件和上层软件之间的底层软件开发包,它主 要用来屏蔽底层硬件,进行硬件系统的初始化并调用外 设的驱动程序接口管理系统外设。 BSP由两部分组成:初始化和驱动程序 初始化:指系统从上电复位开始直到wind kernel和 usrRoot根任务启动的这段系统的执行过程。包括寄存器 操作、直接I/O操作。 驱动程序:调用某具体硬件设备的驱动程序的接口对该 硬件初始化的过程。如串口驱动,网口驱动等。
2013-7-10
© 2000 Wind River Systems, Inc.
ROM-Based VxWorks image启动序列
VxWorks ROM版本首先从系统上电的时候提供 的入口地址开始执行,然后系统会自动把ROM中 的版本加载到RAM中执行。
2013-7-10
© 2000 Wind River Systems, Inc.
2013-7-10
© 2000 Wind River Systems, Inc.
映像类型
Loadable VxWorks image:是由bootrom装入 RAM中执行的VxWorks 映像 ROM-Based VxWorks image- compressed/uncompressed:烧录到ROM或 Flash里的VxWorks 映像,在RAM中运行 ROM-Resident VxWorks image:在内存资源 较少的情况下,可以让代码在Rom或Flash里面 运行,只把必要的数据段装入RAM Bootrom Image/ ROM-Resident Boot image: 引导映像
BSP构成