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
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
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
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
In the first part of this two part article we will look at why DMA is used and the benefits it can bring for overall system performance.
Getting an RTOS to run on the Raspberry Pi provides some interesting technical challenges, albeit challenges we have seen on different real-world projects over the years.