Dos引导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启动流程与顺序
目录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 硬盘启动盘方法
不论软盘启动,硬盘启动还是网络启动,都需要建一个系统引导盘,我用的是硬盘作为引导盘,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启动流程与顺序
目录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系统
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操作指南项目\子项目名称: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环境下的实践
}__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系统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)1 基于硬盘启动的Vxworks环境搭建 (3)2 Vxworks引导盘制作 (6)2.1 通过DOS加载VxWorks方法 (6)2.2 Bootrom三种类型 (7)2.3 VxWorks映象 (7)2.4 Bootrom.sys最快制作方法 (8)2.5 从网络引导 (8)2.6 从本地硬盘引导 (9)2.7 制作bootrom文件 (9)2.8 Bootrom编译步骤 (11)2.9 用BSP生成Bootable工程(即我们的程序文件) (12)2.10 FTP Server下载VxWorks (14)3 Tornado调试环境的建立 (17)3.1.1 配置文件config.h (17)3.1.2 网络连接 (18)6 从主机搭接(attach)到目标机 (21)7.1.3 串口连接 (21)4 4.Config.h文件注释说明 (22)4.1 启动行说明 #define DEFAULT_BOOT_LINE \: (22)4.2 Config.h 文件说明 (23)4.3 启动参数结构体 BOOT_PARAMS (35)4.4 booting过程介绍,比较详细 (39)5 sysClkRateGet();返回系统时钟每秒的tick数量, tick详解 (43)6 中断应用设计要点 (44)7 驱动程序设计 (49)8 缩短vxworks的启动时间 (52)9 调试篇 (55)10 驱动编程步骤 (55)10.1 将驱动程序增加到“系统驱动程序列表”中 (55)10.2 将设备增加到“系统设备列表”中 (55)10.3 打开设备,得到文件描述符 (55)10.4 SELECT机制的使用 (56)10.4.1 select( )函数翻译 (58)11 VxWorks系统的网络驱动(END) (60)12 VXworks操作系统中信号量用于多任务同步与互斥的讨论 (62)12.1 二进制信号量实现互斥和同步 (64)12.1.1 互斥的实现: (64)12.1.2 同步的实现: (65)12.2 互斥信号量 (67)13 Tornado的文件目说明录 (68)14 Shell 内置命令说明 (72)14.1 任务管理 (72)14.2 任务状态信息 (72)14.3 系统修改和调试 (73)14.4 对象命令( WindSh Commands for Object Display ) (73)14.5 WindShell and Browser, Shell 命令 (74)15 驱动篇 (82)16 中断篇 (83)16.1 中断服务程序ISR编写注意事项 (83)16.2 中断号与中断向量的转换 (84)16.3 安装中断服务程序 intConnect() (84)16.4 调试中断服务程序方法 (84)17mkboot批处理命令详细解释 (84)18 MakeFile 说明 (86)19 VxWorks5.4中的输入输出重定向 (89)19.1 vxworks屏幕输出, 一般来说用printf都是串口/shell输出,串口输出就可以到屏幕上了? (89)19.2 20.2 VxWorks中针对X86开发时标准输入输出的重定向? (90)20 怎样加入外部.o文件? (93)21 如何在Vxworks中使用 cd ,pwd , ls 命令:启用File System and Disk Utilities 组件(INCLUDE_DISK_UTIL),可在shell下用pwd/cd/ls等命令 (94)22 Error: image is larger than 524288 bytes (94)23 proxyArpDefaultOn()未定义解决方法? (95)24 如何将VxWorks的系统定时间隔或系统Ticks设置为1ms (95)25 read/write、fread/fwrite、fopen/open有什么区别 (96)26 快速启动 (100)27 启动时报ATA0a和硬盘启动相关问题 (100)28 如何安装USB2.2新版本及编译USB驱动? (101)29 WindML、图形界面相关问题 (102)29.1 WindML,ugldemo出错? (102)29.2 5101 VxWorks黑屏问题? (102)29.3 添加ugldemo.c后,编译报undefined reference to “ugltextdraw”错误一大堆? (103)29.4 WindML 中文字库显示? (103)30 VxWork6.8相关问题 (105)30.1 ELF和bin文件的区别? (105)30.2 diab和GNU的区别? (106)31 No such file or directory错误? (108)专业术语:WTX协议:(Wind River Tool eXchange): 用于开发机内部Tornado工具与Target Server 之间通信.WDB协议:(Wind DeBug): 用于主机Target Server与目标机之间的通信.1基于硬盘启动的Vxworks环境搭建VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)。
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才能识别)。
试验机器人的vxWorks目标机安装
硬盘启动 + 从硬盘下载vxWorks镜像 + 应用程序自启动前期准备工作:1)将整个硬盘格式化(用dos6.22或者是其他系统工具)启动电源,按下Del进入BIOS启动顺序:Boot Sequence2)用dos6.22分区,分到c盘100M左右(vxWorks代码小),以利于以后的格式化速度。
将c盘设为active,并查看文件系统格式是否为fat 16。
基本命令列举:格式化:fomat c:分区:fdisk重新引导主扇区(慎用):fdisk/mbr拷贝:copy a:\bootrom.sys c:\copy a:\vxWorks c:\ (这里也可以通过Tornado 在Shell里拷贝)制作Bootrom有价值的参考建议:先制作从硬盘启动的bootrom,当目标机系统启动后可以修改启动参数,告诉目标机到哪里去下载vxWorks镜像。
主要涉及两个参数:命令P: 显示启动参数命令c:修改启动参数命令@: 启动目标机ata=0,0 ata=0,00 fei0 fei/ata0/vxWorks /ata0/vxWorks F:/vxWorks F:/vxWorks从硬盘启动的bootrom的制作方法:1): 修改启动行Bootline(config.h)(如果要从硬盘下载vxWorks镜像的话)#elif (CPU == PENTIUM3)#define DEFAULT_BOOT_LINE \"ata=0,0(0,0)host:/ata0/vxWorks h=192.168.2.115 e=192.168.2.121 u=ha pw=target o=fei" /*ha ata=0,0(0,0)*/2) 重定义从显示器输出(默认从串口输出)#undef INCLUDE_PC_CONSOLE /* PC keyboard and VGA console */ #define INCLUDE_PC_CONSOLE /*ha*/3)包含ATA/*#undef INCLUDE_ATA */ /* include IDE/EIDE(ATA) hard disk driver */#define INCLUDE_ATA /*ha*/4)定义从硬盘启动/*#define SYS_WARM_TYPE SYS_WARM_FD /*ha*//* warm start device */#define SYS_WARM_TYPE SYS_WARM_ATA /*ha*/5)关于硬盘参数(lzy的机器不用修改可以)#define ATA_CTRL0_DRV0_CYL (761)/*ha 8960 (761)*/ /* ATA 0, device 0 cylinders */#define ATA_CTRL0_DRV0_HDS (8) /*ha (8)15*/ /* ATA 0, device 0 heads */#define ATA_CTRL0_DRV0_SPT (39) /*ha (39)63*/ /* ATA 0, device 0 sectors per track */#define ATA_CTRL0_DRV0_BPS (512) /*ha 8959 (512)*/ /* ATA 0, device 0 bytes per sector */#define ATA_CTRL0_DRV0_WPC (0xff)/*ha 65535(0xff)*/ /* ATA 0, device 0 write pre-compensation */6)配置环境变量c:\>cd tornado2.2c:\ tornado2.2> cd hostc:\ tornado2.2\host>cd x86-win32c:\ tornado2.2\host\x86-win32>cd binc:\tornado2.2\host\x86-win32\bin>torvars制作bootromc:\tornado2.2\target\config\pcpentium3>make cleanc:\tornado2.2\target\config\pcpentium3>make bootrom制作bootrom盘及拷贝相关文件软驱中插入格式化好的软盘,在命令行执行c:\tornado2.2\target\config\pcpentium3>mkboot a: bootrom6)此时a盘出现的文件是bootrom.sys将C:\Tornado2.2\host\x86-win32\bin下的objcopypentium.exe(没有用到)、、mkboot.bat(和的作用一样)拷到a盘将Dos6.22盘中找到(注意只有在dos下才能看到,windows下只能在C:\Tornado2.2\host\x86-win32\bin下存在,所以要到此目录才能看到)将拷到上面几个文件一起a盘必须文件:bootrom.sys 不是必须的文件:mkboot.bat objcopypentium.exe7)用dos6.22启动目标机进入dos用fdisk查看分区情况,注意文件格式是否为FAT16,是否为主盘,是否设置为Active 最好能随时查看这些情况。
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在虚拟机上运行的说明
如何在虚拟机运行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 启动过程描述及主要宏开关含义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的引导过程此文为学习记录,非正式文档相关术语说明如下: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)硬件初始化,主要是初始化存储器接口。
vxWorks文件资料系统详细介绍
VxWorks为块设备(磁盘)的实时使用提供了两种本地文件系统:一种与MS-DOS文件系统相兼容,另一种与RT-11文件系统相兼容。
这些文件系统的支持库分别为dosFsLib和rt11FsLib。
VxWorks还提供了一种简单的raw文件系统,这个文件系统把整个磁盘作为一个单独的大文件。
这个文件系统的支持库是rawFsLib。
VxWorks还为不使用标准文件或目录结构的磁带设备提供了一个文件系统。
磁带卷被看作一个raw设备,整个卷就是一个大文件。
这个文件系统的支持库是tapeFsLib。
另外,VxWorks提供了一个文件系统支持库cdromFsLib,它允许应用程序从依照ISO9660标准文件系统格式化的CD-ROMs中读取数据。
在VxWorks中,文件系统不受块设备种类型或它的驱动程序的约束。
VxWorks块设备都使用一个标准接口,以便文件系统可以与设备驱动程序自由的混合。
做为选择,你可以写自己的能被驱动程序以相同方式使用的文件系统,只要在文件系统、驱动程序和I/O系统间遵循同样的标准接口。
VxWorks的I/O体系结构使得在一个VxWorks系统中可以有多样的文件系统,甚至其类型也可以不同。
块设备界面在3.9.4块设备中讨论。
1 与MS-DOS兼容的文件系统:dosFs使用dosFs文件系统格式化的磁盘与MS-DOS(直至6.2版本)磁盘是相兼容的。
由两个文件系统初始化的硬盘之间在格式上有细微区别。
然而,数据自身是兼容的,而且dosFs可被配置成使用MS-DOS格式化的磁盘。
DosFs文件系统向不同要求的实时应用程序提供了良好的适应性。
主要特点包括:l 文件和目录分等级排序,允许有效地组织,在一卷上可以创建任意数量的文件。
l 每个文件可以是连续存储或非连续存储的。
非连续存储的文件可使硬盘空间利用率更高,连续存储的文件可以增强系统性能。
l 具有与广泛可用的存储器和可恢复介质的兼容性。
应用VxWorks(不使用dosFs文件扩展名)、MS-DOS PCs和其它系统创建的磁盘可以自由的交换。
vxworksdosfs
VxWorks为块设备(磁盘)的实时使用提供了两种本地文件系统:一种与MS-DOS文件系统相兼容,另一种与RT-11文件系统相兼容。
这些文件系统的支持库分别为do sF sLib和rt11FsLib。
VxW orks还提供了一种简单的raw文件系统,这个文件系统把整个磁盘作为一个单独的大文件。
这个文件系统的支持库是r awFsL ib。
VxWork s还为不使用标准文件或目录结构的磁带设备提供了一个文件系统。
磁带卷被看作一个ra w设备,整个卷就是一个大文件。
这个文件系统的支持库是t ape FsLib。
另外,V xWork s提供了一个文件系统支持库cd rom FsLib,它允许应用程序从依照IS O9660标准文件系统格式化的CD-R OMs中读取数据。
在VxWorks中,文件系统不受块设备种类型或它的驱动程序的约束。
Vx Works块设备都使用一个标准接口,以便文件系统可以与设备驱动程序自由的混合。
做为选择,你可以写自己的能被驱动程序以相同方式使用的文件系统,只要在文件系统、驱动程序和I/O系统间遵循同样的标准接口。
V xWork s的I/O体系结构使得在一个VxWork s系统中可以有多样的文件系统,甚至其类型也可以不同。
块设备界面在3.9.4块设备中讨论。
1 与MS-DOS兼容的文件系统:dosF s使用dosFs文件系统格式化的磁盘与MS-D OS(直至6.2版本)磁盘是相兼容的。
由两个文件系统初始化的硬盘之间在格式上有细微区别。
然而,数据自身是兼容的,而且do sFs可被配置成使用MS-DOS格式化的磁盘。
D osFs文件系统向不同要求的实时应用程序提供了良好的适应性。
方便vxworks开发初期使用的dos
⽅便vxworks开发初期使⽤的dosdos在嵌⼊式⾏业的应⽤还是⽐较⽅便的,vxworks开发初期,对于⼀些硬件设置和调试可能经常需要,我就经常vxworks和dos交替使⽤.1.使⽤的是tornado/host/win32/vxload程序,此程序在dos下执⾏,可以直接调⽤bootrom2.以cf卡为例,做dos启动,修改dos下的config.sys和autoexec.bat来达到多启动效果.3.config.sys设置[menu]/*选择项*/menuitem=DOS622 ,Boot Dos622 (clean boot)menuitem=T20NET,Boot Tornado2.0 Vxworks from 82559er for PENTIUMmenuitem=T22FEI,Boot Tornado2.2.1 Vxworks from 82559er for PENTIUMmenuitem=T22ATA0,Boot Tornado2.2.1 Vxworks from ATA0 for PENTIUMmenudefault=T22ATA0,2/*默认选择项,选择超时时间*/menucolor=15,0/*选择页⾯前景⾊和背景⾊*/[DOS622]/*可以添加⼀些启动需要特殊加载的驱动等东西*/[T20NET][T22FEI][T22ATA0][COMMON]/*公共加载项,不管选择那个选项,⼀下内容都会被加载*/buffers=10,0files=30break=onlastdrive=Zdos=high,umbdevice=c:\dos622\himem.sys /testmem:OFF/*himem是必须要加载的,不然vxload会提⽰加载出错*/4.autoexec.bat设置/*⼀定要注意tornado20编译的是bootrom,tornado22编译的是bootrom.bin,不然会vxload出错*/if "%CONFIG%" == "DOS622" goto DOS622if "%CONFIG%" == "T20NET" goto T20NETif "%CONFIG%" == "T22FEI" goto T22FEIif "%CONFIG%" == "T22ATA0" goto T22ATA0:DOS622PATH=C:\DOS622;C:\BORLANDC\BIN;c:\turboC30\bindoskeygoto END:T20NETvxload C:\boot\20btrom0.eeE /*tornado20编译的bootrom或者bootrom_uncmp修改成的名字*/goto END:T22FEI/*vxlaod22是toando22下的vxload⾃⼰改了名字跟tornado20区分*/vxload22 C:\boot\t22btrom.fei /*tornado22编译的bootrom.bin或者bootrom_uncmp修改成的名字*/goto END:T22ATA0vxload22 C:\boot\t22btrom.atagoto END:END5.如果bootrom是通过⽹络load vxworks的话,以上⽅法也可以在U盘下使⽤,我⾃⼰也有个U盘是做成这样的!:D。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)是什么意思。