VxWorks引导程序启动详细过程

合集下载

VxWorks启动过程详解

VxWorks启动过程详解

VxWorks启动过程详解vxworks有三种映像:VxWorks Image的文件类型有三种- Loadable Images:由Boot-ROM引导通过网口或串口下载到RAM- ROM-based Images(压缩/没有压缩):即将Image直接烧入ROM,运行时将Image拷入RAM中运行。

-ROM-Resident Images:Image的指令部分驻留在ROM中运行,仅将数据段部分拷入RAM。

注意这里说的三种映像都是包含真正操作系统VxWorks的映像,其中后两种可以直接启动并运行起来,但是第一种不行,它必须借助另一个叫做Boot Image的映像(可以在Torn ado 中的build->build boot rom中生成)才能运行起来,也就是利用Boot Image引导起来然后通过网口或串口下载真正包含VxWorks的Loadable Image,然后才能运行起来。

也就是说Boot Image是和Loadable Image 结合使用的。

现在看来一共有四种映像文件,让我们看看它们的组成吧:-Boot Image:包含一段叫做BootStrap Programs的程序+一段ROM BOOT Program程序。

-Loadable Images:有操作系统VxWorks和应用组成的映像。

-ROM-based Images(压缩/没有压缩):包含一段叫做B ootStrap Programs的程序+ Loadable Images(即有操作系统VxWorks和应用组成的映像)-ROM-Resident Images:同上通过上面我们可以看出,ROM-based Images,ROM-Resid ent Images,Boot Image三种映像都包含一段叫做BootStrap Programs的程序,它具有启动功能,可以把ROM中的代码段和数据段拷贝到RAM中;下面让我们看看三种VxWorks的启动过程:Boot Image +Loadable Images:我们说过Loadable Images是依靠Boot Image加载启动的,首先有Boot Image中的程序BootStrap Programs把Boo t Program程序加载到RAM中的RAM_HIGH_ADRS处,然后控制权交给Boot Program,由Boot Program负责一系列简单的硬件初始化(网口,串口等),开始下载Loadable Images(即包含应用的VxWorks操作系统)到RAM_LOW_ADRS,然后控制权交给VxWorks操作系统开始执行。

VxWorks内核映像及BSP启动流程

VxWorks内核映像及BSP启动流程

函数。

基于处理器的特殊要求,
函数实现的开始处放置一个系统异常表。

该文件完全使用汇编代码编写,主要功能是完成平台的初始化(控制器初始化、屏蔽中断系统等),调用romInit函数。

bootInit.c文件中,且用C语言编写。

C语言程序,该函数被romInit 函数调用,他的主要功能是将代码从ROM复制到系统RAM 中。

对于被压缩的映像文件,在复制过程中,还要解压压缩
映像执行必要的代码重定位、解压和进行判断:如果接收到的启动命令是“
保存在line里,如果不是相应的命令也仍然从超级终端接收,并将此值保存在line数组中,并从这个数组中取出先前保存的值,根据这个值进行不同的操作。

当判断接收到的值为“@”
使目标机通过网络端口从上位机中加载
当判断接收到的值为“O”或“
本地文件系统加载VxWorks内核映像;当判断接收到的值为“l”或“L”时,则调用bootload
在bootload函数执行过程中,将
图5 BSP的启动流程图。

(完整word版)VxWorks及BSP启动流程与顺序

(完整word版)VxWorks及BSP启动流程与顺序

目录1vxworks映像类型 (1)1.1 可加载的映像类型(vxwoks) (1)2vxworks映像启动顺序 (2)2。

1 可加载型vxworks映像启动顺序 (2)2。

2 基于ROM的vxworks映像启动顺序 (3)2。

3 基于ROM驻留型vxworks映像启动顺序 (4)3BSP基础知识 (4)3.1 BSP的定义 (4)3。

2 BSP的功能 (4)3.3 BSP的组成 (5)4BSP的启动 (5)4。

1 BSP的启动流程 (6)4。

2。

1 ............... romInit.s:romInit()函数74.2.2 bootInit。

c:romStart()函数 (21)4.2。

3 ......................... bootConfig。

c分析374。

2。

4 .................. sysLib.s:sysInit()函数404.2.5 usrconfig。

c:usrInit()函数 (42)4.2.6 usrconfig。

c:usrRoot()函数 (43)5总结 (47)VxWorks及BSP启动流程与顺序———李守轩摘要:本文首先介绍vxworks映像的类型及各类型vxworks映像的启动顺序;然后介绍BSP的启动流程与初始化顺序.关键词:vxworks映像;BSP启动;代码分析1 vxworks映像类型对于vxworks映像的启动情况,从根本上看,在初始化和装载vxworks映像的过程中,处理器所执行的步骤在逻辑上是一样的.对于有些处理器可能需要增加一些额外的步骤,而另一些处理器可能会省略掉某些步骤。

当构造vxworks映像时,根据需要可以构造不同类型的映像,系统把这些映像划分成以下三种类型.1.1可加载的映像类型(vxwoks)可加载型映像的执行需要通过引导代码把它装载到目标机RAM中,然后才开始执行。

而引导代码分为两种:(1)引导代码固化在ROM或FLASH中;(2)引导代码是一个独立的vxworks应用;引导代码通常也是一种vxworks映像,也被称为引导映像。

以ARM为例的Vxworks开发工具的使用操作流程

以ARM为例的Vxworks开发工具的使用操作流程

以ARM为例的Vxworks开发工具的使用操作流程一.认识Tornado II和VxworksVxWorks是一种嵌入式的实时操作系统,所谓嵌入式系统就是用户自己开发设计板子,板子上通常有一颗CPU,VxWorks支持32位的CPU,包括Intel公司的x86、Motorola公司的68k和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司的SH。

我们设计的板子通常没有软件的自开发能力,所以我们需要一台通用机来辅助开发,这台通用机可以是PC 或工作站,我们称辅助我们软件开发的通用机为宿主机(Host),用户自己开发的板子为目标机(Target)。

宿主机上要有一个集成开发环境(IDE)来辅助我们的软件开发,这套集成开发环境可以运行在Windows95/NT或 UNIX下,包括交叉编译器(Cross Compiler)和交叉调试器(Cross Debugger),所谓交叉编译器就是在宿主机上编译生成可以在目标机上运行的代码IMAGE,交叉调试器就是通过宿主机和目标机之间的某种耦合方式实现前后台调试。

我们称宿主机上的这套集成开发环境为Tornado,编译生成的目标机上的可执行代码IMAGE为VxWorks。

在系统安装的时候,集成调试环境和VxWorks的原材料(一些obj文件)都安装到宿主机上,编译生成的在目标机上运行的IMAGE内包含操作系统。

二.Tornado II IDE的主要组成Tornado II IDE的主要组成部分有:1.集成的源代码编辑器(可惜不支持汉字输入)。

2.工程管理工具。

3.集成的C和C++编译器和make工具。

4.浏览器,用于收集可视化的资源,监视目标系统。

5.CrossWind,图形化的增强型调试器。

6.WindSh,C语言命令外壳,用于控制目标机。

7.VxSim,集成的vxworks目标机仿真器。

8.WindView,集成的软件逻辑分析仪。

9.可配置的各种选项,可以改变归Tornado GUI的外观等。

工控机vxworks说明文档

工控机vxworks说明文档

VxWorks CF卡及网络启动方法:CF卡格式化后分区,分出小于2G的空间,然后格式化文件系统选择fat16,勾选建立dos系统。

将、msdos.sys、io.sys三个文件拷入分区.新建vxworks boot loader工程(为了生成boorom),选好bsp后修改bsp中的config.h文件,修改方法见附件《vxworks的default boot line说明》。

clean project,然后编译工程。

生成bootrom.bin文件,将后缀改成sys,即得到bootrom.sys文件拷入cf卡。

将目标程序工程得到的vxworks文件拷入即可。

第一次启动时输C:lock把引导写入扇区VXWORKS电脑模拟单步调试方法建立downloadble工程,调试按钮里面选kerneltask,entrypoint里面填上入口函数下入控创机器建立的工程叫vxworks image project机器模拟调试建立工程叫downloadble kernel module project打开文件:电脑模拟用 fp= fopen("host:D:/juzhensuanfa/shishi/data.txt","r");机器用fp= fopen("/ata0a/data.txt","r");Dos命令下arp –a查看网卡地址。

工控机vxworks下E:\WindRiver64-wrs\vxworks-6.4\target\config,passauold文件夹的BSP时候网卡地址:00-25-a8-00-09-95data.txt文档写完矩阵以后最后一行要是回车注意组播地址的问题,第一字节最后一位是1stime.c文件里面把win32改成vxworks,有个取毫秒时间的被改了成time(NULL)ms_asn1_to_local在mms_vvar.h中有声明887行VOID readtxtcfg()读txt 文件配置电网拓扑矩阵,此方法不灵活,以后后台系统成熟后改成通过后台图形界面自动搜索拓扑生成array矩阵。

VxWorks及BSP启动流程与顺序

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基础知识 (4)3.1 BSP的定义 (4)3.2 BSP的功能 (4)3.3 BSP的组成 (4)4BSP的启动 (5)4.1 BSP的启动流程 (5)4.2.1 romInit.s:romInit()函数 (6)4.2.2 bootInit.c:romStart()函数 (14)4.2.3 bootConfig.c分析 (24)4.2.4 sysLib.s:sysInit()函数 (27)4.2.5 usrconfig.c:usrInit()函数 (28)4.2.6 usrconfig.c:usrRoot()函数 (29)5总结 (32)VxWorks及BSP启动流程与顺序———李守轩摘要:本文首先介绍vxworks映像的类型及各类型vxworks映像的启动顺序;然后介绍BSP的启动流程与初始化顺序。

关键词:vxworks映像;BSP启动;代码分析1vxworks映像类型对于vxworks映像的启动情况,从根本上看,在初始化和装载vxworks映像的过程中,处理器所执行的步骤在逻辑上是一样的。

对于有些处理器可能需要增加一些额外的步骤,而另一些处理器可能会省略掉某些步骤。

当构造vxworks映像时,根据需要可以构造不同类型的映像,系统把这些映像划分成以下三种类型。

1.1可加载的映像类型(vxwoks)可加载型映像的执行需要通过引导代码把它装载到目标机RAM中,然后才开始执行。

而引导代码分为两种:(1)引导代码固化在ROM或FLASH中;(2)引导代码是一个独立的vxworks应用;引导代码通常也是一种vxworks映像,也被称为引导映像。

自己写的教程 CF卡启动VxWorks系统

自己写的教程  CF卡启动VxWorks系统

X86平台下从CF卡启动vxWorks方法1.格式化CF卡在PC104工业计算机上,CF卡可被BIOS识别为硬盘,也可通过读卡器识别为移动设备。

使用USB CF卡读卡器,将其连接到到运行XP的计算机上,打开DiskGenius硬盘管理工具,可识别到该移动存储设备,如图1所示。

图1DiskGenius工具下识别移动存储设备选中移动存储设备(CF卡),图中标示为T1, 点击菜单栏的格式化,弹出格式化分区对话框,文件系统、簇大小按图中所示选择;卷标,用户随意定义,没有影响。

在此提醒:虽然在window7系统也可以格式化CF卡,但是经实验证明不可靠,最好用DiskGenius硬盘管理工具格式化CF卡。

2.为CF卡创建引导扇区(1)打开Vmvare软件,新建虚拟机,将制作好的DOS环境引导镜像文件(boot.flp)加载到软盘驱动器中,如下图2所示:图2(2)打开虚拟机电源,进入DOS环境,如下图3所示:图3此时换掉刚刚的软盘镜像boot.flp,替换为另一个软盘镜像文件(包含创建引导扇区命令),在设备状态那一栏,勾上“已连接”,勾掉“打开电源时连接”,如图4所示:图4此时进入DOS环境中,双击鼠标进入(退出,则按ctrl+alt),图中的A盘,就是我们刚刚换入的软盘镜像,键入dir命令,即可看到虚拟软盘A中的文件,其中就是我们用来为CF卡创建引导扇区的命令。

如图5所示:图5(3)将CF读卡器(带有CF)插入USB口,点击编辑虚拟机配置,进入下图中,通过添加硬件向导,选择一个物理硬盘,此时在“设备”下,应该选择PhysicalDrive1,而不是图中的PhysicalDrive0。

如下图6所示:图6(4)硬盘添加成功,C盘(即所插入的CF)就是合法的,然后执行vxsys c:命令,即可成功为CF卡创建引导扇区。

如下图7所示:图7至此,DOS环境下的相关操作已经完成,CF已经成功创建了引导扇区。

3.板级支持包BSP的相关修改以下为在winXP虚拟机中进行的操作:由于vxworks系统要求从CF卡启动,因此应该修改BSP中系统默认配置启动行参数。

VxWorks操作指南

VxWorks操作指南

VxWorks操作指南项目\子项目名称:3G BTS平台分系统拟制部门:科技发展部拟制日期:2000.2.28目录1. 实时嵌入式操作系统V X W ORKS (3)2.V X W ORKS和T ORNADO (4)3.T ORNADO的配置 (5)3.1 主机的设置:Tornado Register (5)3.2 目标的设置 (6)4.T ORNADO开发工具的使用介绍 (7)4.1 Editor (7)4.2 Projects(Tornado 2.0版本特有) (7)4.3 Shell (8)4.4 Debugger (9)4.5 Browser (10)4.6 GNU工具 (10)4.7 Target Server (11)5.V X W ORKS的启动过程及相关例程 (12)5.1 VxWorks启动的一般原理 (12)5.2 MSDOS的启动过程 (13)6.V X W ORKS的多任务管理 (14)6.1多任务 (14)6.2任务状态转换 (14)6.3 wind任务的排序(scheduling)机制 (14)6.4 任务控制 (15)6.5 任务的删除和删除安全 (15)6.6 任务异常处理 (16)6.7 VxWorks系统任务 (16)7任务间通信(原语消息的传递) (16)7.1 概述 (16)7.2 互斥 (17)7.3 同步 (18)7.4 删除安全 (19)7.5 中断和任务间的通信 (19)8应用程序的加载 (19)1.实时嵌入式操作系统VxWorksVxWorks操作系统是一种应用广泛的嵌入式实时多任务操作系统。

其内核WIND具有强占式优先级排序的多任务处理能力,提供了任务间同步和通信的机制,支持中断处理、看门狗定时器和内存管理功能。

VxWorks的开发环境是Tornado,应用程序的开发语言是ANSI C和C++。

VxWorks的开发体系是代理-服务器(Agent-Server)结构体系,即驻留在主机(Host)的开发工具Tornado通过目标服务器(Target Server)指示目标上的目标代理(Target Agent)进行目标板上的操作并将结果返回给主机。

自己写的教程CF卡启动VxWorks系统

自己写的教程CF卡启动VxWorks系统

自己写的教程CF卡启动VxWorks系统X86平台下从CF卡启动vxWorks方法1.格式化CF卡在PC104工业计算机上,CF卡可被BIOS识别为硬盘,也可通过读卡器识别为移动设备。

使用USB CF卡读卡器,将其连接到到运行XP的计算机上,打开DiskGenius硬盘管理工具,可识别到该移动存储设备,如图1所示。

图1DiskGenius工具下识别移动存储设备选中移动存储设备(CF卡),图中标示为T1, 点击菜单栏的格式化,弹出格式化分区对话框,文件系统、簇大小按图中所示选择;卷标,用户随意定义,没有影响。

在此提醒:虽然在window7系统也可以格式化CF卡,但是经实验证明不可靠,最好用DiskGenius硬盘管理工具格式化CF卡。

2.为CF卡创建引导扇区(1)打开Vmvare软件,新建虚拟机,将制作好的DOS环境引导镜像文件(boot.flp)加载到软盘驱动器中,如下图2所示:图2(2)打开虚拟机电源,进入DOS环境,如下图3所示:图3此时换掉刚刚的软盘镜像boot.flp,替换为另一个软盘镜像文件(包含创建引导扇区命令),在设备状态那一栏,勾上“已连接”,勾掉“打开电源时连接”,如图4所示:图4此时进入DOS环境中,双击鼠标进入(退出,则按ctrl+alt),图中的A盘,就是我们刚刚换入的软盘镜像,键入dir命令,即可看到虚拟软盘A中的文件,其中就是我们用来为CF卡创建引导扇区的命令。

如图5所示:图5(3)将CF读卡器(带有CF)插入USB口,点击编辑虚拟机配置,进入下图中,通过添加硬件向导,选择一个物理硬盘,此时在“设备”下,应该选择PhysicalDrive1,而不是图中的PhysicalDrive0。

如下图6所示:图6(4)硬盘添加成功,C盘(即所插入的CF)就是合法的,然后执行vxsys c:命令,即可成功为CF卡创建引导扇区。

如下图7所示:图7至此,DOS环境下的相关操作已经完成,CF已经成功创建了引导扇区。

VxWorks引导启动过程

VxWorks引导启动过程

VxWorks引导启动过程一基本概念及引导概述1 bootloader/bootrom/bootstrapCPU上电经自复位的过程(由硬件时序逻辑决定的Power-On StrappingSequence)后,指令指针指向一个固定的地址(after-reset startingpoint)。

这个固定地址因体系架构而异:在一个基于ARM7TDMI core 的嵌入式系统中,系统在上电或复位时通常都从地址0x00000000 处开始执行;在一个MIPS体系架构的嵌入式系统中,系统在上电或复位时通常都从地址0xBFC00000(0x1FC00000)处开始执行。

无论是ARM中的0x00000000,还是MIPS中的0x1FC00000,这个入口地址处往往存放的就是系统的Boot Loader程序。

这个地址往往映射(可参考具体datasheet的Memory Map)为Boot Rom的地址空间,这里的Boot Rom通常为NOR Flash或者SPIFlash(早期的可能为EEPROM等非易失性存储介质)。

由此可见,bootloader(引导加载程序)是系统上电后运行的第一段软件代码。

bootrom则是用来存储bootloader的ROM/Flash芯片。

当然bootrom(ROM/Flash)上不仅仅只是存储bootloader,往往还存储着系统映像、应用程序资源和用户配置数据等信息。

这样,嵌入式设备每次重新上电后,总能加载系统和恢复上一次的配置。

因为嵌入式设备中往往没有配备磁盘,SDRAM又是易失的,因此bootrom上往往还存放着系统映像等数据(可能是压缩的)。

在嵌入式系统中,通常没有像BIOS那样的固件程序(注,有的嵌入式CPU也会内嵌一段短小的启动微码),因此整个系统的加载启动任务就完全由Boot Loader来完成。

此时,CPU只认得指令,因此bootloader一般以纯汇编指令开始,而不应该包含任何ELF格式的文件头信息(这些信息只有特定OS才能识别)。

Dos引导VxWorks

Dos引导VxWorks

CF卡上引导VxWorks的三种方法方法一. 直接引导:引导扇区>> bootrom.sys>> VxWorks这种方法最快,但要求bootrom.sys保持连续性(可用chkdsk检查)。

方法二. FreeDOS引导:引导扇区>> FreeDOS>> >> bootrom.sys>> VxWorks这种方法牺牲少量启动时间换取灵活性,因为你可以为FreeDOS增加菜单实现选择性启动,而且许多维护性工作也可在DOS下进行。

方法三. GRUB引导:引导扇区>> GRUB>> FreeDOS启动盘映像>> FreeDOS>> >> bootrom.sys>> VxWorks这种方法比上一种更进一步,你可以利用GRUB的强大功能实现多系统引导,不过不是所有的主板都支持GRUB。

grub> kernel --type=netbsd /vxWorks一共两个分区,都是主分区。

C盘为Fat32格式,设为活动分区。

D盘为Fat格式,设为非活动分区。

C盘装的Winxp,用XP引导Grub4DOS。

把DOS的系统文件(IO.sys,MSDOS.sys,)拷贝到D盘根目录。

修改menu.lst如下:title DOS6.22root (hd0,1)chainloader (hd0,1)/IO.SYStitle DOSDOSfind --set-root (hd0,1)/io.syschainloader (hd0,1)/io.systitle FINDDOSACTfind --set-root (hd0,1)/io.sysmakeactivechainloader (hd0,1)/io.systitle HD0rootnoverify (hd0,0)makeactivechainloader +1title HD1HD1rootnoverify (hd0,1)makeactivechainloader (hd0,1)/io.sys都不能成功,显示错误为Error 13:Invalid or unsupported executable format。

基于vxWorks的BSP启动过程实例分析

基于vxWorks的BSP启动过程实例分析

一.引言BSP是系统用来管理外设的部分,由两部分组成:初始化、驱动程序。

所谓初始化是指从系统上电复位开始直到wind kernel和usrRoot根任务启动的这段时间,系统的执行过程。

驱动程序就是一些包含I/O操作的子函数。

初始化包括:CPU Init、Board Init、System Init。

CPU Init初始化CPU的内部寄存器。

Board Init初始化智能I/O的寄存器,将device打通。

System Init为系统的运行准备数据结构,进行数据初始化。

驱动程序的特点是不能自动执行,只能被动调用。

调用可以有三种方式:任务直接调用、任务调用System Call、任务调用服务。

所以驱动程序可以抽象为三个层次:常规操作、与VxWorks的接口、与Component的接口。

常规操作是设备的固有操作逻辑,有两层含义:I/O编址微观上表现为CPU操作device的寄存器、宏观上表现为具体操作的含义。

驱动程序与VxWorks的接口、驱动程序与Component的接口有三层含义:I/O管理、操作类型规整及参数规整。

二、MPC8260 ADS Board BSP 工作流程系统在上电之后,第一个执行的为romInit模块代码,该段代码单独存为一个文件:romInit.s。

romInit.s是一个汇编级的程序,主要完成系统最基本的硬件初始化工作。

RomInit模块分析:这个模块为VxWorks Boot Rom的入口代码,程序的入口点romInit处是上电后首先执行的代码,他设置BOOT_COLD参数,该参数将被传送到romStart( )程序。

当程序sysToMonitor()运行时,它会跳到romInit处后8字节的地方开始执行,来实现一次“热启动”。

下面为冷启动与热启动的具体实现:_romInit:romInit:bl cold /* jump to the cold boot initialization */nop /* 到这条指令结束,两条指令共占用了8个字节*/bl start /* jump to the warm boot initialization */cold:……start:……下面我们来看一看在cold段里,程序作了那些工作:……bl start /* jump to the warm boot initialization */cold:li r3, BOOT_COLD /* set cold boot as start type *//*根据前面的注释,BOOT_COLD将会被传送到romStart( )程序中去*/addis r4,0,0x0F01 /* R4 holds the IMMR base address */addis r5,0,0x0000 /* Clear out all mask bits */ori r5,r5,0x0836stw r5,0x0104(r4) /* option register for bank 0 */isync /* synchronize *//* 这段代码的目的是初始化寄存器Option register bank 0,将0x0836写入该寄存器*/ /** initialize the IMMR register before any non-core registers* modification. The default IMMR base address was 0x0F000000,* as originally programmed in the Hard Reset Configuration Word.*/lis r4, HIADJ (INTERNAL_MEM_MAP_ADDR)addi r4, r4, LO (INTERNAL_MEM_MAP_ADDR)addis r8,0,0x0F01 /* IMMR was at 0x0f000000 */stw r4,0x01a8 (r8) /* IMMR now at 0x04700000 */isync/*这段代码的目的是修改寄存器IMMR的值,重新设定内部内存的基址,有了这段代码,我们在修改该基址的时候,就可以直接通过修改INTERNAL_MEM_MAP_ADDR的值就可以完成,无需修改这段代码。

vxWorks在虚拟机上运行的说明

vxWorks在虚拟机上运行的说明

如何在虚拟机运行vxWorks1.什么是bootrombootrom相当于linux系统中常用的grub工具。

2.生成bootrombootrom由BSP生成。

拿到BSP之后,一般我们只需要修改config.h文件,以修改bootrom 启动后从哪里加载vxworks镜像。

在config.h文件中,找到定义宏DEFAULT_BOOT_LINE的地方,根据目标板CPU类型选择需要修改哪一个宏。

如,我们在虚拟机上运行vxWorks,而虚拟机的CPU是PENTIUM4系列,所以修改PENTIUM4下面的DEFAULT_BOOT_LINE。

#define DEFAULT_BOOT_LINE \"lnPci(0,0)host:vxWorks h=192.168.100.1e=192.168.100.50:ffffff00 u=vxworks pw=vxworks tn=vmware"以上表示,bootrom启动后,镜像是从以太网卡的第0网卡的第0个端口加载,本地IP 地址为192.168.100.50,由e=192.168.100.50:ffffff00所指定,注意后面的ffffff00是子网掩网;尝试从192.168.100.1主机的FTP获取vxWorks镜像,使用的FTP用户名为vxworks,即u=vxworks所指定的,密码由pw=vxworks指定。

配置完成后,双击桌面的快捷方式“VxWorks_-_Pentium”,这个快捷方式其实就是启动了一个cmd(以后不特殊说明,所有的cmd均表示双击桌面的快捷方式“VxWorks_-_Pentium”启动的cmd),只是预先设置了很多环境变量。

进入BSP目录,在命令行输入make bootrom.bin,即可在BSP目录下生成bootrom.bin,也就是我们需要的bootrom。

3.使用bootrom3.1.使用虚拟软驱引导创建虚拟机(注意操作系统是other)。

VxWorks启动过程详细描述

VxWorks启动过程详细描述

VxWorks 启动过程描述及主要宏开关含义1 三种不同的VxWorks 映象比较VxWorks 是一种灵活的、可裁剪的嵌入式实时操作系统。

用户可以根据需要创建自己的VxWorks 映象,由它来引导目标系统,而后下载并运行应用程序。

根据应用场合的不同,VxWorks 映象可分为三类:可加载的VxWorks 映象、基于ROM 的VxWorks 映象和驻留ROM 的VxWorks 映象。

1.1 可加载的VxWorks 映象这是一种运行于RAM 的VxWorks 映象。

它不包含搬移程序,需要借助于一些外部的程序如bootRom 才能加载到RAM 的低端RAM_LOW_ADRS 地址处。

这是缺省的开发映象。

在开发的初期阶段,用户可以根据需要添加或删除一些VxWorks 组件,生成自己的可加载的VxWorks 映象,存放在开发主机的某个目录下。

目标板上电后,由烧结在BOOT 中的起始引导程序(BootStrap Programs)将BOOT 中的ROM 引导程序(ROM Boot Programs )拷贝到RAM 的高端地址RAM_HIGH_ADRS 处,并跳转至该地址执行ROM 引导程序,配置好所选的加载方式(缺省为网络方式),将指定的主机目录下的可加载的VxWorks 映象下载到目标板的RAM 地址RAM_LOW_ADRS 处,并跳转到此处执行。

如图1所示。

这种映象的优点是生成的VxWorks 映象可以存放在开发主机PC 机上,不用烧到BOOT 中,节省了BOOT 容量,也便于随时修改不同的VxWorks 映象,适用于调试的初期阶段。

不足之处是需要在主机上维护一个正确的VxWorks映象,对于调试硬件无关的上层应用程图1、可加载的VxWorks 映象序显得不是很方便。

在Tornado工作台的Build窗口中,选择Rules属性页中的VxWorks即可生成可加载的VxWorks映象。

1.2 基于ROM的VxWorks映象这是一种运行于RAM中,但起初存放于ROM中的VxWorks映象。

Vxworks的引导过程

Vxworks的引导过程

VxWorks的引导过程此文为学习记录,非正式文档相关术语说明如下:Boot: 引导或加载Boot ROM : 用来存放boot程序的ROM, boot程序首先对硬件作必要的基本的始化后搬运boot程序到RAM空间。

然后启动加载程序通过网口、串口或者扩展FLASH加载VxWorks系统。

Boot ROM程序可看作是一个独立的系统,具有自加载功能和通过串口、网口或扩展FLASH加载VxWorks系统的功能。

RAM_HIGH_ADRS:拷贝boot ROM映像的目标地址RAM_LOW_ADRS:VxWorks映像的起始地址:1.1启动过程以下启动过程是通过串口或者网口加载VxWorks系统的过程,并不代表所有的加载过程。

1.上电复位后第一条被执行的指令位置0xfff00100(针对MPC8240)上电复位后CPU从0xfff00100取指令开始执行.这个地址位于boot ROM空间内。

1)完成启动所必要的初始化设置状态字并创建一个哑堆栈(dummy stack)2)初始化存储器接口2.跳到C程序的入口地址第一个被执行的C程序是romStart().程序首先拷贝boot ROM内的部分boot程序到RAM空间.(我认为这以后程序都在RAM中运行)。

然后根据哑堆栈中的参数决定是否清零内存RAM(如是冷启动(cold start)则清零),再把ROM段的剩余部分拷贝到RAM 的RAM_HIGH_ADRS地址(如果ROM代码是压缩的,还要解压)。

3.处理器跳到RAM的入口地址 RAM_HIGH_ADRS(bootConfig.c)。

在这里执行的程序是usrInit();使cache无效,清零bss段,初始化向量表,进行板级初始化。

4.启动多任务内核VxWorks的boot ROM本身就是一个独立的应用。

到此步为止可看作是boot ROM内的这个独立系统已经被加载且运行起来了。

5.加载VxWorks系统通过串口、网口或者从扩展FLASH中加载系统,VxWorks被加载到RAM的地端地址,起始地址为RAM_LOW_ADRS.6.应用程序加载各步所调用函数先后顺序如下:上电复位——》romInit()——》romStart()——》usr Init()——》initVectBaseSet()——》sysHwInit()——》usrKernelInit()——》kernelInit ()——》usrRoot()(启动串口或者网口加载程序)——》(完成对VxWorks 系统的加载) ——》sysInit()——》usrInit()——》initVectBaseSet()——》sysHwInit()——》usrKernelInit()——》kernelInit()——》usrRoot()(和前一个usrRoot()不一样,这里启动用户程序)romInit():这是上电复位后首先执行的程序(a)设置哑堆栈,初始化CPU内的寄存器,无效Cache,禁止中断;(b)保存启动类型,启动类型分为冷启动和热启动(c)硬件初始化,主要是初始化存储器接口。

VxWork BSP 和启动过程

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中执行。

如何在VxWorks启动时自动运行自己的程序

如何在VxWorks启动时自动运行自己的程序

如何在vxworks系统启动后自动执行用户程序本文给出了一个简单的例子,在vxworks启动完成后,自动启动用户程序demo()和welcome(),在屏幕上打印出欢迎信息。

运行效果如下:具体实现过程如下:1)在虚拟机VM上安装vxWorks,至于如何安装,具体可参考下面的转载文章。

×××××××××××××××××××××××××××××××××××××××【转载】在VMWare上安装VxWorks操作系统wabcon2003-12-27概述VxWorks是风河公司(Windriver)开发的实时操作系统之一,以其优秀的可靠性、实时性及内核的可裁减性,被广泛应用于通信、军事、航天、航空等关键行业领域。

VxWorks可以适用于多种硬件体系结构,其中也包括大家日常都可以接触到的PC体系结构。

VMWare 是被广泛应用虚拟PC系统软件,他可以提供基于Inetl CPU的虚拟PC系统环境,包括CPU、BIOS、硬盘和其他外围硬件设备,使您可以在一台PC机上同时运行两个操作系统。

VMWare对外围硬件设备的模拟,屏蔽了不同设备型号的差异,在硬件环境发生改变时(硬件型号变化),对于运行于VMWare上的操作系统影响很小(无须安装新的驱动程序)。

本文以下部分将介绍如何在VMWare软件提供的虚拟环境上安装VxWorks操作系统。

由于可以在同一台PC机上建立完整VxWorks开发环境,所以可以有效地降低项目初期的开发成本,也可以为初学者提供一个接近于真实的模拟环境。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档