VxWorks Real-Time Kernel Connectivity Andrew Piñeiro CNT 4104 Janusz Zalewski FGCU December 9, 2011

Similar documents
VxWorks Real-Time Kernel Connectivity

EPIC board ensures reliability in the toughest environment

XE 900: Fastest EPIC board now available with Windows XPe

VXS-610 Dual FPGA and PowerPC VXS Multiprocessor

VXS-621 FPGA & PowerPC VXS Multiprocessor

Running vxworksrtos on the. Mechatronics Laboratory

MYD-SAM9X5 Development Board

Micetek International Inc. Professional Supplier for PowerPC Development Tools

PXA270 EPIC Computer with Power Over Ethernet & Six Serial Protocols SBC4670

Avnet Zynq Mini Module Plus Embedded Design

ML410 VxWorks BSP and System Image Creation for the BSB Design Using EDK 8.2i SP1. April

MYD-JA5D2X Development Board

ML410 VxWorks Workbench BSP and System Image Creation for the BSB Design Using EDK 8.2i SP2. April

ML410 VxWorks BSP and System Image Creation for the BSB DDR2 Design Using EDK 8.2i SP1. April

Micetek International Inc. Professional Supplier for PowerPC Development Tools

MYD-SAMA5D3X Development Board

Vxworks Programmers Guide 5 3 Jlab Computer Center

DTK2410 Specification

PCM-9562 Intel Atom N450/D510 EBX SBC with 3LAN/6 COM/3 SATA/8 USB2.0/2 Watchdog Startup Manual

Wind River Workbench (VxWorks Version) User's Guide, 3.0. Wind River Workbench USER S GUIDE 3.0. VxWorks Version

Module 1. Introduction. Version 2 EE IIT, Kharagpur 1

The industrial technology is rapidly moving towards ARM based solutions. Keeping this in mind, we are providing a Embedded ARM Training Suite.

Diamond Systems Hercules II Single Board Computer FastStart Guide

Celeron EPIC Computer with GUI and Dual Ethernet SBC4685

TQ2440 Development Platform Manual

Technical Information

Embest SOC8200 Single Board Computer

EMBEDDED SYSTEM FOR VIDEO AND SIGNAL PROCESSING

Simplifying the Development and Debug of 8572-Based SMP Embedded Systems. Wind River Workbench Development Tools

FriendlyARM. Mini2440.

Advanced 486/586 PC/104 Embedded PC SBC1491

C900 PowerPC G4+ Rugged 3U CompactPCI SBC

VMICPCI-7755 Intel Pentium III Processor-Based CompactPCI System Controller SBC with 133 MHz System Bus

PCM-4381 Intel Pentium M EPIC SBC with VGA/2 LVDS/ 2 Ethernet/ 4 COM/ 2 SATA/6 USB 2.0/ 16 bit GPIO

Introduction to Netburner Network Development Kit (NNDK) MOD5282

MYD-IMX28X Development Board

MYD-IMX28X Development Board

Remote booting. Slave booting, backplane booting and 'headless' booting procedures for a VxWorks target

MYD-C437X-PRU Development Board

PropIO V2 User Guide. Wayne Warthen RetroBrew Computers

RX62N BOARD User Manual

StrongARM** SA-110/21285 Evaluation Board

ARDUINO YÚN MINI Code: A000108

C901 PowerPC MPC7448 3U CompactPCI SBC

T1042-based Single Board Computer

CPC501. Best solutions to fit your demands! 6U CompactPCI Pentium M SBC.

wireless embedded boards

LPC1788 Mio Board. The functional details of the board are as follows-

Intel Galileo gen 2 Board

)8-,768'HY.LW 2YHUYLHZ. )XMLWVX0LNURHOHNWURQLN*PE+ Am Siebenstein Dreieich-Buchschlag, Germany

ECE 471 Embedded Systems Lecture 15

PCM-4153-A2 PC/104+ SBC w/amd LX800, VGA, LCD, Dual LAN, USB 2.0, On-board Flash and Memory Startup Manual

AN LPC1700 secondary USB bootloader. Document information. LPC1700, Secondary USB Bootloader, ISP, IAP

w w w. b a s e t r a i n i n g i n s t i t u t e. c o

STM32 Cortex-M3 STM32F STM32L STM32W

Evaluation board for NXP LPC2103. User Guide. Preliminary Version updated 27 th Aug TechToys Company All Rights Reserved

General. Display. Ethernet Interface. MIO-5271 Startup Manual 1

Getting Started with FreeRTOS BSP for i.mx 7Dual

3U CompactPCI Intel SBCs F14, F15, F17, F18, F19P

SBC8140 Single Board Computer

wireless embedded boards

esi-risc Development Suite Getting Started Guide

Full Linux on FPGA. Sven Gregori

Soekris Engineering. net4501 series boards and systems. User s Manual

wireless embedded boards

ECE 471 Embedded Systems Lecture 12

JNU691 Series. Intel Apollo Lake Processor Motherboard support 3 Independent Display outputs (2 * HDMI Ports and 1 * VGA Port)

F28069 ControlCard Lab1

wireless embedded boards

SheevaPlug Development Kit Reference Design. Rev 1.2

Compute Node Design for DAQ and Trigger Subsystem in Giessen. Justus Liebig University in Giessen

Matrix-605 WinCE ARM9 Industry Box Computer User Guide

EMAC SoM Presentation.

Familiarity with data types, data structures, as well as standard program design, development, and debugging techniques.

Human Machine Interface Platform

Experiment 1. Development Platform. Ahmad Khayyat, Hazem Selmi, Saleh AlSaleh

PCM-9588 Intel Celeron M EBX SBC with DVI/ TTL/ VGA/ LVDS/ LAN/ 6 COM/ 2 SATA/ 6 USB2.0/16-bit GPIO Startup Manual

wireless embedded boards

USB Keyboard Mouse. VGA Compact Flash

KSZ9692PB User Guide Brief

Four Components of a Computer System

PCM-SC520-G AMD SC520 SBC with 10/100 Ethernet

S125 Multi-Purpose 125 KHz RFID Reader USER MANUAL. 9V/24V DC Operating Voltage, AC (optional) KHz RFID EM4100/2 Cards & Tags

CoLinkEx_LPC11C14 EVB Kit User Guide

LAB1. Get familiar with Tools and Environment

BASCOM51. Quick Start Guide

Development Environment Embedded Linux Primer Ch 1&2

The ROBO-8710VLA package should cover the following basic items

CORRIGENDUM ISSUED FOR NATIONAL COMPETITIVE BIDDING UNDER TEQIP PHASE-II

wireless embedded boards

PCM-9342 EVA-X SBC with PC/104, VGA/ TTL/LVDS Ethernet/USB 2.0 and SSD Startup Manual

Introducing the Spartan-6 & Virtex-6 FPGA Embedded Kits

Introduction to Intel Boot Loader Development Kit (Intel BLDK) Intel SSG/SSD/UEFI

User Manual. LPC-StickView V3.0. for LPC-Stick (LPC2468) LPC2478-Stick LPC3250-Stick. Contents

Using VxWorks BSP with Zynq-7000 AP SoC Authors: Uwe Gertheinrich, Simon George, Kester Aernoudt

Notebook Combo-Debug-Card User Guide. (VIP Version)

LEON4: Fourth Generation of the LEON Processor

VMICPCI-7753 Intel Celeron /Pentium III CompactPCI System Controller

USB for Embedded Devices. Mohit Maheshwari Prashant Garg

LV-681. Mini-ITX motherboard. User s Manual. Edition: /04/09. LV-681 User s Manual 1

Transcription:

VxWorks Real-Time Kernel Connectivity Andrew Piñeiro CNT 4104 Janusz Zalewski FGCU December 9, 2011

1. Introduction VxWorks is a proprietary real-time operating system (RTOS) made and sold by Wind River Systems (now a wholly owned subsidiary of Intel). It is the most popular RTOS for embedded systems. [1] The Workbench IDE (also created by Wind River) is used to develop VxWorks programs. Development of VxWorks programs must take place on a computer running a different operating system (such as UNIX or Windows). From this host machine, the executable can be ported to a computer (called the target) that runs VxWorks. The reason for this is the target, such as a microcontroller of an embedded system, will most likely not have the resources to do the compiling. [2] For this reason, a VxWorks system may never be self-hosting. VxWorks programs can be cross-compiled to run on various target CPU architectures. Cross-compiling is the act of creating different executables for different platforms, other than the one where the compiling is originally done. A compiler that can do this is called a cross-compiler. As previously mentioned, the microcontroller of an embedded system will not have sufficient resources to do the compiling itself. Consequently, cross-compiling is highly used for embedded systems. [2] In this project, the work of previous-semester projects is continued. [5] A web server that can run on a VxWorks SBC (single-board computer) is created. This particular SBC is also made by Wind River (the Wind River SBC8349E).

2. Problem Definition The projects from previous semesters have failed to establish a target server connection with the Wind River SBC. (A target server connection is the name used in Workbench for a connection between the host computer and the computer running VxWorks. In this case, the VxWorks computer is the Wind River SBC8349E.) However their code was able to work with VxSim (a VxWorks target simulator). So the first objective for this project is to establish a successful target server connection with the actual hardware. Then a simple Hello World program is to be created and run on the target to show that everything works correctly. Only then will there be an attempt to get the web server to run on the SBC. Since this is the first time working with VxWorks, the most challenging problems of this project are: Figuring out how to use Workbench Figuring out how to develop VxWorks programs

3. Solution to the Problem To develop the web server to run on the SBC, the following documentation has to be used: Wind River Workbench User s Guide 3.1 [6] VxWorks Application Programmer s Guide 6.7 [7] VxWorks Kernel Programmer s Guide 6.7 [9] Wind River Workbench By Example 3.1 (VxWorks 6 Version) [8] Tornado and VxWorks What s not in the Manual [10] All equipment and software required to work on this project is already available: The Workbench IDE is installed on a host computer (HP desktop running Windows XP with an IP address of 69.88.163.21) A Wind River target SBC with an assigned IP address of 69.88.163.22 Respective serial and Ethernet cables to make the required connections And an Internet connection allowing necessary communication between the host and the target The system configuration is shown in Figure 1 below. Figure 1: The layout of all the hardware and software components.

4. Implementation 4.1 Hardware Setup and Booting The type of SBC used for this project is a Wind River SBC8349E, shown in Figure 2. The exact specification of the SBC is as follows. [3] Core processor o MPC8349E 667MHz processor Available memory o 256MB DDR SDRAM SODIMM o 8MB on-board flash o 8KB EEPROM o 128MB local bus SDRAM DIMM o 256K-bit I2C serial EEPROM Support for the following PowerQUICC II Pro peripherals o PCI-X controller: 3.3v 64-bit PCI bus up to 133MHz o Memory controller: up to DDR333 memory bus o Interrupt controller and timers o Two 10/100/1000BaseT internal Ethernet MAC interfaces using RJ45 connectors o Two RS-232 interfaces using Mini DB9 connectors o USB Host Mini A/B port Hard reset via a momentary switch Seven-segment display on CPU GPIO User switches on CPU GPIO 16-pin and 52-pin JTAG debug connections

Figure 2: Wind River SBC8349E. [4] To set up the SBC, the following steps have to be followed: 1. Make sure that Workbench version 3.1 and VxWorks version 6.7 are available on the host. 2. Connect the SBC and host computer via a serial cable. (The host uses the serial connection to communicate with the boot loader on the target. [7]) 3. Connect the SBC and host computer via an Ethernet cable. (In this project, both machines were connected to a wall jack, and thus connected to the school network. The host uses the Ethernet connection to transfer files, including the VxWorks kernel. [7]) 4. Power on the host computer (don t power on the SBC yet) 5. On the host computer: a. Open up Workbench (a screenshot of Workbench is shown in Figure 3) b. Open up the WFTPD server (by default, it should be under the Wind River folder in the Start Menu s list of programs). This is required for the SBC to download

the VxWorks kernel over the Ethernet connection. [7] A screenshot of it is shown in Figure 4. 6. In Workbench, open up the Terminal view (select Window Show View Terminal) 7. In Terminal view, set up a serial connection between the host and SBC. 8. Power on the SBC. 9. Communication between the SBC and host soon begins and is shown in the Terminal view (the boot loader s output is shown in Figure 5) 10. After a countdown, the boot loader chooses a previously configured (see next section) VxWorks kernel to boot. Then VxWorks starts up on the SBC. WFTPD shows the boot loader logging in and downloading a VxWorks kernel (see Figure 4) Figure 3: The start page of Wind River Workbench.

Figure 4: The WFTPD FTP server. Here the SBC has successfully downloaded a kernel image. Figure 5: The boot loader s output in Workbench s Terminal view. 4.2 Configuring the VxWorks Kernel When the VxWorks kernel is loaded into the SBC for the first time, it boots up normally, but has no command-line interface. By default, VxWorks Image projects (VIPs) do not set the kernel to have a shell. Also, the VIP bundle Real Time Process Development is not set by default. In this project, the programs are loaded into the SBC as Real-time Process (RTP) projects.

Therefore it is necessary to tweak the kernel configuration. The following steps are needed to configure the VxWorks kernel correctly: 1. Open up the VIP folder in Project Explorer that needs to be configured 2. Double-click Kernel Configuration 3. Select the Bundles tab 4. For each required bundle, right-click and select Add. In this case, the required bundles are: a. Real Time Process Development b. Standalone kernel shell 5. After adding the desired bundles, save the project and rebuild it A screenshot of the kernel configuration used in this project is shown in Figure 6. Figure 6: The kernel configuration. Bundles Real Time Process Development and standalone kernel shell are added.

4.3 Running a Hello World RTP Application Since VxWorks is a real-time operating system, any process that runs on it is an RTP. However, Workbench makes the distinction that RTP projects run in user space. Projects that create a VxWorks OS image or kernel modules run in kernel space. [5] After creating a new RTP Project, the Hello World program is coded. Before building the project, one has to make sure that the RTP is compatible with the kernel loaded into the SBC. To do this, check the build properties of the of the kernel project in Workbench. In Workbench, kernel projects are referred to as VIPs (VxWorks Image projects). In this case, the name of the VIP is Test. A screenshot of its build properties is shown in Figure 7. Figure 7: The build properties of a VIP (VxWorks Image project).

What needs to be checked is the Build configuration for real time processes and shared library subprojects section of the VIP s build properties. To get there, the following steps need to be followed: 1. Right-click the project in the Project Explorer window and select Properties 2. Select Build Properties 3. Select Subprojects 4. Examine Build configuration for real time processes and shared library subprojects The build configuration of the RTP must match the build spec in the VIP s Build configuration for real time processes and shared library subprojects section. In this case, the build spec is PPC32gnu_RTP. To modify the build configuration of the Hello World RTP, the following needs to be done: 1. Right-click the project in the Project Explorer window and select Properties 2. Select Build Properties 3. Select Build Support and Specs 4. Examine Default build spec (a screenshot of the Hello World RTP build configuration is shown in Figure 8) Now the build spec from the drop list that matches the kernel s build spec for real-time processes must be selected. Then building the RTP can be done.

Figure 8: The build properties of the Hello World RTP. Once the Hello World executable is built, it s time to load it into the SBC. In VxWorks, the file type for an executable is.vxe. In this case, the Hello World.vxe is located on the host computer. So the SBC would have to download the.vxe via WFTPD. This can be done in the Terminal view of Workbench. If the kernel on the SBC is configured correctly, there should be a command-line prompt in the Terminal view. To load and run the Hello World.vxe on the SBC, the following steps need to be followed: 1. The command-line prompt may start out as the C interpreter by default. To switch to the command interpreter, the cmd command must be used. [6] 2. The rtp exec command must be used to execute the Hello World real-time process In this case, it uses a full path to the location of the executable on the host:

rtp exec JZ-HP- WINXP:C:/WindRiver_OCD/workspace/HelloWorld/PPC32gnu_RTP/HelloWorld/Deb ug/helloworld.vxe Figure 9 shows a screenshot of the Terminal view, which contains the command-line. Figure 9: Workbench s Terminal view is used as a command-line interface for the SBC. 4.4 Running the Web Serve RTP Application For the web server RTP, Andon Coleman s ehttp server is used. [5] This server program was created in the previous semester (Spring 2011). The source code was stored in a Downloadable Kernel Module project. But since RTP projects are now being used, the source code was copied

into an RTP project named ehttp_test. Some changes needed to be done to the source code in order to get it to compile. Mostly it was commenting out unnecessary C preprocessor lines. As with the Hello Word RTP, the project s Build Properties window needed to have PPC32gnu_RTP set as the build spec. The same instructions in the Hello World section for changing the build spec need to be followed. Afterwards, the ehttp RTP can be compiled. Then it can be executed with the rtp exec command in the Terminal view. The exact command in this case is as follows: rtp exec JZ-HP- WINXP:C:/WindRiver_OCD/workspace/eHTTP_Test/PPC32gnu_RTP/eHTTP_Test/Debug/eHT TP_Test.vxe Figure 10 shows WFTPD s output when the SBC requests ehttp_test.vxe. Figure 10: ehttp_test.vxe gets loaded into the SBC successfully. Now that ehttp is running on the SBC, it is ready to accept HTTP requests. It was tested by using Mozilla Firefox to request a web page from it. In this case, the IP address of the SBC was 69.88.163.22. The output for the request http://69.88.163.22/index.html is shown in Figure 11.

Figure 11: Despite not having the specified file, ehttp still responds to the web browser successfully. As one can see, the page index.html does not exist. But the primary goal has been met; getting the web server to run on the SBC instead of the VxSim simulator. Figure 12 shows the Terminal view s output from the Firefox HTTP request. Figure 12: The output of ehttp in the Terminal view. ehttp can even detect the web browser s name and version number.

Figure 13 shows the output from WFTPD when Firefox makes the request. Figure 13: The SBC interacts with WFTPD, implying that ehttp s file system is still stored on the host computer. One might be wondering why the SBC still interacts with the host after ehttp gets loaded and is running. The only explanation for this is that ehttp s file system is still located in the host. When Firefox requested index.html, ehttp checked its file system in the host for index.html. But since there was no index.html, WFTPD outputted RETR failed file does not exist.

5. Conclusion The main objective of getting the VxWorks programs to run on the SBC was accomplished. The projects from previous semesters have succeeded in getting their programs to run on the VxSim simulator. But now future students can execute their programs on the actual hardware. It took quite a bit of digging through documentation. But at last, there was success. For future students assigned to this project, it is highly recommend that the documentations listed in the Solution to the Problem section be referenced. [6, 7, 8, 9, and 10] In this report, emphasis was placed on the problems that took quite some time to solve. One example is figuring out why the Hello World RTP wouldn t run in the SBC. But finally it was discovered that one had to set the RTP s build spec to match the VIP s build spec for real-time processes. Step-by-step solutions to these problems are described in this report. Future improvements to this project would be moving ehttp s file system to the SBC. That way once ehttp is loaded and running on the SBC, there will be no more dependency on the host computer. Another thing would be to load some actual web pages into ehttp s file system. This would be ideal for fully testing ehttp. And it may even expose some bugs in it that need to be fixed.

6. References 1. Wikipedia. VxWorks. Last modified 9-13-11. Retrieved 9-16-11. http://en.wikipedia.org/wiki/vxworks 2. Wikipedia. Cross compiler. Last modified 8-12-11. Retrieved 9-16-11. http://en.wikipedia.org/wiki/cross-compilation 3. NL Telecom. Wind River Reference Board. Retrieved 10-7-11. http://www.nltelecom.com/product2/referance.html 4. Coleman, Andon. Fault Tolerant Software Engineering using VxWorks. Published 5-2-11. Retrieved 10-7-11. http://itech.fgcu.edu/faculty/zalewski/cnt4104/projects/colemanstable_finalv2.pdf 5. Coleman, Andon. Lightweight HTTP Server for Embedded Systems. Published 5-2-11. Retrieved 10-7-11. http://itech.fgcu.edu/faculty/zalewski/cnt4104/projects/coleman_http_draft5.pdf 6. Wind River Systems, Inc. Wind River Workbench User s Guide 3.1. Published 12-3-08. Retrieved 10-9-11. http://rodowen.com/images/wr-wb-userguide.pdf 7. Wind River Systems, Inc. VxWorks Application Programmer s Guide 6.7. Published 11-17-08. Retrieved 10-9-11. http://wwwad.fnal.gov/controls/micro_p/manuals/vxworks_application_programmers_guide_6.7.pdf 8. Wind River Systems, Inc. Wind River Workbench By Example 3.1 (VxWorks 6 Version). Published 12-3-08. Retrieved 10-9-11. http://www.scribd.com/doc/49033052/wr-workbench-vxworks-6-by-example-3-1 9. Wind River Systems, Inc. VxWorks Kernel Programmer s Guide 6.7. Published 11-19-08. Retrieved 10-9-11. http://wwwad.fnal.gov/controls/micro_p/manuals/vxworks_kernel_programmers_guide_6.7.pdf 10. Wehner, Christof. Tornado and VxWorks What s not in the Manual. Published 2004.