使用串口下载vxworks映象的方法
使用串口下载
vxworks
映象的方法
由于坛子里这方面的可行性文章比较少,不时有一些网友在询问这方面的问题,再加上通过这种方法可以调试网络驱动,所以我花了一点时间把整个下载过程试了一下。
1
.配置
config.h
文件
a.
修改
DEFAULT_BOOT_LINE
为
tsfs(target
server file system)
方式引导
vxWorks
映象:
#define DEFAULT_BOOT_LINE \
"tsfs(0,0)aman:/vxWorks h=192.168.0.108 e=192.168.0.67 u=amd pw=0000 tn=snds100"
b.
如果定义了
INCLUDE_END
,则
#undef
掉它。
c.
屏蔽掉你原来对串口的设置。如果你有两个可用串口,那么增加以下的配置内容:
―――――――――――――――――――――――――――――――――――
/* Serial port configuration */
#define INCLUDE_SERIAL
#undef CONSOLE_TTY
#define CONSOLE_TTY 1 /*console channel */
#undef CONSOLE_BAUD_RATE
#define CONSOLE_BAUD_RATE 38400 /* Redefine to PP1 default */
#undef WDB_TTY_CHANNEL
#define WDB_TTY_CHANNEL 0
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_SERIAL /* 0 communication through serial port */
#undef WDB_TTY_BAUD
#define WDB_TTY_BAUD 38400
#define INCLUDE_TSFS_BOOT
―――――――――――――――――――――――――――――――――――
这时你的串口
0
通道将被用作
vxworks
映象下载及握手的通道,而串口
1
通道则被作为控制台信息的打印通道。两者的波特率都是
38400
。如果你的只有一个串口,那么你必须这样配置
(
我没有尝试
)
:
―――――――――――――――――――――――――――――――――――
#undef CONSOLE_TTY
#define CONSOLE_TTY NONE
#undef WDB_TTY_CHANNEL
#define WDB_TTY_CHANNEL 0
#undef WDB_COMM_TYPE
#define WDB_COMM_TYPE WDB_COMM_SERIAL
#undef WDB_TTY_BAUD
#define WDB_TTY_BAUD 38400
#define INCLUDE_TSFS_BOOT
这时你将没有控制台,所以你将不能更改
boot
参数。
2
.配置
Tornado
的
Target
Server
a.
选择
Tornado
下的菜单
“Tools”
->
“Target
Server”
->
“Config…”->
“
New”
,新建一个
Target
Server
。如下图所示:
点击浏览该文件
b.
配置
core file
如下图所示,指定要下载的
vxworks
映象文件:
点击浏览该文件
c.
配置
tsfs
文件系统
如下图所示:
点击浏览该文件
3
.这样就基本完成了所有的配置。重新编译
bootrom
和
vxworks
,接上
2
根串口线,配置好作为控制台的超级终端。再启动
tornado
的
target
server
,然后重启目标机,出现如下的界面:(由于一帖只能帖
3
图,所以只好跟在下一帖了)
目标机从串口
0
开始下载
vxworks
映象并运行它。最后打印出
WDB:
Ready.
要了解更详细的内容请参阅
Tornado
在线帮助:
TSFS
Boot Configuration
。
希望大家完善。
|
我的
flash
上没有文件系统,配置目标服务器时必须配置
tsfs
项吗?如果不是那引导行怎么改
我用一个网口的方式,可是
bootroom
启动后,目标服务器也配置成功,可是超级终端显示下载不了
vxworks
。
seasoblue
斑竹在辛苦一下
|
目标服务文件系统:
TSFS
虽然目标服务文件系统(
TSFS
)是一个全特征
VxWorks
文件系统,但是通过使用目前定位在主机上的文件系统执行文件操作。
TSFS
使用
WDB
驱动程序把来自
I/O
系统的请求转移到目标服务器。目标服务器使用主机文件系统读取执行请求。那么当你用
TSFS
打开一个文件,被打开的文件事实上在主机上。将来在对
open
()调用中获得的文件描述符的
read
()和
write
()调用事实上是从打开的主机文件读取和写入。
我使用一个串口方式下载映像,可是这样超级终端和目标服务器不能同时使用。
可以使用
telnet
吗,把控制台重定向。可是改了引导行后,网口
ping
不通目标机了
斑竹多指教
|
我用以上方法启动目标机,光标在 Waiting for Target Server connection... 处停滞不前,主机的 Log Console 移一直 connecting totarget agent.... 为什么会有这种情况?检查 target server 配置没发现有什么不妥。能给些建议吗?
我用以上方法启动目标机,光标在
Waiting for Target Server connection...
处停滞不前,主机的
Log
Console
移一直
connecting totarget agent....
为什么会有这种情况?检查
target
server
配置没发现有什么不妥。能给些建议吗?
当我将
config.h
中
#if TRUE
改为
#if
FALSE,
并且仍旧用
fd=0,0(0,0)....
作文引导行时,
terminal
上可以看见启动信息,而目标机显示启动信息只到
VxLd1.2.................
我希望在主机的
terminal
和目标机上都能看到目标机启动和运行信息,可以吗?请指教
1.
检查目标机和宿主机的波特率是否一致。
2
。适当降低波特率,如
38400
。
因为你没有选中目标服务器配置中
console and redirection
选项中的
redirect target
io
和
creat console windows
。
另外
target server file system
选项中选中
read
only
请问大侠们一个问题:
我是用的一个
console
串口和一个
10M
的以太网口,可是在启动时,
console
显示信息一直是正常的,直到
Starting at 0x10000...
Attached TCP/IP interface to cpm unit 0
Attaching network interface cpm0...
Attaching network interface lo0... done.
哦,忘了说我是用的
MPC860
作为
CPU
的。
然后发生的事情很奇怪,大概有
1/5
的概率是会出现
WDB
:
READY
的信息,但是大多数情况下,则提示:
Implementation Dependent Software Emulation
Exception current instruction address: 0x000cf40c
Machine Status Register: 0x00009030
Condition Register: 0x22000080
Task: 0x3ffdf8 "tRootTask"
请问问题所在?谢谢!
我按照
seasoblue
的方法串口下载
vxworks
,
启动后终端显示有规律的乱码,(主机和目标机串口波特率是一致的)
问题可能出在哪里呢
不光是串口波特率,还有数据位的长度 / 停止位长度 / 奇偶校验 / 停止位长度 / 流量控制等都要一致。
15
楼可能没有注意到斑竹的这个步骤
> b.
如果定义了
INCLUDE_END
,则
#undef
掉它。
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com