Skip to main content

UEIPAC VxWorks: Kernel Setup and PowerDNA Programming Guide

·639 words·3 mins
VxWorks UEIPAC PowerDNA RTOS Embedded Systems Real-Time OS
Table of Contents

United Electronic Industries (UEI) provides the UEIPAC platform as a powerful solution for embedded and real-time applications. Powered by VxWorks, the industry-leading real-time operating system (RTOS), UEIPAC supports a flexible range of CPU and I/O modules designed for industrial, aerospace, and military applications.

This article walks you through:

  • Building and configuring a VxWorks kernel for UEIPAC
  • Booting and storing the kernel image on the device
  • Enabling networking, USB, and flash storage
  • Using the PowerDNA API for real-time I/O programming

Whether you are starting a new project or migrating an application, this guide will help you unlock the full potential of UEIPAC with VxWorks.

1. Setting Up the VxWorks Kernel for UEIPAC
#

The UEIPAC VxWorks BSP (Board Support Package) provides all the components required to run VxWorks on UEI hardware.

1.1 Install Software
#

  1. Copy the UEIPAC VxWorks archive into your %WIND_HOME%\vxworks-6.x\target directory.
  2. Extract the archive:
   tar xvfz ueipac-vxworks-x.y.tgz
  1. Adjust GCC configuration by removing the -ansi flag in defs.gnu to ensure compatibility with the PowerDNA libraries.

1.2 Build External Drivers
#

UEIPAC requires additional drivers, including:

  • PowerDNA driver for I/O layers
  • Bonding driver for dual-port Ethernet fault tolerance

Build and install these drivers into your VxWorks environment so they can be included in your kernel configuration.

2. Kernel Configuration Options
#

When creating a VxWorks Image Project in Workbench, configure the following:

  • Symbol Table Support
  #define INCLUDE_STANDALONE_SYM_TBL
  • Serial Console
  #define INCLUDE_SIO
  #define CONSOLE_BAUD_RATE 57600
  • Networking: Configure dual Ethernet ports or enable bonding for redundancy.
  #define DRV_UEI_BONDING
  #define INCLUDE_IPIFCONFIG_CMD
  • Flash Storage (TFFS/DOSFS):
  #define INCLUDE_IO_FILE_SYSTEM
  #define INCLUDE_TFFS
  #define TFFS_MOUNT_POINT "/tffs0"
  • USB Host Support:
  #define INCLUDE_USB
  #define INCLUDE_EHCI
  #define INCLUDE_USB_SHOW

These settings enable networking, file I/O, USB devices, and PowerDNA I/O layers.

3. Booting VxWorks on UEIPAC
#

UEIPAC uses U-Boot as the boot loader.

3.1 Manual Boot via TFTP
#

  1. Start a TFTP server on your host.

  2. Transfer the kernel image:

    => tftp 4000000 vxWorks
    => bootvx
    

3.2 Store Kernel in Flash
#

Convert and flash the kernel for persistent boot:

$ mkimage -O vxworks -C gzip -n 'UEIPAC VxWorks' -a 4000000 -d uVxWorks.gz uVxWorks
=> erase fe200000 fe3fffff
=> tftp 4000000 uVxWorks
=> cp.b 4000000 fe200000 ${filesize}
=> bootm fe200000

Configure auto-boot with:

=> setenv bootcmd bootm fe200000
=> saveenv

4. Programming with PowerDNA API
#

The PowerDNA API provides the software interface to control I/O layers on UEIPAC.

Supported Modes
#

  • Immediate: Simple point-by-point I/O access.
  • DMAP (Data Mapping): Efficient real-time refresh across multiple I/O layers.
  • VMAP (Variable Mapping): High-performance buffered data transfers.

Note: UEIPAC supports Immediate, DMAP, and VMAP modes locally. ACB and Messaging modes are supported only for remote devices.

Example: DMAP I/O Programming
#

DqRtDmapInit(handle, &dmapid, 1000.0);               // Init at 1 kHz
DqRtDmapAddChannel(handle, dmapid, 1, DQ_SS0IN, &chentry, 1); // Add input
DqRtDmapStart(handle, dmapid);                       // Start
DqRtDmapRefresh(handle, dmapid);                     // Sync data
DqRtDmapReadScaledData(handle, dmapid, 1, indata, 1); // Read input
DqRtDmapStop(handle, dmapid);                        // Stop

This allows real-time acquisition and output across multiple channels.

5. Building and Running Applications
#

Applications can be built as Downloadable Kernel Modules (DKMs) in WindRiver Workbench:

  1. Create a new DKM project.

  2. Link against the libPDNA.a library.

  3. Transfer the module via FTP:

    [vxWorks *] ftp 192.168.100.101
    ftp> get Sample204.out
    
  4. Load and run:

    [vxWorks *] ld Sample204.out
    [vxWorks *] C main
    

6. Key Takeaways
#

  • UEIPAC with VxWorks provides a reliable RTOS platform for industrial and aerospace embedded applications.
  • Kernel customization allows you to enable networking, storage, and USB support.
  • U-Boot boot loader simplifies deployment of kernel images.
  • The PowerDNA API delivers flexible programming interfaces for high-performance real-time I/O.

With this setup, you can develop deterministic, real-time embedded applications that leverage UEIPAC’s hardware capabilities.

Final Thoughts
#

By combining VxWorks RTOS and UEIPAC hardware, engineers can build mission-critical systems with robust networking, storage, and I/O support. Whether you’re deploying in industrial automation, aerospace, or defense, mastering this workflow will ensure stable and efficient system performance.

Related

7 Key Features That Make VxWorks 7 the Leading RTOS
·521 words·3 mins
VxWorks RTOS Wind River Embedded Systems Real-Time OS
Memory Management in VxWorks Explained
·803 words·4 mins
VxWorks RTOS Memory Management Embedded Systems Real-Time MMU RTP
How to Choose the Best RTOS for Your Embedded System
·753 words·4 mins
RTOS Embedded Systems VxWorks QNX FreeRTOS Zephyr