NetBurner 3.5.6
PDF Version
fsl_common.h File Reference
#include <assert.h>
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include "MIMXRT1061.h"
#include "fsl_common_arm.h"

Go to the source code of this file.

Macros

#define FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ   1
 Macro to use the default weak IRQ handler in drivers.
 
#define MAKE_STATUS(group, code)   ((((group)*100L) + (code)))
 Construct a status code value from a group and code number.
 
#define MAKE_VERSION(major, minor, bugfix)   (((major)*65536L) + ((minor)*256L) + (bugfix))
 Construct the version number for drivers.
 
#define ARRAY_SIZE(x)   (sizeof(x) / sizeof((x)[0]))
 Computes the number of elements in an array.
 
Min/max macros
UINT16_MAX/UINT32_MAX value

Driver version

#define FSL_COMMON_DRIVER_VERSION   (MAKE_VERSION(2, 4, 0))
 common driver version.
 
#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
 
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_SNT = 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
}
 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...
 
typedef int32_t status_t
 Type used for all status and error return values.
 

Suppress fallthrough warning macro

void * SDK_Malloc (size_t size, size_t alignbytes)
 Allocate memory with given alignment and aligned size.
 
void SDK_Free (void *ptr)
 Free memory.
 
void SDK_DelayAtLeastUs (uint32_t delayTime_us, uint32_t coreClock_Hz)
 Delay at least for some time. 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.
 

Macro Definition Documentation

◆ DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM

#define DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM   5U

Debug console based on FLEXCOMM.

◆ DEBUG_CONSOLE_DEVICE_TYPE_IUART

#define DEBUG_CONSOLE_DEVICE_TYPE_IUART   6U

Debug console based on i.MX UART.

◆ DEBUG_CONSOLE_DEVICE_TYPE_LPSCI

#define DEBUG_CONSOLE_DEVICE_TYPE_LPSCI   3U

Debug console based on LPSCI.

◆ DEBUG_CONSOLE_DEVICE_TYPE_LPUART

#define DEBUG_CONSOLE_DEVICE_TYPE_LPUART   2U

Debug console based on LPUART.

◆ DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART

#define DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART   8U

Debug console based on LPC_USART.

◆ DEBUG_CONSOLE_DEVICE_TYPE_NONE

#define DEBUG_CONSOLE_DEVICE_TYPE_NONE   0U

No debug console.

◆ DEBUG_CONSOLE_DEVICE_TYPE_QSCI

#define DEBUG_CONSOLE_DEVICE_TYPE_QSCI   10U

Debug console based on QSCI.

◆ DEBUG_CONSOLE_DEVICE_TYPE_SWO

#define DEBUG_CONSOLE_DEVICE_TYPE_SWO   9U

Debug console based on SWO.

◆ DEBUG_CONSOLE_DEVICE_TYPE_UART

#define DEBUG_CONSOLE_DEVICE_TYPE_UART   1U

Debug console based on UART.

◆ DEBUG_CONSOLE_DEVICE_TYPE_USBCDC

#define DEBUG_CONSOLE_DEVICE_TYPE_USBCDC   4U

Debug console based on USBCDC.

◆ DEBUG_CONSOLE_DEVICE_TYPE_VUSART

#define DEBUG_CONSOLE_DEVICE_TYPE_VUSART   7U

Debug console based on LPC_VUSART.

◆ MAKE_VERSION

#define MAKE_VERSION ( major,
minor,
bugfix )   (((major)*65536L) + ((minor)*256L) + (bugfix))

Construct the version number for drivers.

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

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Generic status return codes.

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.

◆ _status_groups

Status group numbers.

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_SNT 

Group number for SNT 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.

Function Documentation

◆ SDK_DelayAtLeastUs()

void SDK_DelayAtLeastUs ( uint32_t delayTime_us,
uint32_t coreClock_Hz )

Delay at least for some time. 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.

◆ SDK_Free()

void SDK_Free ( void * ptr)

Free memory.

Parameters
ptrThe memory to be release.

◆ SDK_Malloc()

void * SDK_Malloc ( size_t size,
size_t alignbytes )

Allocate memory with given alignment and aligned size.

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.