Paspberry Pi 4开发板

在Raspberry Pi 4 Model B开发板上通过Dockerhub来使用VxWorks 7容器

1 简介

容器可以让你将VxWorks的应用程序打包并和系统的其他部分进行分离开。VxWorks的容器可以被部署在被称为Dockerhub的元存储库上,并可从那儿分发到VxWorks的目标板上。

VxWorks是由风河公司提供的实时操作系统。

VxWorks有针对Raspberry Pi 4 model B目标板的板级支持包(BSP)。

Raspberry Pi 4开发板是一个小型的,价格可承受的计算机开发板。

DockerHub是一个Docker用户可以存储和分发容器镜像的仓库。

本文将介绍如何配置VxWorks以支持Raspberry Pi 4上的容器,还有DockerHub云如何注册。

Files:
(11 votes)
Date 2021-10-31
File Size 2.27 MB
Download 813

内容节选

第一章 Wind River........................................................... 4

1.1 风河系统公司简介 ..................................................... 4

1.2 实时操作系统 Vxworks 简介............................................. 4

第二章 Tornado.............................................................. 6

PowerPC MPC8313E

最近更换mpc8313的phy芯片,由原来的lxt972Phy更换为DP83849I,在此记录下本人在驱动开发过程中的点滴记录,以备日后查询,基于vxbus的网络驱动,vxBus驱动的注册遵循一致的方法,驱动接口为:


 device_method_t dp83849PhyMethods[] =
    {
    DEVMETHOD(miiModeGet,      dp83849PhyModeGet),
    DEVMETHOD(miiModeSet,      dp83849PhyModeSet),
    DEVMETHOD(vxbDrvUnlink,    dp83849PhyInstUnlink),
    { 0, 0 }
    };
 
 struct drvBusFuncs dp83849PhyFuncs =
    {
    dp83849PhyDevInstInit,      /* devInstanceInit */
    dp83849PhyDevInstInit2,     /* devInstanceInit2 */
    dp83849PhyDevInstConnect    /* devInstanceConnect */
    };
 
struct vxbDevRegInfo dp83849PhyDevRegistration =
    {
    NULL,               /* pNext */
    VXB_DEVID_DEVICE,   /* devID */
    VXB_BUSID_MII,      /* busID = MII Bus */
    VXBUS_VERSION_3,      /* busVer */
    "dp83849Phy",        /* drvName */
    &dp83849PhyFuncs,       /* pDrvBusFuncs */
    dp83849PhyMethods,      /* pMethods */
    dp83849PhyProbe         /* devProbe */
    };
 
void dp83849PhyRegister(void)
    {
    vxbDevRegister (&dp83849PhyDevRegistration);
    return;
    }

要编写驱动,主要去实现上面模块中的相关功能,首先编写dp83849PhyProbe,在函数中识别flash的ID,编写其他相关的函数,接下来在sysLib.c中注册系统驱动

前段时间抽空做了vxWorks7.0下的基于zynq的boot程序,在此做个总结。

vxworks7.0支持三种不同的boot程序:第一种uboot,第二种vxworks6.9.x以上的bootloader,第三种bootapp,关于uboot的创建方法在前面的博文中已经提到过,bootloader6.9的话,因为我不在使用6.9的版本,所以在此也就不做介绍,今天我们来谈一谈vxworks7.0下bootapp的创建方法。

首先,创建VSB工程,在创建VSB工程时一定要选择up类型创建,具体的创建方法,做过vxworks7.0的都会,在这里就不多做介绍了。

其次创建VIP工程,使用-profile PROFILE_BOOTAPP属性创建VIP工程,在VIP工程中添加组件INCLUDE_STANDALONE_DTB,使用嵌入式的vxWorks,让设备树编译到vxWorks中去。切记不能包含组件INCLUDE_PATCH_STANDALONE_DTB

接着增加boot参数的存储配置,如果有独立的基于IO系统的eeprom专门用于存储boot参数,包含组件INCLUDE_BOOTAPP_NVRAM_SUPPORT,设置其属性值:


prj vip parameter set BOOTAPP_GENERIC_NVRAM_NAME \"/eeprom/0\"
prj vip parameter set BOOTAPP_GENERIC_NVRAM_OFFSET 0x0
prj vip parameter set BOOTAPP_GENERIC_NVRAM_SIZE 0x100

其中BOOTAPP_GENERIC_NVRAM_NAME必须是你devs看到的IO系统的flash设备名称。其他参数是flash设备的大小和偏移地址。

在这里我使用的是S25FL265S的QSPIflash,总大小为0x2000000,其中前0x800000为boot和设备的一些配置参数,其余的用于挂接文件系统,存放系统的启动镜像文件,所以在0x800000-0x10000位置存储boot参数,用于设备启动时参数的修改,修改bsp文件

一直以来想看看新的VxWorks 7.0有什么变化,最近抽了一段时间做了一个基于zedboard的VxWorks的操作系统镜像,刚开始就被很多新的问题困扰了很久,首先是uboot,VxWorks7不再有bootloader,变成了全新的uboot支持,有的CPU增加了一个VxBL作为系统启动引导,但是官网推荐用U-Boot引导启动,如何编译一个uboot,可以参考BSP包里面的target.ref,也可以从官网下载U-Boot源码,修改支持自己的处理器,然后重新编译,下面是关于zedboard的u-boot编译:

1、需要一台装有Linux系统或Windows系统装有Linux虚拟机的电脑,系统为Ubuntu;

2、进入Ubuntu系统,按Ctrl+Alt+T调出Terminal终端。输入sudo passwd root,会要求输入用户密码,然后重置root的密码,这里密码都不会显示。重置完后输入su root,再输入刚刚重置的root密码即可进入root

VxWorks 7 Debug based on Zedboard

这里要说明很关键的一点,一定要把目录设置好。

3、在root目录下,输入mkdir /zed,在zed下创建tool,将下载的xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin拷贝到tool目录下。

输入如下命令:


cd /root/zed/tool

然后执行如下命令: