1 MPLAB Harmony v3 Driver Features

Asynchronous and Synchronous Driver Modes

  • Asynchronous Mode
    • Non-blocking Application Program Interfaces (APIs).
    • Allows queuing of multiple requests. Each instance of an Asynchronous driver has a dedicated queue.
    • Works seamlessly in bare-metal and RTOS environment.
    • Interrupt and thread-safe.
  • Synchronous Mode
    • Blocking APIs
    • Support only RTOS environment
    • Interrupt and thread-safe
Note: For additional information on Asynchronous and Synchronous driver modes, refer to the section Asynchronous and Synchronous Drivers.

Multiple Client Support

This feature seamlessly handle client-specific differences. Both Synchronous and Asynchronous drivers allow multiple clients to a driver instance. For example, there can be multiple application clients to a SPI driver instance having multiple SPI slaves. The SPI slave specific information, such as clock phase, clock polarity, clock speed, and chip select are all handled by the SPI driver based on the client that submitted the request.

Multiple Instance Support

This feature seamlessly handles the multiple instances of a peripheral. For example, there may be three instances of SPI: SPI0, SPI1, and SPI2. The SPI driver manages three peripheral instances by creating three driver instances and attaching a client to each of them.

Cache Management

Drivers manage cache-related operations on parts (for example, on PIC32MZ, SAME70, and SAMV71) that have a data cache, thereby simplifying the application development.