EFM32 Pearl Gecko 12 Software Documentation  efm32pg12-doc-5.1.2
EMDRV

Detailed Description

energyAware drivers

EMDRV is a set of function specific high performance drivers for EFM32, EZR32 and EFR32 on-chip peripherals. Drivers are typically DMA based and are using all available low-energy features. For most drivers, the API offers both synchronous and asynchronous functions. The APIs are fully reentrant and callback based.

Most drivers are compile-time configurable to allow the highest possible code size optimization for the application. Compile-time configuration is defined in *_config.h files. Templates for the configuration files can be found in emdrv\config.

Note
EMDRV APIs use Ecode_t to return status.

With the exception of ezradiodrv, EMDRV does not implement RF support. Please refer to stack documentation for more information.

Modules

 DMADRV
 DMADRV Direct Memory Access Driver.
 
 EZRADIODRV
 EZR32 EzRadio Peripheral Interface Driver.
 
 GPIOINT
 GPIOINT General Purpose Input/Output Interrupt dispatcher.
 
 NVM
 NVM Non-volatile Memory Wear-Leveling Driver.
 
 RTCDRV
 Real-time Clock Driver.
 
 SLEEP
 Energy Modes management driver.
 
 SPIDRV
 SPIDRV Serial Peripheral Interface Driver.
 
 TEMPDRV
 TEMPDRV Temperature Sensor Driver.
 
 UARTDRV
 UARTDRV Universal Asynchronous Receiver/Transmitter Driver.
 
 USTIMER
 USTIMER Microsecond Delay Timer Driver.
 

Macros

#define ECODE_EMDRV_AESDRV_BASE   ( ECODE_EMDRV_BASE | 0x00005000 )
 Base value for AESDRV error codes.
 
#define ECODE_EMDRV_BASE   ( 0xF0000000 )
 Base value for all EMDRV errorcodes.
 
#define ECODE_EMDRV_CRYPTO_BASE   ( ECODE_EMDRV_BASE | 0x0000C000 )
 Base value for CRYPTO error codes.
 
#define ECODE_EMDRV_DMADRV_BASE   ( ECODE_EMDRV_BASE | 0x00008000 )
 Base value for DMADRV error codes.
 
#define ECODE_EMDRV_ECC_BASE   ( ECODE_EMDRV_BASE | 0x00006000 )
 Base value for ECC error codes.
 
#define ECODE_EMDRV_EZRADIODRV_BASE   ( ECODE_EMDRV_BASE | 0x00009000 )
 Base value for EZRADIODRV error codes.
 
#define ECODE_EMDRV_NVM_BASE   ( ECODE_EMDRV_BASE | 0x00003000 )
 Base value for NVM error codes.
 
#define ECODE_EMDRV_RSADRV_BASE   ( ECODE_EMDRV_BASE | 0x0000B000 )
 Base value for RSADRV error codes.
 
#define ECODE_EMDRV_RTCDRV_BASE   ( ECODE_EMDRV_BASE | 0x00001000 )
 Base value for RTCDRV error codes.
 
#define ECODE_EMDRV_SHADRV_BASE   ( ECODE_EMDRV_BASE | 0x0000A000 )
 Base value for SHADRV error codes.
 
#define ECODE_EMDRV_SPIDRV_BASE   ( ECODE_EMDRV_BASE | 0x00002000 )
 Base value for SPIDRV error codes.
 
#define ECODE_EMDRV_TEMPDRV_BASE   ( ECODE_EMDRV_BASE | 0x0000D000 )
 Base value for TEMPDRV error codes.
 
#define ECODE_EMDRV_UARTDRV_BASE   ( ECODE_EMDRV_BASE | 0x00007000 )
 Base value for UARTDRV error codes.
 
#define ECODE_EMDRV_USTIMER_BASE   ( ECODE_EMDRV_BASE | 0x00004000 )
 Base value for USTIMER error codes.
 
#define ECODE_OK   ( 0 )
 Generic success return value.
 

Typedefs

typedef uint32_t Ecode_t
 Typedef for API function error code return values. More...
 

Typedef Documentation

typedef uint32_t Ecode_t

Typedef for API function error code return values.

Bit 24-31: Component, for example EMDRV
Bit 16-23: Module, for example UARTDRV or RTCDRV
Bit 0-15: Error code

Definition at line 51 of file ecode.h.