前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Boot之Boot Shell

Boot之Boot Shell

作者头像
Taishan3721
发布2019-07-10 15:31:45
1.1K0
发布2019-07-10 15:31:45
举报
文章被收录于专栏:这里只有VxWorks这里只有VxWorks

VxWorks里有一个叫Kernel Shell的组件

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

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

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

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

当Target的Arch是X86时,可以定义宏INCLUDE_PC_CONSOLE,这样就会使用虚拟的pcConsole来做系统IO

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

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

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

常用的命令有3个: p - print,c - change,@ - boot

p就是查看当前的Bootline

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

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

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

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

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

咱们先看看网卡:

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

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

VxBus支持的网卡有这些

传统End支持的有这些

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

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

其它常见的网卡有:

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

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

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

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

User Name和Password与Bootline里参数一致,例如目前的"vm"

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

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

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

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

把Bootline的Flags改为0x80,use和ftp password就无所谓了,因为用不到了

运行一下,没有问题

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

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

修改boot device和file name

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

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

这正是:

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 这里只有VxWorks 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档