MCUXpresso SDK API Reference Manual  Rev 2.15.000
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Common Driver

Overview

The MCUXpresso SDK provides a driver for the common module of MCUXpresso SDK devices.

Macros

#define FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ   1
 Macro to use the default weak IRQ handler in drivers. More...
 
#define MAKE_STATUS(group, code)   ((((group)*100L) + (code)))
 Construct a status code value from a group and code number. More...
 
#define MAKE_VERSION(major, minor, bugfix)   (((major)*65536L) + ((minor)*256L) + (bugfix))
 Construct the version number for drivers. More...
 
#define ARRAY_SIZE(x)   (sizeof(x) / sizeof((x)[0]))
 Computes the number of elements in an array. More...
 
#define SUPPRESS_FALL_THROUGH_WARNING()
 For switch case code block, if case section ends without "break;" statement, there wil be fallthrough warning with compiler flag -Wextra or -Wimplicit-fallthrough=n when using armgcc. More...
 

Typedefs

typedef int32_t status_t
 Type used for all status and error return values. More...
 

Enumerations

enum  _status_groups {
  kStatusGroup_Generic = 0,
  kStatusGroup_FLASH = 1,
  kStatusGroup_LPSPI = 4,
  kStatusGroup_FLEXIO_SPI = 5,
  kStatusGroup_DSPI = 6,
  kStatusGroup_FLEXIO_UART = 7,
  kStatusGroup_FLEXIO_I2C = 8,
  kStatusGroup_LPI2C = 9,
  kStatusGroup_UART = 10,
  kStatusGroup_I2C = 11,
  kStatusGroup_LPSCI = 12,
  kStatusGroup_LPUART = 13,
  kStatusGroup_SPI = 14,
  kStatusGroup_XRDC = 15,
  kStatusGroup_SEMA42 = 16,
  kStatusGroup_SDHC = 17,
  kStatusGroup_SDMMC = 18,
  kStatusGroup_SAI = 19,
  kStatusGroup_MCG = 20,
  kStatusGroup_SCG = 21,
  kStatusGroup_SDSPI = 22,
  kStatusGroup_FLEXIO_I2S = 23,
  kStatusGroup_FLEXIO_MCULCD = 24,
  kStatusGroup_FLASHIAP = 25,
  kStatusGroup_FLEXCOMM_I2C = 26,
  kStatusGroup_I2S = 27,
  kStatusGroup_IUART = 28,
  kStatusGroup_CSI = 29,
  kStatusGroup_MIPI_DSI = 30,
  kStatusGroup_SDRAMC = 35,
  kStatusGroup_POWER = 39,
  kStatusGroup_ENET = 40,
  kStatusGroup_PHY = 41,
  kStatusGroup_TRGMUX = 42,
  kStatusGroup_SMARTCARD = 43,
  kStatusGroup_LMEM = 44,
  kStatusGroup_QSPI = 45,
  kStatusGroup_DMA = 50,
  kStatusGroup_EDMA = 51,
  kStatusGroup_DMAMGR = 52,
  kStatusGroup_FLEXCAN = 53,
  kStatusGroup_LTC = 54,
  kStatusGroup_FLEXIO_CAMERA = 55,
  kStatusGroup_LPC_SPI = 56,
  kStatusGroup_LPC_USART = 57,
  kStatusGroup_DMIC = 58,
  kStatusGroup_SDIF = 59,
  kStatusGroup_SPIFI = 60,
  kStatusGroup_OTP = 61,
  kStatusGroup_MCAN = 62,
  kStatusGroup_CAAM = 63,
  kStatusGroup_ECSPI = 64,
  kStatusGroup_USDHC = 65,
  kStatusGroup_LPC_I2C = 66,
  kStatusGroup_DCP = 67,
  kStatusGroup_MSCAN = 68,
  kStatusGroup_ESAI = 69,
  kStatusGroup_FLEXSPI = 70,
  kStatusGroup_MMDC = 71,
  kStatusGroup_PDM = 72,
  kStatusGroup_SDMA = 73,
  kStatusGroup_ICS = 74,
  kStatusGroup_SPDIF = 75,
  kStatusGroup_LPC_MINISPI = 76,
  kStatusGroup_HASHCRYPT = 77,
  kStatusGroup_LPC_SPI_SSP = 78,
  kStatusGroup_I3C = 79,
  kStatusGroup_LPC_I2C_1 = 97,
  kStatusGroup_NOTIFIER = 98,
  kStatusGroup_DebugConsole = 99,
  kStatusGroup_SEMC = 100,
  kStatusGroup_ApplicationRangeStart = 101,
  kStatusGroup_IAP = 102,
  kStatusGroup_SFA = 103,
  kStatusGroup_SPC = 104,
  kStatusGroup_PUF = 105,
  kStatusGroup_TOUCH_PANEL = 106,
  kStatusGroup_VBAT = 107,
  kStatusGroup_HAL_GPIO = 121,
  kStatusGroup_HAL_UART = 122,
  kStatusGroup_HAL_TIMER = 123,
  kStatusGroup_HAL_SPI = 124,
  kStatusGroup_HAL_I2C = 125,
  kStatusGroup_HAL_FLASH = 126,
  kStatusGroup_HAL_PWM = 127,
  kStatusGroup_HAL_RNG = 128,
  kStatusGroup_HAL_I2S = 129,
  kStatusGroup_HAL_ADC_SENSOR = 130,
  kStatusGroup_TIMERMANAGER = 135,
  kStatusGroup_SERIALMANAGER = 136,
  kStatusGroup_LED = 137,
  kStatusGroup_BUTTON = 138,
  kStatusGroup_EXTERN_EEPROM = 139,
  kStatusGroup_SHELL = 140,
  kStatusGroup_MEM_MANAGER = 141,
  kStatusGroup_LIST = 142,
  kStatusGroup_OSA = 143,
  kStatusGroup_COMMON_TASK = 144,
  kStatusGroup_MSG = 145,
  kStatusGroup_SDK_OCOTP = 146,
  kStatusGroup_SDK_FLEXSPINOR = 147,
  kStatusGroup_CODEC = 148,
  kStatusGroup_ASRC = 149,
  kStatusGroup_OTFAD = 150,
  kStatusGroup_SDIOSLV = 151,
  kStatusGroup_MECC = 152,
  kStatusGroup_ENET_QOS = 153,
  kStatusGroup_LOG = 154,
  kStatusGroup_I3CBUS = 155,
  kStatusGroup_QSCI = 156,
  kStatusGroup_ELEMU = 157,
  kStatusGroup_QUEUEDSPI = 158,
  kStatusGroup_POWER_MANAGER = 159,
  kStatusGroup_IPED = 160,
  kStatusGroup_ELS_PKC = 161,
  kStatusGroup_CSS_PKC = 162,
  kStatusGroup_HOSTIF = 163,
  kStatusGroup_CLIF = 164,
  kStatusGroup_BMA = 165,
  kStatusGroup_NETC = 166,
  kStatusGroup_ELE = 167
}
 Status group numbers. More...
 
enum  {
  kStatus_Success = MAKE_STATUS(kStatusGroup_Generic, 0),
  kStatus_Fail = MAKE_STATUS(kStatusGroup_Generic, 1),
  kStatus_ReadOnly = MAKE_STATUS(kStatusGroup_Generic, 2),
  kStatus_OutOfRange = MAKE_STATUS(kStatusGroup_Generic, 3),
  kStatus_InvalidArgument = MAKE_STATUS(kStatusGroup_Generic, 4),
  kStatus_Timeout = MAKE_STATUS(kStatusGroup_Generic, 5),
  kStatus_NoTransferInProgress,
  kStatus_Busy = MAKE_STATUS(kStatusGroup_Generic, 7),
  kStatus_NoData
}
 Generic status return codes. More...
 

Functions

void * SDK_Malloc (size_t size, size_t alignbytes)
 Allocate memory with given alignment and aligned size. More...
 
void SDK_Free (void *ptr)
 Free memory. More...
 
void SDK_DelayAtLeastUs (uint32_t delayTime_us, uint32_t coreClock_Hz)
 Delay at least for some time. More...
 

Driver version

#define FSL_COMMON_DRIVER_VERSION   (MAKE_VERSION(2, 4, 0))
 common driver version. More...
 

Debug console type definition.

#define DEBUG_CONSOLE_DEVICE_TYPE_NONE   0U
 No debug console. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_UART   1U
 Debug console based on UART. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_LPUART   2U
 Debug console based on LPUART. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_LPSCI   3U
 Debug console based on LPSCI. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_USBCDC   4U
 Debug console based on USBCDC. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM   5U
 Debug console based on FLEXCOMM. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_IUART   6U
 Debug console based on i.MX UART. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_VUSART   7U
 Debug console based on LPC_VUSART. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART   8U
 Debug console based on LPC_USART. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_SWO   9U
 Debug console based on SWO. More...
 
#define DEBUG_CONSOLE_DEVICE_TYPE_QSCI   10U
 Debug console based on QSCI. More...
 

Min/max macros

#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 Computes the minimum of a and b. More...
 
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 Computes the maximum of a and b. More...
 

UINT16_MAX/UINT32_MAX value

#define UINT16_MAX   ((uint16_t)-1)
 Max value of uint16_t type. More...
 
#define UINT32_MAX   ((uint32_t)-1)
 Max value of uint32_t type. More...
 

Macro Definition Documentation

#define FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ   1
#define MAKE_STATUS (   group,
  code 
)    ((((group)*100L) + (code)))
#define MAKE_VERSION (   major,
  minor,
  bugfix 
)    (((major)*65536L) + ((minor)*256L) + (bugfix))

The driver version is a 32-bit number, for both 32-bit platforms(such as Cortex M) and 16-bit platforms(such as DSC).

| Unused    || Major Version || Minor Version ||  Bug Fix    |
31        25  24           17  16            9  8            0
#define FSL_COMMON_DRIVER_VERSION   (MAKE_VERSION(2, 4, 0))
#define DEBUG_CONSOLE_DEVICE_TYPE_NONE   0U
#define DEBUG_CONSOLE_DEVICE_TYPE_UART   1U
#define DEBUG_CONSOLE_DEVICE_TYPE_LPUART   2U
#define DEBUG_CONSOLE_DEVICE_TYPE_LPSCI   3U
#define DEBUG_CONSOLE_DEVICE_TYPE_USBCDC   4U
#define DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM   5U
#define DEBUG_CONSOLE_DEVICE_TYPE_IUART   6U
#define DEBUG_CONSOLE_DEVICE_TYPE_VUSART   7U
#define DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART   8U
#define DEBUG_CONSOLE_DEVICE_TYPE_SWO   9U
#define DEBUG_CONSOLE_DEVICE_TYPE_QSCI   10U
#define MIN (   a,
 
)    (((a) < (b)) ? (a) : (b))
#define MAX (   a,
 
)    (((a) > (b)) ? (a) : (b))
#define ARRAY_SIZE (   x)    (sizeof(x) / sizeof((x)[0]))
#define UINT16_MAX   ((uint16_t)-1)
#define UINT32_MAX   ((uint32_t)-1)
#define SUPPRESS_FALL_THROUGH_WARNING ( )

To suppress this warning, "SUPPRESS_FALL_THROUGH_WARNING();" need to be added at the end of each case section which misses "break;"statement.

Typedef Documentation

typedef int32_t status_t

Enumeration Type Documentation

Enumerator
kStatusGroup_Generic 

Group number for generic status codes.

kStatusGroup_FLASH 

Group number for FLASH status codes.

kStatusGroup_LPSPI 

Group number for LPSPI status codes.

kStatusGroup_FLEXIO_SPI 

Group number for FLEXIO SPI status codes.

kStatusGroup_DSPI 

Group number for DSPI status codes.

kStatusGroup_FLEXIO_UART 

Group number for FLEXIO UART status codes.

kStatusGroup_FLEXIO_I2C 

Group number for FLEXIO I2C status codes.

kStatusGroup_LPI2C 

Group number for LPI2C status codes.

kStatusGroup_UART 

Group number for UART status codes.

kStatusGroup_I2C 

Group number for UART status codes.

kStatusGroup_LPSCI 

Group number for LPSCI status codes.

kStatusGroup_LPUART 

Group number for LPUART status codes.

kStatusGroup_SPI 

Group number for SPI status code.

kStatusGroup_XRDC 

Group number for XRDC status code.

kStatusGroup_SEMA42 

Group number for SEMA42 status code.

kStatusGroup_SDHC 

Group number for SDHC status code.

kStatusGroup_SDMMC 

Group number for SDMMC status code.

kStatusGroup_SAI 

Group number for SAI status code.

kStatusGroup_MCG 

Group number for MCG status codes.

kStatusGroup_SCG 

Group number for SCG status codes.

kStatusGroup_SDSPI 

Group number for SDSPI status codes.

kStatusGroup_FLEXIO_I2S 

Group number for FLEXIO I2S status codes.

kStatusGroup_FLEXIO_MCULCD 

Group number for FLEXIO LCD status codes.

kStatusGroup_FLASHIAP 

Group number for FLASHIAP status codes.

kStatusGroup_FLEXCOMM_I2C 

Group number for FLEXCOMM I2C status codes.

kStatusGroup_I2S 

Group number for I2S status codes.

kStatusGroup_IUART 

Group number for IUART status codes.

kStatusGroup_CSI 

Group number for CSI status codes.

kStatusGroup_MIPI_DSI 

Group number for MIPI DSI status codes.

kStatusGroup_SDRAMC 

Group number for SDRAMC status codes.

kStatusGroup_POWER 

Group number for POWER status codes.

kStatusGroup_ENET 

Group number for ENET status codes.

kStatusGroup_PHY 

Group number for PHY status codes.

kStatusGroup_TRGMUX 

Group number for TRGMUX status codes.

kStatusGroup_SMARTCARD 

Group number for SMARTCARD status codes.

kStatusGroup_LMEM 

Group number for LMEM status codes.

kStatusGroup_QSPI 

Group number for QSPI status codes.

kStatusGroup_DMA 

Group number for DMA status codes.

kStatusGroup_EDMA 

Group number for EDMA status codes.

kStatusGroup_DMAMGR 

Group number for DMAMGR status codes.

kStatusGroup_FLEXCAN 

Group number for FlexCAN status codes.

kStatusGroup_LTC 

Group number for LTC status codes.

kStatusGroup_FLEXIO_CAMERA 

Group number for FLEXIO CAMERA status codes.

kStatusGroup_LPC_SPI 

Group number for LPC_SPI status codes.

kStatusGroup_LPC_USART 

Group number for LPC_USART status codes.

kStatusGroup_DMIC 

Group number for DMIC status codes.

kStatusGroup_SDIF 

Group number for SDIF status codes.

kStatusGroup_SPIFI 

Group number for SPIFI status codes.

kStatusGroup_OTP 

Group number for OTP status codes.

kStatusGroup_MCAN 

Group number for MCAN status codes.

kStatusGroup_CAAM 

Group number for CAAM status codes.

kStatusGroup_ECSPI 

Group number for ECSPI status codes.

kStatusGroup_USDHC 

Group number for USDHC status codes.

kStatusGroup_LPC_I2C 

Group number for LPC_I2C status codes.

kStatusGroup_DCP 

Group number for DCP status codes.

kStatusGroup_MSCAN 

Group number for MSCAN status codes.

kStatusGroup_ESAI 

Group number for ESAI status codes.

kStatusGroup_FLEXSPI 

Group number for FLEXSPI status codes.

kStatusGroup_MMDC 

Group number for MMDC status codes.

kStatusGroup_PDM 

Group number for MIC status codes.

kStatusGroup_SDMA 

Group number for SDMA status codes.

kStatusGroup_ICS 

Group number for ICS status codes.

kStatusGroup_SPDIF 

Group number for SPDIF status codes.

kStatusGroup_LPC_MINISPI 

Group number for LPC_MINISPI status codes.

kStatusGroup_HASHCRYPT 

Group number for Hashcrypt status codes.

kStatusGroup_LPC_SPI_SSP 

Group number for LPC_SPI_SSP status codes.

kStatusGroup_I3C 

Group number for I3C status codes.

kStatusGroup_LPC_I2C_1 

Group number for LPC_I2C_1 status codes.

kStatusGroup_NOTIFIER 

Group number for NOTIFIER status codes.

kStatusGroup_DebugConsole 

Group number for debug console status codes.

kStatusGroup_SEMC 

Group number for SEMC status codes.

kStatusGroup_ApplicationRangeStart 

Starting number for application groups.

kStatusGroup_IAP 

Group number for IAP status codes.

kStatusGroup_SFA 

Group number for SFA status codes.

kStatusGroup_SPC 

Group number for SPC status codes.

kStatusGroup_PUF 

Group number for PUF status codes.

kStatusGroup_TOUCH_PANEL 

Group number for touch panel status codes.

kStatusGroup_VBAT 

Group number for VBAT status codes.

kStatusGroup_HAL_GPIO 

Group number for HAL GPIO status codes.

kStatusGroup_HAL_UART 

Group number for HAL UART status codes.

kStatusGroup_HAL_TIMER 

Group number for HAL TIMER status codes.

kStatusGroup_HAL_SPI 

Group number for HAL SPI status codes.

kStatusGroup_HAL_I2C 

Group number for HAL I2C status codes.

kStatusGroup_HAL_FLASH 

Group number for HAL FLASH status codes.

kStatusGroup_HAL_PWM 

Group number for HAL PWM status codes.

kStatusGroup_HAL_RNG 

Group number for HAL RNG status codes.

kStatusGroup_HAL_I2S 

Group number for HAL I2S status codes.

kStatusGroup_HAL_ADC_SENSOR 

Group number for HAL ADC SENSOR status codes.

kStatusGroup_TIMERMANAGER 

Group number for TiMER MANAGER status codes.

kStatusGroup_SERIALMANAGER 

Group number for SERIAL MANAGER status codes.

kStatusGroup_LED 

Group number for LED status codes.

kStatusGroup_BUTTON 

Group number for BUTTON status codes.

kStatusGroup_EXTERN_EEPROM 

Group number for EXTERN EEPROM status codes.

kStatusGroup_SHELL 

Group number for SHELL status codes.

kStatusGroup_MEM_MANAGER 

Group number for MEM MANAGER status codes.

kStatusGroup_LIST 

Group number for List status codes.

kStatusGroup_OSA 

Group number for OSA status codes.

kStatusGroup_COMMON_TASK 

Group number for Common task status codes.

kStatusGroup_MSG 

Group number for messaging status codes.

kStatusGroup_SDK_OCOTP 

Group number for OCOTP status codes.

kStatusGroup_SDK_FLEXSPINOR 

Group number for FLEXSPINOR status codes.

kStatusGroup_CODEC 

Group number for codec status codes.

kStatusGroup_ASRC 

Group number for codec status ASRC.

kStatusGroup_OTFAD 

Group number for codec status codes.

kStatusGroup_SDIOSLV 

Group number for SDIOSLV status codes.

kStatusGroup_MECC 

Group number for MECC status codes.

kStatusGroup_ENET_QOS 

Group number for ENET_QOS status codes.

kStatusGroup_LOG 

Group number for LOG status codes.

kStatusGroup_I3CBUS 

Group number for I3CBUS status codes.

kStatusGroup_QSCI 

Group number for QSCI status codes.

kStatusGroup_ELEMU 

Group number for ELEMU status codes.

kStatusGroup_QUEUEDSPI 

Group number for QSPI status codes.

kStatusGroup_POWER_MANAGER 

Group number for POWER_MANAGER status codes.

kStatusGroup_IPED 

Group number for IPED status codes.

kStatusGroup_ELS_PKC 

Group number for ELS PKC status codes.

kStatusGroup_CSS_PKC 

Group number for CSS PKC status codes.

kStatusGroup_HOSTIF 

Group number for HOSTIF status codes.

kStatusGroup_CLIF 

Group number for CLIF status codes.

kStatusGroup_BMA 

Group number for BMA status codes.

kStatusGroup_NETC 

Group number for NETC status codes.

kStatusGroup_ELE 

Group number for ELE status codes.

anonymous enum
Enumerator
kStatus_Success 

Generic status for Success.

kStatus_Fail 

Generic status for Fail.

kStatus_ReadOnly 

Generic status for read only failure.

kStatus_OutOfRange 

Generic status for out of range access.

kStatus_InvalidArgument 

Generic status for invalid argument check.

kStatus_Timeout 

Generic status for timeout.

kStatus_NoTransferInProgress 

Generic status for no transfer in progress.

kStatus_Busy 

Generic status for module is busy.

kStatus_NoData 

Generic status for no data is found for the operation.

Function Documentation

void* SDK_Malloc ( size_t  size,
size_t  alignbytes 
)

This is provided to support the dynamically allocated memory used in cache-able region.

Parameters
sizeThe length required to malloc.
alignbytesThe alignment size.
Return values
Theallocated memory.
void SDK_Free ( void *  ptr)
Parameters
ptrThe memory to be release.
void SDK_DelayAtLeastUs ( uint32_t  delayTime_us,
uint32_t  coreClock_Hz 
)

Please note that, this API uses while loop for delay, different run-time environments make the time not precise, if precise delay count was needed, please implement a new delay function with hardware timer.

Parameters
delayTime_usDelay time in unit of microsecond.
coreClock_HzCore clock frequency with Hz.