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:
Date 2021-11-30
File Size 1.03 MB
Download 221

摘要: 由于我国的空间技术的迅速发展,航天嵌入式系统的复杂性急剧增加。在航天领域要求对嵌入式操作系统vxWorks进行剪裁工作以适应航天设计的要求,而剪裁掉文件系统的VxWorks操作系统存在地面不能对星上的事件进行有效干预的问题。文中在“龙芯”计算机平台上通过对VxWorks 操作系统进行配置,设计了一种可在轨编程的方案,并针对其中的出现的修改后的函数中全局变量和调用函数的链接地址发生变化的问题提出了解决方案并完成了软件实现该功能。文中CPU采用 wh1770,通过修改原被调用函数的初始代码实现对于新函数的调用,并针对全局变量以及调用函数在更新函数中链接地址发生变化设计了在轨更新接口函数和更新代码提取工具,从而实现函数的在轨更新,给出了部分设计流程图以及代码提取工具的测试结果。测试结果显示该工具实现了设计目的,在航天工程领域具备一定的利用价值。

Due to the booming in the space technology, the complexity of RTOS in aerospace is increasing, It is necessary to tailor embedded operating system to adapt the demand of aerospace design. And there comes the problem that the VxWorks OS which is tailored File System can't tackle the event on the satellite efficiently. By the configuration on the VxWorks OS which is based on the Loongson computer platforms, I design a software which can realize On-orbit programming. And the resolution and a software for the issue that link address of the global variable and called function may change is given. The CPU in the article is wh1770. Based on modifying the first several codes of the old called function and designing the interface function and tools for extracting modified codes ,we can realize the on-orbit function updating. Part of the flow charts and test result are also given. This software can achieve the purpose of the design and has some value in aerospace applications.

前段时间抽空做了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文件

(43 votes)
Date 2021-10-31
File Size 2.27 MB
Download 7,262

内容节选

第一章 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中注册系统驱动