Macros | Enumerator
Ksdk_common

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...
 

Driver version

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_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_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
}
 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 = MAKE_STATUS(kStatusGroup_Generic, 6)
}
 Generic status return codes. More...
 
typedef int32_t status_t
 Type used for all status and error return values. More...
 
#define FSL_COMMON_DRIVER_VERSION   (MAKE_VERSION(2, 2, 4))
 common driver version 2.2.4. More...
 
#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 FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ   1
 

Min/max macros

#define MIN(a, b)   (((a) < (b)) ? (a) : (b))
 
#define MAX(a, b)   (((a) > (b)) ? (a) : (b))
 
#define ARRAY_SIZE(x)   (sizeof(x) / sizeof((x)[0]))
 Computes the number of elements in an array. More...
 

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)
 
#define COUNT_TO_USEC(count, clockFreqInHz)   (uint64_t)((uint64_t)(count) * 1000000U / (clockFreqInHz))
 
#define MSEC_TO_COUNT(ms, clockFreqInHz)   (uint64_t)((uint64_t)(ms) * (clockFreqInHz) / 1000U)
 
#define COUNT_TO_MSEC(count, clockFreqInHz)   (uint64_t)((uint64_t)(count) * 1000U / (clockFreqInHz))
 

ISR exit barrier

ARM errata 838869, affects Cortex-M4, Cortex-M4F Store immediate overlapping exception return operation might vector to incorrect interrupt. For Cortex-M7, if core speed much faster than peripheral register write speed, the peripheral interrupt flags may be still set after exiting ISR, this results to the same error similar with errata 83869.

#define SDK_ISR_EXIT_BARRIER
 

Alignment variable definition macros

#define SDK_ALIGN(var, alignbytes)   var
 
#define SDK_SIZEALIGN(var, alignbytes)   ((unsigned int)((var) + ((alignbytes)-1U)) & (unsigned int)(~(unsigned int)((alignbytes)-1U)))
 

Non-cacheable region definition macros

#define AT_NONCACHEABLE_SECTION(var)   var
 
#define AT_NONCACHEABLE_SECTION_ALIGN(var, alignbytes)   var
 
#define AT_NONCACHEABLE_SECTION_INIT(var)   var
 
#define AT_NONCACHEABLE_SECTION_ALIGN_INIT(var, alignbytes)   var
 

Suppress fallthrough warning macro

static status_t EnableIRQ (IRQn_Type interrupt)
 Enable specific interrupt. More...
 
static status_t DisableIRQ (IRQn_Type interrupt)
 Disable specific interrupt. More...
 
static uint32_t DisableGlobalIRQ (void)
 Disable the global IRQ. More...
 
static void EnableGlobalIRQ (uint32_t primask)
 Enable the global IRQ. More...
 
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 delay_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. More...
 
#define SUPPRESS_FALL_THROUGH_WARNING()
 

Detailed Description

Macro Definition Documentation

◆ ARRAY_SIZE

#define ARRAY_SIZE (   x)    (sizeof(x) / sizeof((x)[0]))

Computes the number of elements in an array.

Definition at line 211 of file fsl_common.h.

◆ AT_NONCACHEABLE_SECTION

#define AT_NONCACHEABLE_SECTION (   var)    var

Definition at line 378 of file fsl_common.h.

◆ AT_NONCACHEABLE_SECTION_ALIGN

#define AT_NONCACHEABLE_SECTION_ALIGN (   var,
  alignbytes 
)    var

Definition at line 379 of file fsl_common.h.

◆ AT_NONCACHEABLE_SECTION_ALIGN_INIT

#define AT_NONCACHEABLE_SECTION_ALIGN_INIT (   var,
  alignbytes 
)    var

Definition at line 381 of file fsl_common.h.

◆ AT_NONCACHEABLE_SECTION_INIT

#define AT_NONCACHEABLE_SECTION_INIT (   var)    var

Definition at line 380 of file fsl_common.h.

◆ COUNT_TO_MSEC

#define COUNT_TO_MSEC (   count,
  clockFreqInHz 
)    (uint64_t)((uint64_t)(count) * 1000U / (clockFreqInHz))

Macro to convert a raw count value to millisecond

Definition at line 235 of file fsl_common.h.

◆ COUNT_TO_USEC

#define COUNT_TO_USEC (   count,
  clockFreqInHz 
)    (uint64_t)((uint64_t)(count) * 1000000U / (clockFreqInHz))

Macro to convert a raw count value to microsecond

Definition at line 230 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM

#define DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM   5U

Debug console based on FLEXCOMM.

Definition at line 60 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_IUART

#define DEBUG_CONSOLE_DEVICE_TYPE_IUART   6U

Debug console based on i.MX UART.

Definition at line 61 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_LPSCI

#define DEBUG_CONSOLE_DEVICE_TYPE_LPSCI   3U

Debug console based on LPSCI.

Definition at line 58 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_LPUART

#define DEBUG_CONSOLE_DEVICE_TYPE_LPUART   2U

Debug console based on LPUART.

Definition at line 57 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART

#define DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART   8U

Debug console based on LPC_USART.

Definition at line 63 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_NONE

#define DEBUG_CONSOLE_DEVICE_TYPE_NONE   0U

No debug console.

Definition at line 55 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_SWO

#define DEBUG_CONSOLE_DEVICE_TYPE_SWO   9U

Debug console based on SWO.

Definition at line 64 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_UART

#define DEBUG_CONSOLE_DEVICE_TYPE_UART   1U

Debug console based on UART.

Definition at line 56 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_USBCDC

#define DEBUG_CONSOLE_DEVICE_TYPE_USBCDC   4U

Debug console based on USBCDC.

Definition at line 59 of file fsl_common.h.

◆ DEBUG_CONSOLE_DEVICE_TYPE_VUSART

#define DEBUG_CONSOLE_DEVICE_TYPE_VUSART   7U

Debug console based on LPC_VUSART.

Definition at line 62 of file fsl_common.h.

◆ FSL_COMMON_DRIVER_VERSION

#define FSL_COMMON_DRIVER_VERSION   (MAKE_VERSION(2, 2, 4))

common driver version 2.2.4.

Definition at line 51 of file fsl_common.h.

◆ FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ

#define FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ   1

Definition at line 195 of file fsl_common.h.

◆ MAKE_STATUS

#define MAKE_STATUS (   group,
  code 
)    ((((group)*100) + (code)))

Construct a status code value from a group and code number.

Definition at line 43 of file fsl_common.h.

◆ MAKE_VERSION

#define MAKE_VERSION (   major,
  minor,
  bugfix 
)    (((major) << 16) | ((minor) << 8) | (bugfix))

Construct the version number for drivers.

Definition at line 46 of file fsl_common.h.

◆ MAX

#define MAX (   a,
 
)    (((a) > (b)) ? (a) : (b))

Definition at line 205 of file fsl_common.h.

◆ MIN

#define MIN (   a,
 
)    (((a) < (b)) ? (a) : (b))

Definition at line 201 of file fsl_common.h.

◆ MSEC_TO_COUNT

#define MSEC_TO_COUNT (   ms,
  clockFreqInHz 
)    (uint64_t)((uint64_t)(ms) * (clockFreqInHz) / 1000U)

Macro to convert a millisecond period to raw count value

Definition at line 233 of file fsl_common.h.

◆ SDK_ALIGN

#define SDK_ALIGN (   var,
  alignbytes 
)    var

Definition at line 299 of file fsl_common.h.

◆ SDK_ISR_EXIT_BARRIER

#define SDK_ISR_EXIT_BARRIER

Definition at line 250 of file fsl_common.h.

◆ SDK_SIZEALIGN

#define SDK_SIZEALIGN (   var,
  alignbytes 
)    ((unsigned int)((var) + ((alignbytes)-1U)) & (unsigned int)(~(unsigned int)((alignbytes)-1U)))

Macro to change a value to a given size aligned value

Definition at line 309 of file fsl_common.h.

◆ SUPPRESS_FALL_THROUGH_WARNING

#define SUPPRESS_FALL_THROUGH_WARNING ( )

Definition at line 438 of file fsl_common.h.

◆ UINT16_MAX

#define UINT16_MAX   ((uint16_t)-1)

Definition at line 217 of file fsl_common.h.

◆ UINT32_MAX

#define UINT32_MAX   ((uint32_t)-1)

Definition at line 221 of file fsl_common.h.

◆ USEC_TO_COUNT

#define USEC_TO_COUNT (   us,
  clockFreqInHz 
)    (uint64_t)(((uint64_t)(us) * (clockFreqInHz)) / 1000000U)

Macro to convert a microsecond period to raw count value

Definition at line 228 of file fsl_common.h.

Typedef Documentation

◆ status_t

typedef int32_t status_t

Type used for all status and error return values.

Definition at line 189 of file fsl_common.h.

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.

Definition at line 177 of file fsl_common.h.

◆ _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_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_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.

Definition at line 67 of file fsl_common.h.

Function Documentation

◆ DisableGlobalIRQ()

static uint32_t DisableGlobalIRQ ( void  )
inlinestatic

Disable the global IRQ.

Disable the global interrupt and return the current primask register. User is required to provided the primask register for the EnableGlobalIRQ().

Returns
Current primask value.

Definition at line 552 of file fsl_common.h.

◆ DisableIRQ()

static status_t DisableIRQ ( IRQn_Type  interrupt)
inlinestatic

Disable specific interrupt.

Disable LEVEL1 interrupt. For some devices, there might be multiple interrupt levels. For example, there are NVIC and intmux. Here the interrupts connected to NVIC are the LEVEL1 interrupts, because they are routed to the core directly. The interrupts connected to intmux are the LEVEL2 interrupts, they are routed to NVIC first then routed to core.

This function only disables the LEVEL1 interrupts. The number of LEVEL1 interrupts is indicated by the feature macro FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS.

Parameters
interruptThe IRQ number.
Return values
kStatus_SuccessInterrupt disabled successfully
kStatus_FailFailed to disable the interrupt

Definition at line 522 of file fsl_common.h.

◆ EnableGlobalIRQ()

static void EnableGlobalIRQ ( uint32_t  primask)
inlinestatic

Enable the global IRQ.

Set the primask register with the provided primask value but not just enable the primask. The idea is for the convenience of integration of RTOS. some RTOS get its own management mechanism of primask. User is required to use the EnableGlobalIRQ() and DisableGlobalIRQ() in pair.

Parameters
primaskvalue of primask register to be restored. The primask value is supposed to be provided by the DisableGlobalIRQ().

Definition at line 583 of file fsl_common.h.

◆ EnableIRQ()

static status_t EnableIRQ ( IRQn_Type  interrupt)
inlinestatic

Enable specific interrupt.

Enable LEVEL1 interrupt. For some devices, there might be multiple interrupt levels. For example, there are NVIC and intmux. Here the interrupts connected to NVIC are the LEVEL1 interrupts, because they are routed to the core directly. The interrupts connected to intmux are the LEVEL2 interrupts, they are routed to NVIC first then routed to core.

This function only enables the LEVEL1 interrupts. The number of LEVEL1 interrupts is indicated by the feature macro FSL_FEATURE_NUMBER_OF_LEVEL1_INT_VECTORS.

Parameters
interruptThe IRQ number.
Return values
kStatus_SuccessInterrupt enabled successfully
kStatus_FailFailed to enable the interrupt

Definition at line 484 of file fsl_common.h.

◆ SDK_DelayAtLeastUs()

void SDK_DelayAtLeastUs ( uint32_t  delay_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
delay_usDelay time in unit of microsecond.
coreClock_HzCore clock frequency with 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
countCounts of loop needed for dalay.

Delay at least for some time. Please note that, if not uses DWT, this API will use while loop for delay, different run-time environments have effect on the delay time. If precise delay is needed, please enable DWT delay. The two parmeters delay_us and coreClock_Hz have limitation. For example, in the platform with 1GHz coreClock_Hz, the delay_us only supports up to 4294967 in current code. If long time delay is needed, please implement a new delay function.

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

Definition at line 241 of file fsl_common.c.

◆ SDK_Free()

void SDK_Free ( void *  ptr)

Free memory.

Parameters
ptrThe memory to be release.

Definition at line 137 of file fsl_common.c.

◆ 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.

Definition at line 111 of file fsl_common.c.



picovoice_driver
Author(s):
autogenerated on Fri Apr 1 2022 02:15:11