Using the VxWorks 7 kernel shell to access device registers

2023-02-15T10:30:37+00:00February 15, 2023|Blog, Embedded|

In this blog post I'll explain how to use the VxWorks 7 kernel shell to read and write registers in hardware devices.  This is a very helpful feature for anyone developing device drivers or other code which interacts directly with memory-mapped devices. VxWorks 6.9 kernel shell If you've worked with VxWorks 6.9 you're probably used

VxWorks application software builds using VxWorks 7 layers and subprojects

2022-10-31T14:33:19+00:00October 31, 2022|Blog|

Recently we helped a customer integrate existing OS-independent middleware and device driver software with its own build environment (based on GNU Make) in to VxWorks 7 project build environment. This allowed them to configure and build variants of their software for different target boards and CPU architectures using Wind River Workbench. The integration was achieved

RTOS Clause 45 PHY support

2021-07-13T17:42:28+01:00July 13, 2021|Blog|

A tale of two drivers In the last year two customers asked us to add support for a new IEEE 802.3 Clause 45 PHY for use with a network interface in their existing system. One customer was a QNX user, the other was a VxWorks user. These RTOSes take a different approach to network interface management, which dictated

VxWorks 7: where’s the bootrom?

2021-06-16T15:02:11+01:00June 16, 2021|Blog|

If you're moving from an earlier version of VxWorks to VxWorks 7 you might be wondering: how do I build a bootrom? This post explains how the boot mechanism has changed for VxWorks 7 and what that means particularly for projects based on custom-designed hardware.  You should read this if you're going to migrate a

Running VxWorks 7 on the Nitrogen8M SBC

2020-08-03T10:57:00+01:00July 4, 2020|Blog|

In this short article I'll look at how the support for modern system-on-chip devices in Wind River's VxWorks 7 real-time operating system enables developers to get a kernel running a new board is a very short space of time. Why use the Nitrogen8M SBC? The Boundary Devices Nitrogen8M SBC is a great development board we've

I2C lock-up: prevention and recovery

2020-08-03T10:57:59+01:00July 1, 2020|Blog|

  I2C is normally thought of as being a straightforward and easy-to-use interface, but there are some pitfalls that can catch the unwary.  In this post I'm going to explain one of them and give some practical advice that will help you avoid being caught out. What is I2C? First of all, to re-cap: I2C

QNX PTP pulse per second output on the Intel i210

2020-06-01T09:32:48+01:00April 21, 2020|Blog|

A requirement for the QNX network driver we recently wrote was to add support for outputting a pulse-per-second signal, similar to the Linux PTP_PEROUT_REQUEST ioctl. We added support to the driver by creating a new IOCTL command and a simple utility program to issue the command to enable or disable the PPS output. This is

QNX network driver custom ioctls

2020-06-01T09:32:03+01:00April 21, 2020|Blog|

Learn how to add your own custom commands to your QNX network driver using lessons learned from a real project described below. QNX defines a set of IOCTL commands that a driver must implement in order to support PTP. These are defined in usr/include/netdrvr/ptp.h.  #define PTP_GET_RX_TIMESTAMP    0x100  /* get RX timestamp */ #define PTP_GET_TX_TIMESTAMP    0x101  /* get TX timestamp */ #define PTP_GET_TIME            0x102  /* get

QNX Network Driver Development

2020-01-06T20:06:56+00:00November 21, 2019|Blog|

Network driver development is hard Writing network drivers is a tricky business as anyone who has ever tried it will tell you. Or you are talking to Bill Joy.  My experience has been on a various RTOSes but mostly on VxWorks. Recently, I wrote a network driver for a new gigabit Ethernet controller for QNX

VxWorks 7 VxBus device-specific parameters

2019-10-06T20:08:50+01:00October 1, 2019|Blog|

Using VxWorks 7 VxBus device-specific parameters Add flexibility to your driver configuration using device-specific parameters. A couple of years ago we developed a VxWorks 7 BSP for the Renesas R-Car H3 SIP evaluation board. This included developing drivers for the main SoC interfaces: serial, Ethernet, MMC, I2C, GPIO and PCI Express.  I wrote the PCI

Go to Top