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的环境配置 的相关文章

  • 回调中的 Tornado IOLoop 异常 Celery 工作线程中没有

    我在用tornado ioloop inside celery工人 因为我需要使用 mongodb class WorkerBase gen engine def foo self args callback bar Python Cele
  • 如何使用QtCopyDialog?

    我包括这个库 include
  • 实体框架 - 包含在子查询中? - 第2部分

    我不确定这是否是正确的做法 我确信有人会告诉我是否正确 我问了一个问题 实体框架 包含在子查询中 https stackoverflow com questions 1662760 entity framework include in s
  • 龙卷风错误处理

    我希望能够处理输入错误 URL 时显示的更好的错误E g localhost 8000 AFDADSFDKFADS 我收到一条丑陋的 python 回溯消息 因为抛出了一个ornado web HTTPError 异常 我知道我可以使用正则
  • Telegram 机器人 API 键盘

    我对 Telegram Bot Api 和 ReplyKeyboard 有问题 我正在使用 Python 2 7 并发送发布请求 TelegramAPI post TELEGRAM URL sendMessage data dict cha
  • Python 中 Comet 的最新推荐? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 编译器处理包含保护头的开销有多大?

    为了加速大型源文件的编译 修剪翻译单元中使用的标头数量是否更有意义 或者编译代码的成本是否远远超过处理包含保护的时间标头 如果后者是真的 那么工程工作最好花在创建更多 轻量级的标头上 而不是更少 那么 现代编译器需要多长时间才能处理有效包含
  • 如何在特定时间启动Tornado周期性回调?

    目前在我的 Tornado 应用程序中 我正在使用定期调用回调PeriodicCallback每隔一小时 像这样 import tornado ioloop from tornado ioloop import PeriodicCallba
  • 在龙卷风下运行 Pyramid WSGI 应用程序

    Pyramid 使用它自己的 Waitress Web 服务器进行开发 但我想在 Tornado 下为我的 WSGI 应用程序提供服务 我想我应该使用 pserve ini 文件配置它 但我无法让它工作 Pyramid 应用程序可以轻松地从
  • Python:“取消导入”、“重新导入”、“重置导入”?

    我调试 在 PyCharm 中 一个脚本 我在断点处停止 然后转到调试控制台窗口 然后从那里调用导入行 如下所示 import my util1 from my utils 然后我调用 my util1 到目前为止 一切都还好 然后我更改
  • JS中如何过滤多个字符串? [复制]

    这个问题在这里已经有答案了 我希望能够过滤数组中的多个字符串 类型 例如我想过滤类型meat并输入fruit在下面的数据结构中 我想要实现的是过滤数据对象 const data type meat food hamburger type f
  • Tornado:DummyFuture 不支持结果阻塞

    我试图获得一个非常简单的初始服务器 它可以 异步 获取 url 来工作 但它会抛出 Exception DummyFuture does not support blocking for results 有这个SO https stacko
  • Perl 程序如何知道在哪里可以找到包含它使用的 Perl 模块的文件?

    如果我的 Perl 程序使用 Perl 模块 它将如何确定在哪里找到包含模块代码的文件 例如 如果程序包含 use MyModule1 Example 1 use This Here MyModule2 Example 2 它会看起来在哪里
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • 如何从 VxWorks 中的 RTP 访问内存映射 I/O 设备 (FPGA)?

    使用 VxWorks 时 我们尝试从实时进程访问内存映射 I O 设备 由于 RTP 具有内存保护 我如何从其中访问我的 I O 设备 您可以使用两种方法从 RTP 访问 I O 映射设备 输入 输出子系统 首选 您本质上是创建一个小型设备
  • clang-tidy 标题防护风格警告

    我想将 clang tidy LLVM v7 0 0 与llvm 标头保护在 Windows 10 上使用 CMake 获取以下头文件 ifndef BAR H define BAR H namespace FOO namespace BA
  • Google C++ 风格指南包含顺序

    谷歌 C 风格指南 https google github io styleguide cppguide html Names and Order of Includes建议按以下顺序将头文件 h 包含到实现文件 cpp cc 中 In d
  • Mac OSX 10.7.4,Xcode 4.4.1,没有 头文件?

    我正在编写一个程序 它将使用 C 标准库的数组容器来保存一些对象 但是 每当我尝试在程序中包含以下代码行时 include
  • 是否应该使用间接标头包含?

    如果一个项目的标头包含第二个标头 并且它们都包含一个公共标头 那么从第一个标头中删除公共标头的包含并依赖通过第二个标头的间接包含是一种好的做法吗 例如 我知道stdint h can被删除temperature h but should i
  • EF Core 第二级 thenIninclude 错误

    假设首先有这些模型 Method有一个OriginalCode OriginalCode那有很多Mutants Mutant那有很多ParseSubTrees 现在当查询时Method我希望加载另一个 所以我有以下内容 Method tar

随机推荐

  • 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