This is the documentation for the latest (main) development branch. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version.

Peripheral Drivers

Driver Architecture

Driver Architecture Diagram
  • LL (Low Layer)

    Used for encapsulating various Chip register operations.

  • HAL (Hardware Adaption Layer)

    Implements basic hardware functions based on LL layer interfaces.

  • Controller Driver

    Implements various functionalities of controllers within the Chip based on HAL layer interfaces, with OS dependencies, and capabilities for mutual exclusion, semaphore, and other resource protections. (Controller types include: I2C, SPI, DMA, Timer, eFuse/OTP, WDT, I2S, Clock, CAN, USB, SDIO, IRQ, PWM, ADC, LCD, Touch, Uart, RTC, PMU, Crypto Engine, GPIO, etc.)

  • Device Driver

    Implements the functions for external device drivers of the Chip based on Controller Driver interfaces (e.g., sensors, EEPROM, SIP Flash, TFT screen, etc.).

  • Device Manager

    A device management unit used for unified management of all device configurations (controllers and external devices) in the current project, similar to the Linux device tree functionality.

Users can refer to the Example to develop applications using the Controller Driver API.

Device Table Introduction

WM IoT SDK uses device table to manage device configuration, which separates driver code from device configuration and makes it more convenient to use.

Driver Introduction