VxWorks653入门教程01:653初探

系列索引:VxWorks入门教程索引

本系列从2021年10月开始使用VxWorks6.8.3+VMware15进行入门,到后来的VxWorks6.9.4+WindML5.3测试界面显示,到今天拿到了本系列的最终目标VxWorks653 2.4.0.1。

653/VX653/VXWORKS653,适航认证很难,主要是按代码行数算钱,于是风河从已有版本中拎出一个版本做适航认证,这个版本就是VxWorks653,此版本有单独的版本号,比如VxWorks653 2.4.0.1是从VxWorks5.5版本而来的。此版本的显著特性就是多分区。此版本只支持PPC架构。

先建个多分区工程看看效果。

单分区

打开workbench,设置工作区,进入默认界面。

default

新建一个Wind River Workbench Project

new

选择目标类型

target

选择类型

type

Integration表示包含核心、分区工程,一个集合。

填入工程名称

name

选择编译工具

build

然后来到分区设置

partition setup

点击Module operating system下面工具栏右侧的Set...按钮

module

名称保持默认,勾选下发的复选框

然后同样方式设置Partition operating systemConfiguration record

然后点击Partitions部分右侧的Add按钮

add

设置名称,勾选复选框

这样就新建了一个分区

partition

如果需要多个分区,就多点几次Add按钮。

然后点击结束,得到工程

project

可以看到有四个子工程,

  • ConfigRecord 配置记录工程
  • ModuleOS 模块系统
  • Partition1 第一分区程序,可以有多个
  • PartitionOS 分区系统

右键选择编译,编译结果为

1
2
3
4
5
6
7
8
sh C:/windriver653-bk/vxworks653-2.4.0.1/host/x86-win32/bin/xmlgen.sh --cfgRec --arch pentium -RAM -ROM  --page-size 0x10000 -o configRecord.xml ../test_ConfigRecord/simpc_default.xml
WARNING: RAM payload pool size is zero. RAM payloads will not be bootable. Other payload types are unaffected.
sh C:/windriver653-bk/vxworks653-2.4.0.1/host/x86-win32/bin/xmlgen.sh --netboot -o boot.txt configRecord.xml
pulling in elf image coreOS.sm...
pulling in elf image vxSysLib.sm...
pulling in elf image configRecord.reloc...
C:\windriver653-bk\utilities-1.0\x86-win32\bin\make.exe: *** No rule to make target `simpc_part1.sm', needed by `net'. Stop.
Build Failed in Project 'test' (Process Exit Value was 2): 2022-01-13 18:03:37 (Elapsed Time: 00:01)

打开集成工程下的Makefile.rules文件,在底部找到

1
2
3
4
5
6
test_Partition1.sm : ../test_Partition1/SIMNTgnu/test_Partition1/Debug/test_Partition1.sm
@echo "pulling in elf image test_Partition1.sm...";\
cp $< $@

../test_Partition1/SIMNTgnu/test_Partition1/Debug/test_Partition1.sm :
$(error "elf image ../test_Partition1/SIMNTgnu/test_Partition1/Debug/test_Partition1.sm needs to be provided")

test_Partition1.sm修改为simpc_part1.sm

然后继续编译,没有编译错误。

然后到工作空间中查看文件

files

  • boot.txt 启动引导器读取文件信息,并按顺序启动每一个文件
  • sm 系统文件
  • sym 符号库

仿真

选择workbench提供的默认的仿真器,新建一个新仿真器。

new connection

选择类型

type

设置启动参数

para

之后默认到结束,然后自动启动仿真

sim

启动是启动了,但是看不出来是否正常。

653的仿真只能在windows7下进行,windows10 是无法仿真的,报错failed to allocate 0x20000 bytes : 87

qemu运行

VXWORKS653默认架构为PPC,但是我没有这种设备,所以用qemu模拟。

多分区

按照上面的步骤创建新工程,只是在分区步骤有所修改

partitions

编译,出现错误,修改rules文件。接着编译,没有问题,看一下文件

files

我们是2个分区,但是只出现了一个分区,那么就需要修改一下。

先找到根工程下的configRecord.xml文件,打开,

configrecord

其引用的文件为simpc_default.xml,找到这个文件并打开

simpc

发现只有一个分区,那我们添加一个,右键添加

partition

然后根据已有的分区1星星修改

setup

会发现需要操作的条目太多,直接打开右侧的Source标签把1分区所有的内容复制一份并修改

经过测试,包括以下字段

1
2
3
4
5
PartitionPayload
PartitionHMTable
PartitionWindow
Partition 包括id
Application

修改之后编译会出现分区1的同样问题,修改rules文件就可以了。

仿真

编译仿真运行

sim2

可以看到2个分区都加载运行了。

qemu运行

下一篇:VxWorks653入门教程02:hello world


VxWorks653入门教程01:653初探
https://blog.jackeylea.com/vxworks653/test-of-vxworks653/
作者
JackeyLea
发布于
2022年1月15日
许可协议