This is usually included in the HAL in the embedded software model.

The device driver includes:

  • Data structures
    • Variables needed to access the device interface registers
    • Variables associated with the state of the device
    • Data buffers
  • Initialization functions
    • Device initialization
    • Synchronization initialization
    • Initialization of driver variables
  • I/O functions
    • Functions to input from the device and/or output to the device (read/write)
  • Interrupt Service Routines