1 简介
VxWorks是由风河(Wind River)提供的实时操作系统(RTOS),VxWorks下的USB堆栈是支持USB串行适配器设备的,可以通过“USB转串口”适配器访问VxWorks目标机控制台。
本文将描述如何创建和部署VxWorks系统以支持“USB转串口”适配器,以及如何将VxWorks系统的控制台(console)重定向到该“USB转串口”适配器。
2 前提条件
本文说明的前提条件是假设你正在使用:
- Wind River VxWorks 7,SR0660
- 从UEFI BIOS启动的Intel平台目标机
- 一个USB闪存驱动器(最小4 GB)
- 一个USB转串口适配器,支持3种类型的USB转串口适配器:
- FTDI 232
- Prolific 2303
- 支持USB CDC协议的适配器
3 创建并编译VxWorks源码编译(VxWorks Source Build – VSB)项目
打开一个DOS shell,配置编译环境,然后编译项目:
cd <WIND_HOME> // your installation directory
wrenv -p vxworks-7
cd <YOUR_WORKSPACE> // your workspace
vxprj vsb create adapter_vsb -bsp itl_generic -smp -force -S
cd adapter_vsb // your workspace
vxprj vsb add USB_CLASS // add the USB class to the VSB
vxprj vsb add USB_HELPER // add the USB helper to the VSB
vxprj vsb add USB_SERIAL // add the USB serial class to the VSB
make -j 32 // build the VSB
4 创建和编译一个基本的VxWorks镜像项目(VIP)
按照下面的步骤创建一个基本的VxWorks镜像项目(VIP)
cd ..
vxprj create -smp itl_generic adapter_vip -profile PROFILE_INTEL_GENERIC -vsb adapter_vsb
cd adapter_vip
vxprj vip component add INCLUDE_MULTI_STAGE_WARM_REBOOT
vxprj vip bundle add BUNDLE_STANDALONE_SHELL
// add support for all supported USB serial adapters
vxprj vip component add INCLUDE_USB_GEN2_SER_FTDI232
vxprj vip component add INCLUDE_USB_GEN2_SER_PL2303
vxprj vip component add INCLUDE_USB_GEN2_SER_WRS_CDC
vxprj vip component add INCLUDE_USB_GEN2_SERIAL_INIT
vxprj build
5 启动目标机上的VxWorks并测试“USB转串口”的适配器
5.1部署UEFI Bootloader和VxWorks内核映像
有关如何编译并在USB闪存驱动器上部署UEFI引导加载程序(bootloader)以及VxWorks映像文件的说明,请参考itl_generic BSP自述(readme)文件,在下面路径找到此自述(readme)文件:
<WIND_HOME>\vxworks-7\pkgs_v2\os\board\intel\itl_generic-a.b.c.d\itl_generic_readme.md
在按照以下说明部署UEFI引导加载程序(bootloader)和vxWorks内核映像之后,你将在USB闪存驱动器上找到以下文件:
- EFI BOOT
- bootapp.sys
- BOOTIA32.EFI
- BOOTX64.EFI
5.2 准备Intel的目标机
配置目标机的BIOS,然后从USB闪存驱动器引导目标机。
将USB闪存驱动器连接到Intel目标机。
将”USB转串口“适配器链接到Intel目标机。
5.3 启动目标机
给目标机上电,目标启动后,你将看到内核shell的提示符,你还将看到一条消息,表明”USB转串口“适配器的驱动程序已经初始化该设备。
Target Name: vxTarget
VxWorks 7 SMP 32-bit
Copyright 1984-2021 Wind River Systems, Inc.
Core Kernel version: 3.2.0.0
Build date: Jan 31 2021 11:44:04
Board: x86 Processor (ACPI_BOOT_OP) SMP/SMT PAE
CPU Count: 8
OS Memory Size: ~16224MB
ED&R Policy Mode: Permanently Deployed
Adding 8849 symbols for standalone.
-> Find USB-to-Serial adapter device: FTDI USB-to-Serial Adapter
Added new USB-to-Serial adapter device as /usb2ttyS/0
-> devs
drv refs name
...
12 [ 3] /usb2ttyS/0
...
->
6 将VxWorks的控制台重定向到/usb2ttyS/0
添加VxWorks控制台组件INCLUDE_USB_GEN2_SERIAL_PCCONSOLE_INIT时,将创建一个名为/ttyUSB0的新设备,该设备代表VxWorks I/O系统下的/usb2ttyS/0
vxprj vip component add INCLUDE_USB_GEN2_SERIAL_PCCONSOLE_INIT
vxprj vip component add INCLUDE_USB_GEN2_HELPER
vxprj vip parameter setstring CONSOLE_NAME "/ttyUSB0"
// check that the console name is /ttyUSB0
vxprj vip parameter value CONSOLE_NAME
CONSOLE_NAME = "/ttyUSB0"
// check that the console baud rate is 9600
vxprj vip parameter value CONSOLE_BAUD_RATE
CONSOLE_BAUD_RATE = (9600)
重新编译VxWorks内核并部署镜像文件到目标机上的USB闪存驱动器上。
7 重启目标机让控制台重定向到“USB转串口”适配器
用串口线将连接到目标机USB端口的“USB转串口”适配器和一个工作机的串口连接起来,将USB闪存驱动器连接到目标机,然后重新启动目标机。
-> devs
drv refs name
...
3 [ 3] /ttyUSB0
...
2 [ 3] /tyCo/1 ==> /ttyUSB0
12 [ 3] /usb2ttyS/0
->
现在VxWorks的控制台可通过PC控制台(PC Console)和“USB转串口”适配器连接来工作。