Individual Customizable Portable Driver Packages

Validated Software offers a variety of portable driver packages that are available with full certification artifacts for any industry.

Valid-232 – Full duplex, interrupt driven RS-232 compatible communications supporting multiple channels and multiple interfaces.

Valid-485 – 2-wire and 4-wire interrupt driven RS-485 communications supporting multiple channels with direction control for 2-wire systems.  Full duplex, half duplex and simplex.

Valid-CAN – Driver and Bus Layer package for CAN communications.

Valid-CRC – Block oriented CRC calculation package supporting CRC-16 an CRC-32.

Valid-Draw – Low level color graphics package for non-windows style graphics.  Supports lines, rectangles, circles with variable thickness borders either filled or empty.  Text support available with multiple fonts and sizes.

Valid-I2C – Standard I2C compatible serial communications driver aimed at register based I/O devices.

Valid-I2CM – Standard I2C compatible serial communications driver for non-volatile memory devices.

Valid-IRQ – Interrupt management package for most processor families.  Supports add/delete of ISR handlers for the application program.

Valid-NAND – NAND Flash driver package featuring read/write/erase in block and arbitrary sizes. Includes bad block management.

Valid-NOR – NOR Flash driver package for bus connected devices.  Features read/write/erase in block and arbitrary sizes.

Valid-SPI – Serial Peripheral Interface driver for register oriented devices.

Valid-SPIM– Serial Peripheral Interface driver for non-volatile NOR Flash and FRAM memory devices.

General Information about VSC Portable Driver Packages

Portable Driver Packages are designed to supply a consistent interface (API) to the application. Each package is developed in 2 layers, a Core package and an associated Port.  The Core is target independent C coded designed to work on any system. With the addition of a processor/compiler specific Port it can be used on any processor.

Users interact only with the Core API. The Port functionality is hidden from direct access.


  • Supports multiple interfaces – Each device channel is configured with the addresses of the supporting port functions.  This allows different devices to be supported by the same Portable Driver Package. E.g., A processor may not contain enough serial ports for the intended application.  The driver supports the use of an external UART with different registers.
  • Compile time configurable functions – Some features/functions are optional and may be removed from the object code by setting a configuration macro.  E.g., A system may not need the Close function, so it can be conditionally removed from the build to avoid “dead” code.
  • Complete source code provided.

Typical API functions

  • GetVersion – Get the product version
  • ModuleInit – Product level initialization
  • DeviceInit – Device initialization
  • Open – Open a channel/device for operation
  • Close – Close a channel/device to operation
  • IoCtrl – Perform device specific I/O operation
  • Read – Read a byte, character or block from the device
  • Write – Write a byte, character or block to the device
  • Xfer – Transfer a byte, character or block to/from the device
  • Erase – Erase a byte or block on a memory device


Port modules have a similar set of functions but they are accessed indirectly by calling the API functions.  The Core fulfills the functional request by calling the required Port functions.

Portable Driver Packages Porting

All Portable Driver Packages may be ported by the customer or VSC can provide a completed Port.

Validation Artifacts

All of the Portable Driver Packages have a matching set of safety critical artifacts available for use in products requiring certification. Packages for Avionics, Industrial, Medical and Transportation are readily available.

Artifacts for the Port portions normally have to modified to match the specific hardware and compiler tools used on the product. Final test artifacts for Ports are available when VSC provides the porting service.

Artifacts include all test plans and procedures, unit and integration test code, test results and full bidirectional tracing from Portable Driver Packages system requirements to software requirements and design, code, test plans and procedures.



Need more information?

Use our: Information Request Form


Phone: 1-303-641-6672