vxWorks 之启动模式(固化及ftp启动)

最近的嵌入式的项目大多数都是vx的系统,但是vx系统大多都用在军工,电力等领域在嵌入式里面不是很常见。找资料不是很好找,所以简单的写一个关于vxworks系统加载的帖子。

1、vx常见的启动组合一共有三种:

fsbl+uboot+vxworks内核

fsbl+bootrom+VxWorks内核

fsbl+VxWorks内核

其中前两个都是常见的组合因为uboot是很多在linux开发中都在使用的,所以大家也很熟悉所以这两套要多一点。

第三个因为在调试和后期开发中都不是很方便所以用得也比较少。

但是上面的三个都是需要将除内核文件外的文件打包为BOOT.bin

2、常见的加载方式

a、fsbl+uboot+vxworks内核这种组合的加载方式是最多的因为uboot的命令行支持很多的功能而且局限型小,通用性高。常见的加载方式有tftp启动、fQSPIflash启动、emmc启动等待。

b、fsbl+bootrom+VxWorks内核这种组合方式支持的加载方式也和上面一个大同小异,只是在ftp加载的时候需要使用Workbench自带的wftp软件来加载。

c、fsbl+VxWorks内核这个就只支持常见的flash启动了因为两个文件要打包为一个BOOT.bin下载的flash里面。

3、具体设置不同的加载方式的办法

a、WFTP启动

正常进入BOOTrom系统后终端输入“p”显示当前终端的配置是上面输入“c”更改配置

 

下面将对相应的配置做出解释:

boot device

引导设备的类型。必须是boot loader已包含的驱动程序名。boot loader shell中使用devs或者h命令可显示可用设备列表。

引导设备通常是网卡、软盘、硬盘等。

网卡直接写驱动程序的名,比如ln、gei、enp等;

对于ATA硬盘,要写ata=controllerNum, driveNum(如ata=0,0)的格式;

对于SCSI硬盘,要写scsi=id,lun的格式;

对于软盘,要写fd=controllerNum, driveNum的格式;

unit number

具体引导设备的设备号,第一个设备的编号是0。

processor number

底板上有多个目标系统时,启动的目标的处理器号。底板控制器的处理器号必须设为0。

host name

用于引导的主机系统名。它只是引导起来的VxWorks中用来标识主机的名字(比如代码中用这个名字调用hostGetByName就能得到主机的地址),不一定就是主机自己(在网络中)使用的名字。

file name

要引导的VxWorks image的完整路径。使用target server时,这个名字被返回给主机,通常主机用它来定位image在主机上的位置。最长160字节,包括结尾空字符。

inet on ethernet (e)

被引导目标系统以太网接口的IP地址及子网掩码。IP地址用‘.’分隔的十进制数,后面跟16进制的子网掩码。网络引导时,这个是我们(被引导机器)自己的地址。

本机ip地址,每台同时使用的主板要不一样。

inet on backplane (b)

被引导目标系统底板网络接口的IP地址。对于一般的环境,我们没有这个东西。

host inet (h)

用于引导的主机系统的IP地址。网络引导时,这个是引导服务器(比如ftp服务器)的地址。

gateway inet (g)

如果被引导目标和主机不在一个物理网络,需要路由器,这是路由器地址。

可以简单理解为这就是网关。

user (u)

从主机装载VxWorks image文件时用于访问主机的用户ID,这个用户必须具有VxWorks image文件的“读”权限。

ftp password (pw)

对应上述用户ID的密码。通过FTP或者TFTP访问文件时,必须有密码,如果密码为空,将使用UNIX rsh协议访问主机。

flags (f)

一些标志位的集合,每个标志代表一个特殊的选项。这些标志定义如下:

0x01 = 即使processor number为0,也不要激活系统控制器。(这个其实是由使用的板子解释的,所以应参考目标板子的资料)

0x02 = 载入所有VxWorks符号表,而不只是全局部分。

0x04 = 不要自动引导

0x08 = 快速自动引导,也就是自动引导前等的时间短一些。

0x20 = 禁用安全登录。

0x80 = 用TFTP(而不是FTP)来引导。

0x400 = 调试模式。

target name (tn)

目标系统的名字,所谓 目标系统,就是被引导打系统,VxWorks本身。这个名字会被加入host table,所以代码中用这个名字调用hostGetByName就能得到系统自己的名字。

startup script (s)

启动脚本。如果引导的VxWorks image包含kernel shell,系统引导后,这个参数指定的路径和文件名会被传递给kernel shell执行。启动脚本中,只能包含shell的C命令。注意kernel shell和boot loader shell互相有冲突。(如果系统配置好了,这个脚本也可以用来RTP应用。)

other (o)

这个参数通常没有什么用,由应用程序来解释。但是,当我们不从网络引导又需要激活网络时,这个参数就非常重要了,它被用来指定默认的网络接口。跟boot device参数一样,我们仍然使用驱动程序的名字来标识设备。

比如,如下的bootline,

ata=0,0(0,0)mars:/ata0a/vxWorks h=192.168.86.185 e=192.168.86.92 u=fred pw=secret tn=vx66 o=gei

可从第一个ATA硬盘引导,并且激活(第一个)gei网络端口,同时设置本机(gei端口)的IP地址为“192.168.86.92”,本机名字叫“vx66”,服务器(主机)的IP地址为“192.168.86.185”,名字为“mars”。

这样设置之后,网络可以像从网络启动一样的使用。

但是上面的描述都是居于我的板卡来实现的,具体的情况参考不同的板卡来调整

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

orange....

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值