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 #
- Copy the UEIPAC VxWorks archive into your
%WIND_HOME%\vxworks-6.x\target
directory. - Extract the archive:
tar xvfz ueipac-vxworks-x.y.tgz
- Adjust GCC configuration by removing the
-ansi
flag indefs.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 #
-
Start a TFTP server on your host.
-
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:
-
Create a new DKM project.
-
Link against the
libPDNA.a
library. -
Transfer the module via FTP:
[vxWorks *] ftp 192.168.100.101 ftp> get Sample204.out
-
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.