![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
The MCUXpresso SDK provides a driver for the common module of MCUXpresso SDK devices.
Macros | |
#define | MAKE_STATUS(group, code) ((((group)*100) + (code))) |
Construct a status code value from a group and code number. More... | |
#define | MAKE_VERSION(major, minor, bugfix) (((major) << 16) | ((minor) << 8) | (bugfix)) |
Construct the version number for drivers. More... | |
#define | DEBUG_CONSOLE_DEVICE_TYPE_NONE 0U |
No debug console. More... | |
#define | DEBUG_CONSOLE_DEVICE_TYPE_UART 1U |
Debug console base on UART. More... | |
#define | DEBUG_CONSOLE_DEVICE_TYPE_LPUART 2U |
Debug console base on LPUART. More... | |
#define | DEBUG_CONSOLE_DEVICE_TYPE_LPSCI 3U |
Debug console base on LPSCI. More... | |
#define | DEBUG_CONSOLE_DEVICE_TYPE_USBCDC 4U |
Debug console base on USBCDC. More... | |
#define | DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM 5U |
Debug console base on USBCDC. More... | |
#define | DEBUG_CONSOLE_DEVICE_TYPE_IUART 6U |
Debug console base on i.MX UART. More... | |
#define | ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) |
Computes the number of elements in an array. More... | |
#define | ADC_RSTS |
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_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_ESAI = 69, kStatusGroup_FLEXSPI = 70, kStatusGroup_NOTIFIER = 98, kStatusGroup_DebugConsole = 99, kStatusGroup_ApplicationRangeStart = 100 } |
Status group numbers. More... | |
enum | _generic_status |
Generic status return codes. More... | |
enum | SYSCON_RSTn_t { kFLASH_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_FLASH_RST_SHIFT), kSPIFI_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_SPIFI_RST_SHIFT), kMUX_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_MUX_RST_SHIFT), kBLE_TG_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_BLE_TIMING_GEN_RST_SHIFT), kIOCON_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_IOCON_RST_SHIFT), kGPIO0_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_GPIO_RST_SHIFT), kPINT_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_PINT_RST_SHIFT), kGINT_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_GINT_RST_SHIFT), kDMA_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_DMA_RST_SHIFT), kWWDT_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_WWDT_RST_SHIFT), kRTC_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_RTC_RST_SHIFT), kANA_INT_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_ANA_INT_CTRL_RST_SHIFT), kWKT_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_WAKE_UP_TIMERS_RST_SHIFT), kMAILBOX_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_MAILBOX_RST_SHIFT), kADC0_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_ADC_RST_SHIFT), kEFUSE_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_EFUSE_RST_SHIFT), kPVT_RST_SHIFT_RSTn = (0 | SYSCON_PRESETCTRL0_PVT_RST_SHIFT), kFC0_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_USART0_RST_SHIFT), kFC1_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_USART1_RST_SHIFT), kFC2_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_I2C0_RST_SHIFT), kFC3_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_I2C1_RST_SHIFT), kFC4_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_SPI0_RST_SHIFT), kFC5_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_SPI1_RST_SHIFT), kIRB_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_IR_RST_SHIFT), kPWM_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_PWM_RST_SHIFT), kRNG_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_RNG_RST_SHIFT), kFC6_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_I2C2_RST_SHIFT), kUSART0_RST_SHIFT_RSTn = kFC0_RST_SHIFT_RSTn, kUSART1_RST_SHIFT_RSTn = kFC1_RST_SHIFT_RSTn, kI2C0_RST_SHIFT_RSTn = kFC2_RST_SHIFT_RSTn, kI2C1_RST_SHIFT_RSTn = kFC3_RST_SHIFT_RSTn, kSPI0_RST_SHIFT_RSTn = kFC4_RST_SHIFT_RSTn, kSPI1_RST_SHIFT_RSTn = kFC5_RST_SHIFT_RSTn, kI2C2_RST_SHIFT_RSTn = kFC6_RST_SHIFT_RSTn, kZIGBEE_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_ZIGBEE_RST_SHIFT), kBLE_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_BLE_RST_SHIFT), kMODEM_MASTER_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_MODEM_MASTER_RST_SHIFT), kAES_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_AES_RST_SHIFT), kRFP_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_RFP_RST_SHIFT), kDMIC_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_DMIC_RST_SHIFT), kTPR_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_TPR_RST_SHIFT), kSHA_RST_SHIFT_RSTn = ((1UL << 16) | SYSCON_PRESETCTRL1_SHA_RST_SHIFT), kCTIMER0_RST_SHIFT_RSTn = ((2UL << 16) | ASYNC_SYSCON_ASYNCPRESETCTRL_CT32B0_SHIFT), kCTIMER1_RST_SHIFT_RSTn = ((2UL << 16) | ASYNC_SYSCON_ASYNCPRESETCTRL_CT32B1_SHIFT) } |
Enumeration for peripheral reset control bits. More... | |
Functions | |
static void | EnableIRQ (IRQn_Type interrupt) |
Enable specific interrupt. More... | |
static void | DisableIRQ (IRQn_Type interrupt) |
Disable specific interrupt. More... | |
static uint32_t | DisableGlobalIRQ (void) |
Disable the global IRQ. More... | |
static void | EnableGlobalIRQ (uint32_t primask) |
Enaable the global IRQ. More... | |
uint32_t | InstallIRQHandler (IRQn_Type irq, uint32_t irqHandler) |
install IRQ handler More... | |
void | EnableDeepSleepIRQ (IRQn_Type interrupt) |
Enable specific interrupt for wake-up from deep-sleep mode. More... | |
void | DisableDeepSleepIRQ (IRQn_Type interrupt) |
Disable specific interrupt for wake-up from deep-sleep mode. More... | |
void | RESET_SetPeripheralReset (reset_ip_name_t peripheral) |
Assert reset to peripheral. More... | |
void | RESET_ClearPeripheralReset (reset_ip_name_t peripheral) |
Clear reset to peripheral. More... | |
void | RESET_PeripheralReset (reset_ip_name_t peripheral) |
Reset peripheral module. More... | |
void | RESET_SystemReset (void) |
Reset the chip. More... | |
Min/max macros | |
#define | MIN(a, b) ((a) < (b) ? (a) : (b)) |
#define | MAX(a, b) ((a) > (b) ? (a) : (b)) |
UINT16_MAX/UINT32_MAX value | |
#define | UINT16_MAX ((uint16_t)-1) |
#define | UINT32_MAX ((uint32_t)-1) |
Timer utilities | |
#define | USEC_TO_COUNT(us, clockFreqInHz) (uint64_t)((uint64_t)us * clockFreqInHz / 1000000U) |
Macro to convert a microsecond period to raw count value. | |
#define | COUNT_TO_USEC(count, clockFreqInHz) (uint64_t)((uint64_t)count * 1000000U / clockFreqInHz) |
Macro to convert a raw count value to microsecond. | |
#define | MSEC_TO_COUNT(ms, clockFreqInHz) (uint64_t)((uint64_t)ms * clockFreqInHz / 1000U) |
Macro to convert a millisecond period to raw count value. | |
#define | COUNT_TO_MSEC(count, clockFreqInHz) (uint64_t)((uint64_t)count * 1000U / clockFreqInHz) |
Macro to convert a raw count value to millisecond. | |
Alignment variable definition macros | |
#define | SDK_ALIGN(var, alignbytes) var |
#define | SDK_SIZEALIGN(var, alignbytes) ((unsigned int)((var) + ((alignbytes)-1)) & (unsigned int)(~(unsigned int)((alignbytes)-1))) |
Macro to change a value to a given size aligned value. | |
#define | SWAP32(x) |
#define MAKE_STATUS | ( | group, | |
code | |||
) | ((((group)*100) + (code))) |
#define MAKE_VERSION | ( | major, | |
minor, | |||
bugfix | |||
) | (((major) << 16) | ((minor) << 8) | (bugfix)) |
#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 ARRAY_SIZE | ( | x | ) | (sizeof(x) / sizeof((x)[0])) |
#define ADC_RSTS |
Array initializers with peripheral reset bits
typedef int32_t status_t |
enum _status_groups |
enum _generic_status |
enum SYSCON_RSTn_t |
Defines the enumeration for peripheral reset control bits in PRESETCTRL/ASYNCPRESETCTRL registers
|
inlinestatic |
Enable the interrupt not routed from intmux.
interrupt | The IRQ number. |
|
inlinestatic |
Disable the interrupt not routed from intmux.
interrupt | The IRQ number. |
|
inlinestatic |
Disable the global interrupt and return the current primask register. User is required to provided the primask register for the EnableGlobalIRQ().
|
inlinestatic |
Set the primask register with the provided primask value but not just enable the primask. The idea is for the convinience of integration of RTOS. some RTOS get its own management mechanism of primask. User is required to use the EnableGlobalIRQ() and DisableGlobalIRQ() in pair.
primask | value of primask register to be restored. The primask value is supposed to be provided by the DisableGlobalIRQ(). |
uint32_t InstallIRQHandler | ( | IRQn_Type | irq, |
uint32_t | irqHandler | ||
) |
irq | IRQ number |
irqHandler | IRQ handler address |
void EnableDeepSleepIRQ | ( | IRQn_Type | interrupt | ) |
Enable the interrupt for wake-up from deep sleep mode. Some interrupts are typically used in sleep mode only and will not occur during deep-sleep mode because relevant clocks are stopped. However, it is possible to enable those clocks (significantly increasing power consumption in the reduced power mode), making these wake-ups possible.
interrupt | The IRQ number. |
void DisableDeepSleepIRQ | ( | IRQn_Type | interrupt | ) |
Disable the interrupt for wake-up from deep sleep mode. Some interrupts are typically used in sleep mode only and will not occur during deep-sleep mode because relevant clocks are stopped. However, it is possible to enable those clocks (significantly increasing power consumption in the reduced power mode), making these wake-ups possible.
interrupt | The IRQ number. |
void RESET_SetPeripheralReset | ( | reset_ip_name_t | peripheral | ) |
Asserts reset signal to specified peripheral module.
peripheral | Assert reset to this peripheral. The enum argument contains encoding of reset register and reset bit position in the reset register. |
void RESET_ClearPeripheralReset | ( | reset_ip_name_t | peripheral | ) |
Clears reset signal to specified peripheral module, allows it to operate.
peripheral | Clear reset to this peripheral. The enum argument contains encoding of reset register and reset bit position in the reset register. |
void RESET_PeripheralReset | ( | reset_ip_name_t | peripheral | ) |
Reset peripheral module.
peripheral | Peripheral to reset. The enum argument contains encoding of reset register and reset bit position in the reset register. |
void RESET_SystemReset | ( | void | ) |
Full software reset of the chip. On reboot, function POWER_GetResetCause() from fsl_power.h will return RESET_SYS_REQ