VxWorks的环境配置

2023-10-29

转载请标记出处: http://blog.csdn.net/zgh1988/article/details/7994538

1.      准备工作

(1)    VMWare

(2)    一台安装Windows XP或Window 7系统的PC机

(3)    Tornado 2.2 for pcPentium CD1 和Tornado 2.2for pcPentium CD2分别为Tornado安装程序和BSP组件,WindML安装程序。

(4)    RamDiskNT用来在Windows NT系统上虚拟软盘工具

(5)    由于Tornado自带的PC-NET网卡驱动有问题,所以需要下载AMD的PC-NET网卡的VxWorks系统驱动,ln97xEnd.c 和ln97xEnd.h。

2.      安装Tornado

(1)    安装Tornado 2.2 for pcPentium CD1

Installation  Options:


Tornado  Registry:


Backward Compatibility:


License Management  Configuration:


License Management Installation Options:


注册:

拷贝CRACK目录下的license.dat 到c:\flexlm 目录,如果没有这个目录,自己新建一个。设置如下环境变量:LM_LICENSE_FILE = c:\flexlm\license.dat。

(2)    安装Tornado 2.2 for pcPentium CD2

一路顺风,安装下去。

3.      编译网卡驱动

(1)    我们下载的AMD网卡驱动,分别将

ln97xEnd.c替换到D:\Tornado2.2\target\src\drv\end\ ln97xEnd.c

ln97xEnd.h替换到D:\Tornado2.2\target\h\drv\end\ln97xEnd.h

(2)    打开一个控制台窗口,运行批处理程序D:\Tornado2.2\host\x86-win32\bin\torVars.bat


(3)    重新定位到D:\Tornado2.2\target\src\drv\end


(4)   运行命令:make CPU=PENTIUM tool=gnu ln97xend.o

如果发生如下错误:

解决上述问题如下:

重新进入D:\Tornado2.2\host\x86-win32\bin

执行命令:cp ccpentium.exe cc.exe

然后重新返回D:\Tornado2.2\target\src\drv\end 执行上述命令,会发生一些warnings,不过直接忽略它。

(5)    将生成的ln97xend.o剪贴到D:\Tornado2.2\target\lib\pentium\PENTIUM\common。

然后将控制台定位到该目录下。

运行命令:arpentium -d libdrv.a ln97xend.o删除libdrv.a中原有的ln97xEnd模块,

然后再运行命令:arpentium -ra iOlicomEnd.o libdrv.a ln97xend.o将我们刚刚创建的新模块添加进去。

4.     修改配置文件

(1)    首先定位目录到D:\Tornado2.2\target\config\pcPentium并打开该目录下config.h文件;

先查找到定义DEFAULT_BOOT_LINE宏的地方,修改预处理条件CPU== PENTIUM分支下的定义如下:

#defineDEFAULT_BOOT_LINE \

"lnPci(0,0)your_host_name:d:\\vxWorksh=192.168.80.169 e=192.168.80.254 u=target pw=vxworks tn=target"

其中:

lnPci(0,0)指定了使用第0个网卡和第0个处理器,lnPci这个标识会因为使用的驱动程序不同而有所不同,但这里用lnPci就可以了;

your_host_name指定您的主机的名字,使用Windows系统的主机名就可以,如果没有重新创建用户的话,那就是Administrator;

d:\\vxWorks指定了VxWorks映象下载的完整路径;

h=192.168.0.16是主机的IP地址,就是您当前正在使用的系统的IP地址;

e=192.168.0.25是目标机的IP地址,也就是未来VxWorks操作系统的IP地址,您只要任意指定一个不冲突的IP地址即可,这里我们假设您的目标机IP地址和主机IP地址在同一个网段内;

u=target指定了FTP服务器的用户名,这个FTP就是用来下载VxWorks映象的。

pw=123是FTP服务器的用户名的密码,即target对应的密码。

tn=target指定目标机的名字,任意指定即可;

(2)    下面我们要指定使用什么样的网卡驱动程序。首先查找“Network driver options”这段

文字,之后您可以看到在该注释后面定义了一系列的有关网卡驱动的宏定义。注意保证INCLUDE_END和INCLUDE_LN_97X_END这两个宏处于定义状态(define),其他的宏都处于未定义状态(undef);

缺省情况下,VxWorks系统是不接受外部输入设备(如键盘)的输入,也不向外部输出设备(如显示器)输出数据。为了便于调试,我们必须改变它的这种缺省状态。我们查找定位宏INCLUDE_PC_CONSOLE,然后保证其处于定义状态(define)即可;

(3)    就是修改config.h文件将

#defineSYS_WARM_TYPE  SYS_WARM_FD  改为

#defineSYS_WARM_TYPE  SYS_WARM_BIOS

如果不修改就会发生一个错误:0x2dd0d4(tBoot):sysNvRamGet:open failed.

到此为止,对config.h文件的修改就完成了,保存修改。

(4)    然后再打开同一目录下的sysLn97xEnd.c文件

这一步修改的目的是要使网卡正常工作。我们先定位到“memory-mapped IO base”这段文字,然后将其前面的参数由pciRsrc[endUnit].bar[1]修改为NONE,这样就可以了。最后别忘了保存。

1.      编译引导程序

Build --> Build Boot Rom


bootrom将保存在D:\Tornado2.2\target\config\pcPentium目录

6.      创建生成bootrom后,还要创建一个VxWorks映像

(1)    创建一个“bootable VxWorks image”工程

(2)    选择您需要的VxWorks组件。至少要选择telnet server组件和 target shell组件。




完成选择后,Build-->build;将工程目录下的vxWorks复制到D:\目录下。

其中vxWorks的目录:D:\Tornado2.2\target\proj\Project0\default

7.      制作引导磁盘

(1)    虚拟软盘


点击Start之后,打开“我的电脑”,看看是否存在软盘 A?如果不存在,表示虚拟软盘失败。如果存在,表示成功,继续进行下面的命令。

(2)    我们的bootrom存在于D:\Tornado2.2\target\config\pcPentium,所以我们将控制台切换到该目录下。执行下面的命令:

mkboot a: bootrom

成功之后,A盘里面会有一个bootrom.sys文件。到此引导磁盘成功。

8.      配置FTP服务器

从开始-->所有程序-->Tornado2.2-->FTP Server 打开FTP服务器

Security-->User/Rights-->New user

User Name 一定要和我们上面配置的环境一样,所以为target

Pass word 一定要和上面配置的环境一样,所以密码为123


其中Home Directory是 D:\ ,我经常不小心会将其设置成D:\VxWorks,这样是错误的。

设置好之后,每次使用FTP之后,都要选择一次target,Done一次。

 

Logging-->Logging Options 记录日志


9.      运行vxWorks

(1)    虚拟机的属性:Network Adapter --> Network connection 选择Bridged



Floopy-->Connection-->Use physical drive: A


(2)    打开FTP Server,选择target-->Done

(3)    运行虚拟机






本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VxWorks的环境配置 的相关文章

  • Rust 使用 vs mod?

    我正在努力解决这些问题 use宣言 A 使用声明创建一个或多个与其他路径同义的本地名称绑定 通常 一个use声明用于缩短引用模块项所需的路径 这些声明可能出现在模块和块中 通常位于顶部 And mod item A 模块项是一个模块 用大括
  • 如何用 Python 编写 Web 代理

    我正在尝试用 python 编写一个网络代理 目标是访问如下网址 http proxyurl http anothersite com 并查看内容http anothersite com就像平常一样 通过滥用 requests 库 我已经取
  • Qt Creator 代码编辑期间 CPU 为 100%

    我有 Qt Creator 项目 它用boost and Point Cloud library 当我编辑包含这些库中的内容的文件时 Qt Creator 在每次代码更改 添加行 更改变量类型等 后挂起大约 30 秒 TaskManager
  • Python。龙卷风。非阻塞 xmlrpc 客户端

    基本上我们可以通过以下方式调用 xmlrpc 处理程序 import xmlrpclib s xmlrpclib ServerProxy http remote host rpc print s system listmethods 在to
  • C++ 中使用 #include 和 #include 的区别

    使用有什么区别 include
  • 根路径不适用于 php include

    在链接开头获取根文件夹在 php include 中不起作用 例如 example example php 解决办法是什么 我假设根文件夹是指您的网络文档根目录 而不是文件系统根目录 为此 您可以 将 Web 根文件夹添加到包含路径 htt
  • 为什么 gets() 被弃用? [复制]

    这个问题在这里已经有答案了 使用时gets 在我的代码中 编译器大喊 warning the gets function is dangerous and should not be used and warning gets is dep
  • 如何将参数传递给使用“include”呈现的PHP模板?

    需要 PHP 模板方面的帮助 我是 PHP 新手 我来自 Perl Embperl 无论如何 我的问题很简单 我有一个小模板来渲染一些项目 让它成为一篇博客文章 我知道使用此模板的唯一方法是使用 include 指令 我想在遍历所有相关博客
  • 一个文件夹中包含 100 万个或更多文件,用于包含(缓存)[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个 理论 问题 看看我正在计划的解决方案是否有意义 我有一个脚本 可以从数据库中读取大量数据 包括设置 配置等 并将其构建在一起 针对每个注册用
  • 龙卷风只能升级到websocket错误

    我正在使用龙卷风进行实时应用 我正在为此使用 Redis 当我访问网址时127 0 0 1 8888 2 其中 2 是我的用户 ID 我收到错误消息can Upgrade only to websocket 我不知道为什么我会收到此错误 这
  • 编译器无法识别我的 C++ 类 - 循环依赖

    有这个基类 Core hpp ifndef C3 CORE HPP define C3 CORE HPP include
  • 如何在函数中使用include?

    我有一个大函数 我希望仅在需要时加载 所以我认为使用 include 是正确的选择 但我还需要几个支持函数 仅在 go do it 中使用 如果它们位于包含的文件中 我会收到重新声明错误 参见示例 A 如果我将支持函数放在 include
  • 在 Tornadoweb 中禁用模板处理

    我必须使用 Tornado Web 作为我们现有 AngularJs 应用程序的 RESTful 后端 在 Angular 应用程序中大量使用 我想将龙卷风的角度文件作为静态文件提供 有没有办法禁用tornado的处理模板以避免与torna
  • 本地#includes

    有没有某种方法可以在本地 include 标准内容 一次针对一个函数 一个类等 而不是全局的 举一个非常简单的例子 人们可能想使用 std string 但它只在一个类中需要 并且您不希望它的开销无处不在 而不是制作 include本地 您
  • 在负载平衡的 Tornado 站点上使用 apache 基准测试获取失败的请求,但没有记录

    也许这是一个关于 ab 的问题 而不是关于 Tornado 的问题 但有些事情没有意义 我这样运行基准测试 ab n 100 http localdomainname 2 tornados being 1 nginx Concurrency
  • 如何使用QtCopyDialog?

    我包括这个库 include
  • 为什么主要编译器对 stdint.h 使用 typedef 而对 stdbool.h 使用 #define?

    我刚刚注意到 gcc 和 clang 似乎都对 stdint h 使用 typedef 但对 stdbool h 使用 define 例子 clang 的 stdint h https clang llvm org doxygen stdi
  • 如何在 Jinja2 中包含具有相对路径的模板

    我正在尝试在模板中包含同一文件夹中的另一个模板 为此 我只是在做 import header jinja2 问题是我不断收到TemplateNotFound error 我的模板文件夹看起来像 myProject templates arb
  • 编译器处理包含保护头的开销有多大?

    为了加速大型源文件的编译 修剪翻译单元中使用的标头数量是否更有意义 或者编译代码的成本是否远远超过处理包含保护的时间标头 如果后者是真的 那么工程工作最好花在创建更多 轻量级的标头上 而不是更少 那么 现代编译器需要多长时间才能处理有效包含
  • “以下对象被‘package:xxx’屏蔽”是什么意思?

    当我加载包时 我收到一条消息 The following object is masked from package xxx 例如 如果我加载testthat http www rdocumentation org packages tes

随机推荐

  • Java接口分页调用的设计

    设计一 Test void t1 int pageNo 0 int pageSize 20 int total do pageNo 调用接口 返回数据 获取总页数 total 102 System out println 第 pageNo
  • 教务管理系统遇到的问题(回答面试官提问用)

    面试官 你做这个项目遇到了什么问题 怎么解决的 我 当时写了一个接口 是关于多个用户查询的 用户有老师 学生和管理员 他们查询的有奖项和文件 奖项和文件是两张表 这造成了很多问题 第一个问题是请求参数过多 有关于文件表和奖项表判断的参数 有
  • 华为OD机试真题-过滤组合字符串【2023Q1】

    题目内容 数字0 1 2 3 4 5 6 7 8 9分别关联 a z 26个英文字母 0 关联 a b c 1 关联 d e f 2 关联 g h i 3 关联 j k l 4 关联 m n o 5 关联 p q r 6 关联 s t 7
  • G2的一些常用配置项

    gt 本文介绍下G2的一些常用配置项 Chart图表的属性 图表的属性直接在代码上介绍 可直接复制到项目上根据实际需求可以选择配置 const chart new G2 Chart container c1 必选 指定图表容器 可以传入该
  • M600Pro操作流程

    ipad平板地面站操作 1 DJI GO 检查项 飞机状态是否为 GPS 模式 且显示起飞准备完毕 2 飞行模式为 P 档 遥控器模式是否正确 遥控器电量是否充足 其他箭头指向处 为正常 电池电量 99 各电池之间差异不超过 3 4 电池电
  • winCE中采用DMA传输数据的方法

    转载请标明是引用于 http blog csdn net chenyujing1234 对于文章中有什么意见或是需要代码的可以留言联系我 1 DMA入口 DDM控制器能服务的外围设备配置信息的结构体 typedef struct BOOL
  • 单目相机测距

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 单目相机测距 一 理论 1 像素坐标系 1 相机坐标系 1 转换到大地坐标系 二 代码实现 1 使用matlab找到相机参数 2 使用opencv进行测距 总结 一 理论 先
  • Windows 环境下 Python3 安装 cryptography

    操作系统 win7 语言 Python 3 6 包 cryptography 3 4 7 因为工作需要 需要安装python的 cryptography包 但是屡次安装失败 特总结安装过程 以供大家借鉴 1 安装Rust 初次安装 cryp
  • 数字化变革的难点和解决方式

    了解了数字化企业的特征 还不代表企业能转型成功 从互联网1 0时期开始至今 中国传统 企业数字化转型十余年 整体效果并不理想 因为在推动转型过程中面临各种由于技能不足 和机制不足交织在一起形成的固有难点 转型推进难点 1 定义不清 这是企业
  • Sqlalchemy filter与filter_by查询语法

    摘要 https www cnblogs com kaerxifa p 13391722 html 摘要2 https blog csdn net gymaisyl article details 96601798 filter与filet
  • java部署和调用智能合约

    java部署和调用智能合约 下载安装npm和solc 1 安装gcc yum install gcc gcc c 2 安装node wget https npm taobao org mirrors node v10 14 1 node v
  • java中删除文件/文件夹的3种方法

    1 通过io删除文件 通过递归逐层删除文件信息 param filePath public static void deleteFileByIO String filePath File file new File filePath Fil
  • insert oracle用法,insert into select的实际用法,insertselect

    insert into select的实际用法 insertselect INSERT INTO SELECT语句 语句形式为 Insert into Table2 field1 field2 select value1 value2 fr
  • 【Linux】进程信号

    1 理解信号 1 信号 能够识别并做出行为的一种指令 2 信号来临的时候不一定能够立即对信号做出处理 但是并不影响信号的产生 3 信号来临 gt 时间窗口 gt gt 被处理 结果是要处理的但是需要时间 4 对待信号的处理方法 1 默认2
  • vue父组件向子组件传值

    子组件
  • JAVA IO流文本文件读入方法(read方法读入数据)

    在字符流通常都使用read方法读入数据 而read方法一般都两种调用方式 首先先创建一个文件 如Hello txt 里面输入HelloWorld 第一种是使用read的空参调用 read read 从输入流中读入一个字符 若当前位置无数据则
  • 进制转换方法

    常用计算机各进制的含义和相互之间的简单转换方法 文章目录 常用计算机各进制的含义和相互之间的简单转换方法 一 理解进制含义 1 二进制 2 八进制 3 十进制 4 十六进制 二 进制之间转换 1 1二进制转十进制 1 2十进制转二进制 除法
  • java--基础--17.7--线程--内存模型与线程

    java 基础 17 7 线程 内存模型与线程 1 内存模型 1 1 主内存和工作内存之间的交互 1 2 对于 volatile 型变量的特殊规则 关键字 volatile 是 Java 虚拟机提供的最轻量级的同步机制 一个变量被定义为 v
  • 微信小程序设置背景图铺满顶部

    由于微信小程序自带顶部导航栏 导致我们设置背景图时总是无法铺满顶部 其实想要铺满顶部只需要改变一个属性即可 将navigationStyle的默认属性修改为custom 在微信小程序需要设置背景图的文件下的 json文件中设置
  • VxWorks的环境配置

    转载请标记出处 http blog csdn net zgh1988 article details 7994538 1 准备工作 1 VMWare 2 一台安装Windows XP或Window 7系统的PC机 3 Tornado 2 2