Dos引导VxWorks

合集下载

VxWorks操作系统指南

VxWorks操作系统指南

VxWorks操作系统指南目录1. VxWorks操作系统概述41.1.VxWorks 操作系统简介41.2.VxWorks操作系统内核51.3.任务管理61.4.通信、同步和互斥机制91.5.网络通信111.6.中断服务程序141.7.时间管理器142.VxWorks应用指导162.1.系统启动172.2.应用系统配置192.3.板级支持包BSP 212.4.VxWorks系统任务232.5.应用软件开发指导232.6.应用示例分析25关键词:实时操作系统 任务 消息 VxWorks Tornado摘要:本文档对实时操作系统作了简要介绍,并针对VxWorks系统的特点进行了具体的说明和分析,从VxWorks系统的任务管理、通信机制、系统配置、系统接口几个方面展开。

1. VxWorks操作系统概述1.1.VxWorks 操作系统简介实时多任务操作系统是能在确定的时间内执行其功能,并对外部的异步事件作出响应的计算机系统。

多任务环境允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。

VxWorks系统提供多处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接字。

实时系统的另一关键特性是硬件中断处理。

为了获得最快速可靠的中断响应,VxWorks系统的中断服务程序ISR有自己的上下文。

VxWorks实时操作系统由400多个相对独立的、短小精炼的目标模块组成,用户可根据需要选择适当模块来裁剪和配置系统,这有效地保证了系统的安全性和可靠性。

系统的链接器可按应用的需要自动链接一些目标模块。

这样,通过目标模块之间的按需组合,可得到许多满足功能需求的应用。

VxWorks操作系统的基本构成模块包括以下部分:高效的实时内核WindVxWOrks实时内核(Wind)主要包括基于优先级的任务调度、任务同步和通信、中断处理、定时器和内存管理。

兼容实时系统标准POSIXVxWOrks提供接口来支持实时系统标准P.1003.1b.I/O系统VxWOrks提供快速灵活的与ANSI-C相兼容的I/O系统,包括UNIX的缓冲I/O和实时系统标准POSIX的异步I/O。

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映像,也被称为引导映像。

VxWorks5.5 硬盘启动盘方法

VxWorks5.5 硬盘启动盘方法

不论软盘启动,硬盘启动还是网络启动,都需要建一个系统引导盘,我用的是硬盘作为引导盘,config.h 文件中bootline 改为#define DEFAULT_BOOT_LINE \"ata=0,0(0,0)host:/ata1/vxWorks h=192.168.102.1 e=192.168.102.2 o=rtl"制作方法是,用软盘或者USB-FDD 盘(比较容易买到),启动进入DOS,在硬盘上分出一个不大于256M的主活动分区,然后格式化。

格式化之后用lock c:命令锁住刚才分配的系统盘,然后用风河公司提供的DOS命令vxsys 执行vxsys c:命令,创建vxworks的引导扇区(vxsys命令应该事先拷入软盘),这个操作和DOS下运行format /s效果差不多,只不过后者是创建的windows的引导扇区。

然后把硬盘插到主机上(可用移动硬盘盒挂着),在cmd环境下,进入tornado2.2/host/x86-win32/bin文件下,运行mkboot h: bootrom命令,把bootrom.sys文件制作到刚才的启动盘上(事先要把编译生成的bootrom文件拷入tornado2.2/host/x86-win32/bin文件下)。

制作完成bootrom.sys文件后,打开tornado的ftp server设置一下网络启动需要的配置,就可以用硬盘启动目标机了,进入启动界面后,系统会提示从网络加载vxworks操作系统镜像然后启动系统,主机和目标机直接要用网线连接,IP地址在config.h文件里设置好了。

当然硬盘启动或软盘启动也可以把镜像文件拷到盘里,直接在盘里加载镜像。

系统启动后,就可以同过网络加载的方式调试用户应用程序,tornado提供了调试使用的服务器,可以tornado环境下检测程序运行的情况,在确定程序运行无误后,就可以把程序固化到目标机了。

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)进行目标板上的操作并将结果返回给主机。

DOS程序移植到Vxworks环境下的实践

DOS程序移植到Vxworks环境下的实践
struct ****{ BYTE ****; WORD ****; WORD ****; ……
}__attribute__ ((packed)); 可以改成:
struct ****{ BYTE reserved; BYTE ****; WORD ****; WORD ****; ……
}__attribute__ ((packed)); 或
或将要把 DOS 下的应用程序移植到 Vxworks 下的朋友们参考,发现而未能解决的问题提出
来供大家研究,希望能集众人之力解决这些问题,共同提高。由于篇幅限制,本文只涉及
Vxworks 的应用程序的开发,关于底层驱动及 BSP 开发请大家购买相关书籍及文章,推荐 入门书籍《Vxworks 程序开发实践》。
struct ****{ WORD ****;
WORD ****; BYTE ****; …… }__attribute__ ((packed)); f) 在中断开发时发现使用 intLock(x)、intUnlock(x)似乎不管用,使用 intLock ()、和 intUnlock()就可以了,不知为何? g) 系统引导时,速度比较慢,在 bootrom 中增加打印函数发现在第一次文件操作 (本地或网络打开 vxworks 文件或者打开配置文件)阻塞等待了十几秒,然后 才能后续语句的执行。小组分析是文件系统的问题,目前尚未解决,系统高手 们共同探讨。

网络通信包
单任务环境下模拟的简单 成熟稳定的全功能以太网
TCP/IP 开发包,只能以非阻 通信组件
塞方式运行
开发调试环境
BC++3.1
强大的集成开发调试环境 Tornado2.2,可通过网络在
线对程序进行源码级调试

自己写的教程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已经成功创建了引导扇区。

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

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.22
root (hd0,1)
chainloader (hd0,1)/IO.SYS
title DOSDOS
find --set-root (hd0,1)/io.sys
chainloader (hd0,1)/io.sys
title FINDDOSACT
find --set-root (hd0,1)/io.sys
makeactive
chainloader (hd0,1)/io.sys
title HD0
rootnoverify (hd0,0)
makeactive
chainloader +1
title HD1HD1
rootnoverify (hd0,1)
makeactive
chainloader (hd0,1)/io.sys
都不能成功,显示错误为Error 13:Invalid or unsupported executable format。

请问这是为什么。

我能用什么方法实现双启动?另外还有一个问题,Grub4DOS能引导Vxworks的bootrom 吗?如果可以怎么做?谢谢各位了!
作者: realstephen 时间: 2009-12-2 21:56
看来我提的这个问题太幼稚。

DOS6.22只能安装在硬盘第一主分区吧。

呵呵
作者: fujianabc 时间: 2009-12-3 17:24
ms-dos 6.22不支持直接用chainloader io.sys方式启动,必须chainloader启动扇区才能启动,因为msdos 6.22的io.sys与msdos.sys两个文件都是核心文件
[ Last edited by fujianabc on 2009-12-3 at 17:26 ]
作者: realstephen 时间: 2009-12-4 23:20
原来如此。

谢谢。

已经用chainloader(0,0) + 1的方法启动成功。

我后来试着用grub4dos引导Vxworks的bootrom.sys,得到的也是Error 13:Invalid or unsupported executable format,请问是grub4dos不支持这种格式吗?
作者: fujianabc 时间: 2009-12-5 19:50
Quote:
Originally posted by realstephen at 2009-12-4 11:20 PM:
原来如此。

谢谢。

已经用chainloader(0,0) + 1的方法启动成功。

我后来试着用grub4dos引导Vxworks的bootrom.sys,得到的也是
Error 13:Invalid or unsupported executa ...
bootrom.sys是什么东西?你为什么直接用chainloader来加载?
作者: realstephen 时间: 2009-12-5 23:14
bootrom.sys是Vxwroks系统的boot loader。

我以前是用DOS6.22来引导它,由它引导Vxworks 的真正IMG。

现在想尝试用Grub4DOS来直接引导它,这样我就可以摆脱DOS6.22了。

作者: realstephen 时间: 2009-12-5 23:18
是否应该用
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/bootrom.sys
这种方式?
作者: fujianabc 时间: 2009-12-6 18:29
Quote:
Originally posted by realstephen at 2009-12-5 11:14 PM:
bootrom.sys是Vxwroks系统的boot loader。

我以前是用DOS6.22来引导它,由它引导Vxworks的真正IMG。

现在想尝试用Grub4DOS来直接引导它,这样我就可以摆脱DOS6.22了。

grub又不是操作系统,grub只支持直接加载两类格式:
1、chainloader命令能直接加载bootsect类的文件以及ntldr和io.sys
2、kernel命令能直接加载linux内核类的文件
你的bootrom.sys显然不属于上面两类之一,所以grub不能直接加载。

你dos下是怎样加载bootrom.sys的?
作者: realstephen 时间: 2009-12-6 22:53
Vxworks提供了一个DOS6.22调用的程序,DOS6.22启动后通过引导bootrom.sys,这个时候DOS就把控制权交给Vxworks的bootrom了,然后bootrom.sys 初始化基本的硬件信息(包括IO系统,网络等),将真正的操作系统映像Vxworks加载到内存,并把控制权交给Vxworks。

这样就完成了启动。

当然Vxworks也有其他的启动模式,比如利用vxsys将Vxworks的引导信息写到硬盘的引导扇区,然后上电后引导信息直接加载bootrom.sys。

作者: fujianabc 时间: 2009-12-7 02:33
Quote:
Originally posted by realstephen at 2009-12-6 10:53 PM:
当然Vxworks也有其他的启动模式,比如利用vxsys将Vxworks的引导信息写
到硬盘的引导扇区,然后上电后引导信息直接加载bootrom.sys
那你就按照此方法,用vxsys将Vxworks的引导信息写到硬盘的引导扇区,然后用grub chainloader加载引导扇区
作者: ZhiChaoC 时间: 2009-12-18 10:36 标题: 能DOS与PE双启动共存吗?
能DOS与PE双启动共存吗???
如果可以的话,用什么工具,如何制作!!!???请帮助,求教,谢谢!!!????
作者: realstephen 时间: 2009-12-19 20:39
问题已解决。

作者: turkeycq 时间: 2010-1-11 11:11
你的DOS是怎么引导的?还是这样吗?chainloader(0,0) + 1
括号里的(0,0)是什么意思。

相关文档
最新文档