spring boot target文件夹_Boot之Boot Shell

VxWorks里有一个叫Kernel Shell的组件

49f197519581cf4949a2e79fb5de756c.png

连接Target Server后,Host端可以启动一个叫Host Shell的工具

ea6d5526fc5c9964e7a50372ff724336.png

Bootrom在启动过程中,也会加载一个Shell,全称应该是Boot Loader Application Command Shell,就叫它Boot Shell

d66f3527b3fe53cba366449de0458e14.png

咱俩来看看这个Boot Shell长什么样

默认情况下,VxWorksBootrom都是用串口0 (波特率9600)做为系统的IO设备

16814cfeeb588bb2198d0c1e51ebe4d8.png

c76a0276f156f3b590e8548b97af6154.png

TargetArchX86时,可以定义宏INCLUDE_PC_CONSOLE,这样就会使用虚拟的pcConsole来做系统IO

746684d3e182593525aa8d68959c55b8.png

pcConsole又被bind到物理的显示器和键盘上

24ed2aa6942e2458f4ccd788562bbb5f.png

b2af01ffb4168e1161ed741dbadf8c08.png

9e77ccea7e7dfd94489af1b28d060f77.png

好了,不管用串口0还是pcConsole,我们启动Bootrom。默认它都是进入一个7秒的倒计时,这时候给它输入任意字符,就会进入Boot Shell

e8865e76707a956051ecd5597286f82b.png

通过h命令,可以看到这个Shell支持的所有操作

076c14c5e7596459932121a4723c9798.png

常用的命令有3: p - printc - change@ - boot

p就是查看当前的Bootline

c750cb3dc6d8419f159e675fd0cf8d3c.png

Bootline的这个初始值来自bsp/config.h里的宏DEFAULT_BOOT_LINE

96c17fd11cec5402613b80d639b416f0.png

因此可以通过修改这个宏(然后重新Build Bootrom),来调整Bootline,或者使用c命令

执行c命令后,每按一次回车,就会显示一个参数。如果要修改某个参数,在相应的参数后面直接追加新的值就可以。例如给Target改个名字

56d6602911ede593603da8e865cad386.png

最后执行@命令,Bootrom就会按照当然的参数来加载系统镜像VxWorks

1b9a065a4693241e428e36157de02849.png

VxWorks应该放到什么位置呢?那就要看当前的Bootrom支持哪些boot device了,用h命令就可以看到。例如我当前这个Target可以使用本地的文件系统"/ata0:1"或者网卡"lnPci0"

a9397f9158d7dccbb7f2a48040a1c000.png

咱们先看看网卡:

"lnPci0"这个名字怎么来的?

首先得知道Target的网卡是什么型号,然后在config.h中定义它的宏

VxBus支持的网卡有这些

1ad60b2ecb0c561a1baeda390153eced.png

传统End支持的有这些

deb895ac3f9fb7276688bbb536406dea.png

然后找到网卡驱动的头文件,里面定义了device name

a47d39fbe55ed615dba7017deb48f40f.png

"lnPci0"里的那个0就表示物理上的第0个网卡

其它常见的网卡有:

93514df01d56183792cf8cf5f5f3e2b4.png

Bootrom通过网卡来加载VxWorks系统镜像时,应用层默认使用的是FTP协议,从远程的FTP Server下载文件。通过BootlineFlags参数,也可以改为TFTP

b745da0fe16f8f19d2386f181263d7d9.png

因此,我目前的Bootline表示的意思是:给自己的Vxworks起个名字"ttt",加载网卡AMD Am79C97X,设置IP地址为192.168.11.111。然后做为FTP的客户端,访问一个IP192.168.11.1、名字为"host:"FTP服务器,下载一个叫做"vxWorks"的文件,并boot。登录FTP时,使用的用户名是"vm",密码是"vm"。注意VxWorks会给网络设备追加一个冒号

1b9a065a4693241e428e36157de02849.png

那么Windows端就需要启动一个FTP Server,例如使用WorkbenchTornado默认集成的WFTPD。当然你使用其它的FTP Server工具也没问题

0c07fd3e51a8868d05e2d779436baab4.png

打开这个wftpd32,添加一个用户

d70a8219b21f816867418593cd92108f.png

User NamePasswordBootline里参数一致,例如目前的"vm"

Home Directory指向VxWorks文件所在的目录,一般就是VIP工程里的default文件夹

3428aca329fdebb0d888039af303d75d.png

为了方便观察,我们可以打开这个Serverlog功能

e766e658f89c40f44d240d5a1f7b323a.png

这时Bootrom里执行@命令,通过FTP下载VxWorks,在FTP Server就可以看到下载过程

3cfb8fe1d5c0c84d4f730c43b56e525c.png

试试TFTPCurrent Directory指向VxWorks所在的目录,即default文件夹

2f41e450c3d76ac0445a421f8cd98ab8.png

BootlineFlags改为0x80useftp password就无所谓了,因为用不到了

ee2a5677cf6a29ae6ace4fea83564ecf.png

运行一下,没有问题

699cde6f9e3aaff5990e4c15abc97d25.png

最后再来看看从本地文件系统里加载VxWorks

通过h命令,看到本地有个设备上挂接了文件系统/ata0:1(其实就是我这个Target的硬盘,只有一个分区)

d2d94c1946d59776665595db364f7495.png

修改boot devicefile name

69d3c8815eca20ea6b6045713a1dc805.png

这个other参数表示:从文件系统加载VxWorks时,同时要加载的网卡(这里是lnPci0+192.168.11.111)

当然了,这样做的前提是,Target的文件系统里得有这个VxWorks文件

5c0c3fda4a304e11059b0474d7f7d6ef.png

这正是:

Boot Shell有命令(h),加载系统并执行(@)

网卡设备连远程(FTP),文件系统也可用(fs)

我是泰山,专注VX 14(+10个月)

欢迎关注VxWorks567

一起学习,共同进步!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值