Shown below is a matrix of available drivers.
Driver Interfaces | CC13xx/CC26xx Common Implementations | CC13x0/CC26x0 Implementations | CC13x2/CC26x2 Implementations |
---|---|---|---|
ADC.h | ADCCC26XX.h | ||
ADCBuf.h | ADCBufCC26XX.h | ADCBufCC26X2.h | |
AESCBC.h | AESCBCCC26XX.h | AESCBCCC26XX.h | |
AESCCM.h | AESCCMCC26XX.h | AESCCMCC26XX.h | |
AESCTR.h | AESCTRCC26XX.h | AESCTRCC26XX.h | |
AESCTRDRBG.h | AESCTRDRBGXX.h | AESCTRDRBGXX.h | |
AESECB.h | AESECBCC26XX.h | AESECBCC26XX.h | |
AESGCM.h | AESGCMCC26XX.h | ||
Crypto | CryptoCC26XX.h | ||
ECDH.h | ECDHCC26X2.h | ||
ECDSA.h | ECDSACC26X2.h | ||
ECJPAKE.h | ECJPAKECC26X2.h | ||
GPIO.h | GPIOCC26XX.h | ||
GPTimer | GPTimerCC26XX.h | ||
I2C.h | I2CCC26XX.h | ||
NVS.h | NVSCC26XX.h | ||
NVSRAM.h | |||
NVSSPI25X.h | |||
PDM | PDMCC26XX.h | ||
PIN.h | PINCC26XX.h | ||
Power.h | PowerCC26XX.h | PowerCC26X2.h | |
PWM.h | PWMTimerCC26XX.h | ||
RF | RF.h | ||
SHA2.h | SHA2CC26X2.h | ||
SD.h | SDSPI.h | ||
SPI.h | SPICC26XXDMA.h | SPICC26X2DMA.h | |
TRNG.h | TRNGCC26XX.h | ||
UART.h | UARTCC26XX.h | ||
UDMA | UDMACC26XX.h | ||
Watchdog.h | WatchdogCC26XX.h |
The Display driver is designed to abstract operations & considerations specific to a given output method.
Display Driver Interface | Implementations |
---|---|
Display.h | DisplayDogm1286.h DisplayHost.h DisplayExt.h DisplayUart.h |
These utilities are helper modules available to drivers.
Module | Description |
---|---|
List.h | Double linked list |
Random.h | Fast and light-weight pseudo random number generator |
RingBuf.h | Array-based ring buffer for bytes |
SDFatFS.h | Wrapper to enable the use of file systems for the SD driver. |
SPIFFSNVS.h | Enables NVS as the physical layer to read/write memory for the SPIFFS file system |
The generic driver interface defines a configuration structure using the typedef
keyword. The name of this declared type follows the naming pattern <driver>_Config
. A driver is configured by declaring an array of this configuration data structure. Each config
array index contains pointers to other data objects necessary for the driver to function at runtime. These data objects may include a hardware attributes, a function table, and object memory. Multiple indexes of the config
array should not share these data objects--with the exception of the function table. Each index of the config
array supports an independent instance of the driver.
<driver>_Config
, must have a specific C identifier. This identifies follows the case-sensitive pattern <driver>_config
.<driver>_config
. This must also have a specific C identifier following the case-sensitive pattern <driver>_count
. The data type must be a uint_least8_t
.The driver interface is joined together during the link process at build time. The <driver>_config
and <driver>_count
symbols are resolved.
The driver objects are device specific structures that hold data for an instance of a driver. The driver objects are used exclusively by the driver and should never be accessed by the application. Device specific drivers define an object structure as a new type using the typedef
keyword. Each index in a driver's configuration will contain a pointer to a driver object.
The hardware attributes, also commonly referred to as HWAttrs
, are device specific settings that typically do not change during runtime operation of a driver. The hardware attributes aid in abstracting the generic driver interface from the hardware. Device specific drivers define a hardware attribute structure as a new type using the typedef
keyword. Each index in a driver's configuration will contain a pointer to a hardware attribute structure.
The function pointer table is a structure simply containing pointers to functions. Each index in a driver's configuration will contain a pointer to a function pointer table. The TI-Driver's interface uses function pointers to abstract a generic driver from a device specific driver. Each device specific driver declares a default function pointer table which may be referenced by default in the driver's configuration.
The NoRTOS framework module is provided to enable use of drivers without an underlying operating system. The module provides interfaces used by drivers to perform delays, block execution, register interrupts and more. NoRTOS module documentation and usage can be found: