NetBurner 3.5.6
PDF Version
fsl_common.h
1/*
2 * Copyright (c) 2015-2016, Freescale Semiconductor, Inc.
3 * Copyright 2016-2022 NXP
4 * All rights reserved.
5 *
6 * SPDX-License-Identifier: BSD-3-Clause
7 */
8
9#ifndef _FSL_COMMON_H_
10#define _FSL_COMMON_H_
11
12#include <assert.h>
13#include <stdbool.h>
14#include <stdint.h>
15#include <string.h>
16#include <stdlib.h>
17
18#if defined(__ICCARM__) || (defined(__CC_ARM) || defined(__ARMCC_VERSION)) || defined(__GNUC__)
19#include <stddef.h>
20#endif
21
22// NB MOD BEGIN
23#include "MIMXRT1061.h"
24// #include "fsl_device_registers.h"
25// NB MOD END
26
29/*
30 * @addtogroup ksdk_common
31 * @{
32 */
33
34/*******************************************************************************
35 * Configurations
36 ******************************************************************************/
37
39#ifndef FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ
40#define FSL_DRIVER_TRANSFER_DOUBLE_WEAK_IRQ 1
41#endif
42
43/*******************************************************************************
44 * Definitions
45 ******************************************************************************/
46
48#define MAKE_STATUS(group, code) ((((group)*100L) + (code)))
49
62#define MAKE_VERSION(major, minor, bugfix) (((major)*65536L) + ((minor)*256L) + (bugfix))
63
67#define FSL_COMMON_DRIVER_VERSION (MAKE_VERSION(2, 4, 0))
70/* Debug console type definition. */
71#define DEBUG_CONSOLE_DEVICE_TYPE_NONE 0U
72#define DEBUG_CONSOLE_DEVICE_TYPE_UART 1U
73#define DEBUG_CONSOLE_DEVICE_TYPE_LPUART 2U
74#define DEBUG_CONSOLE_DEVICE_TYPE_LPSCI 3U
75#define DEBUG_CONSOLE_DEVICE_TYPE_USBCDC 4U
76#define DEBUG_CONSOLE_DEVICE_TYPE_FLEXCOMM 5U
77#define DEBUG_CONSOLE_DEVICE_TYPE_IUART 6U
78#define DEBUG_CONSOLE_DEVICE_TYPE_VUSART 7U
79#define DEBUG_CONSOLE_DEVICE_TYPE_MINI_USART 8U
80#define DEBUG_CONSOLE_DEVICE_TYPE_SWO 9U
81#define DEBUG_CONSOLE_DEVICE_TYPE_QSCI 10U
84enum _status_groups
85{
86 kStatusGroup_Generic = 0,
87 kStatusGroup_FLASH = 1,
88 kStatusGroup_LPSPI = 4,
89 kStatusGroup_FLEXIO_SPI = 5,
90 kStatusGroup_DSPI = 6,
91 kStatusGroup_FLEXIO_UART = 7,
92 kStatusGroup_FLEXIO_I2C = 8,
93 kStatusGroup_LPI2C = 9,
94 kStatusGroup_UART = 10,
95 kStatusGroup_I2C = 11,
96 kStatusGroup_LPSCI = 12,
97 kStatusGroup_LPUART = 13,
98 kStatusGroup_SPI = 14,
99 kStatusGroup_XRDC = 15,
100 kStatusGroup_SEMA42 = 16,
101 kStatusGroup_SDHC = 17,
102 kStatusGroup_SDMMC = 18,
103 kStatusGroup_SAI = 19,
104 kStatusGroup_MCG = 20,
105 kStatusGroup_SCG = 21,
106 kStatusGroup_SDSPI = 22,
107 kStatusGroup_FLEXIO_I2S = 23,
108 kStatusGroup_FLEXIO_MCULCD = 24,
109 kStatusGroup_FLASHIAP = 25,
110 kStatusGroup_FLEXCOMM_I2C = 26,
111 kStatusGroup_I2S = 27,
112 kStatusGroup_IUART = 28,
113 kStatusGroup_CSI = 29,
114 kStatusGroup_MIPI_DSI = 30,
115 kStatusGroup_SDRAMC = 35,
116 kStatusGroup_POWER = 39,
117 kStatusGroup_ENET = 40,
118 kStatusGroup_PHY = 41,
119 kStatusGroup_TRGMUX = 42,
120 kStatusGroup_SMARTCARD = 43,
121 kStatusGroup_LMEM = 44,
122 kStatusGroup_QSPI = 45,
123 kStatusGroup_DMA = 50,
124 kStatusGroup_EDMA = 51,
125 kStatusGroup_DMAMGR = 52,
126 kStatusGroup_FLEXCAN = 53,
127 kStatusGroup_LTC = 54,
128 kStatusGroup_FLEXIO_CAMERA = 55,
129 kStatusGroup_LPC_SPI = 56,
130 kStatusGroup_LPC_USART = 57,
131 kStatusGroup_DMIC = 58,
132 kStatusGroup_SDIF = 59,
133 kStatusGroup_SPIFI = 60,
134 kStatusGroup_OTP = 61,
135 kStatusGroup_MCAN = 62,
136 kStatusGroup_CAAM = 63,
137 kStatusGroup_ECSPI = 64,
138 kStatusGroup_USDHC = 65,
139 kStatusGroup_LPC_I2C = 66,
140 kStatusGroup_DCP = 67,
141 kStatusGroup_MSCAN = 68,
142 kStatusGroup_ESAI = 69,
143 kStatusGroup_FLEXSPI = 70,
144 kStatusGroup_MMDC = 71,
145 kStatusGroup_PDM = 72,
146 kStatusGroup_SDMA = 73,
147 kStatusGroup_ICS = 74,
148 kStatusGroup_SPDIF = 75,
149 kStatusGroup_LPC_MINISPI = 76,
150 kStatusGroup_HASHCRYPT = 77,
151 kStatusGroup_LPC_SPI_SSP = 78,
152 kStatusGroup_I3C = 79,
153 kStatusGroup_LPC_I2C_1 = 97,
154 kStatusGroup_NOTIFIER = 98,
155 kStatusGroup_DebugConsole = 99,
156 kStatusGroup_SEMC = 100,
157 kStatusGroup_ApplicationRangeStart = 101,
158 kStatusGroup_IAP = 102,
159 kStatusGroup_SFA = 103,
160 kStatusGroup_SPC = 104,
161 kStatusGroup_PUF = 105,
162 kStatusGroup_TOUCH_PANEL = 106,
163 kStatusGroup_VBAT = 107,
165 kStatusGroup_HAL_GPIO = 121,
166 kStatusGroup_HAL_UART = 122,
167 kStatusGroup_HAL_TIMER = 123,
168 kStatusGroup_HAL_SPI = 124,
169 kStatusGroup_HAL_I2C = 125,
170 kStatusGroup_HAL_FLASH = 126,
171 kStatusGroup_HAL_PWM = 127,
172 kStatusGroup_HAL_RNG = 128,
173 kStatusGroup_HAL_I2S = 129,
174 kStatusGroup_HAL_ADC_SENSOR = 130,
175 kStatusGroup_TIMERMANAGER = 135,
176 kStatusGroup_SERIALMANAGER = 136,
177 kStatusGroup_LED = 137,
178 kStatusGroup_BUTTON = 138,
179 kStatusGroup_EXTERN_EEPROM = 139,
180 kStatusGroup_SHELL = 140,
181 kStatusGroup_MEM_MANAGER = 141,
182 kStatusGroup_LIST = 142,
183 kStatusGroup_OSA = 143,
184 kStatusGroup_COMMON_TASK = 144,
185 kStatusGroup_MSG = 145,
186 kStatusGroup_SDK_OCOTP = 146,
187 kStatusGroup_SDK_FLEXSPINOR = 147,
188 kStatusGroup_CODEC = 148,
189 kStatusGroup_ASRC = 149,
190 kStatusGroup_OTFAD = 150,
191 kStatusGroup_SDIOSLV = 151,
192 kStatusGroup_MECC = 152,
193 kStatusGroup_ENET_QOS = 153,
194 kStatusGroup_LOG = 154,
195 kStatusGroup_I3CBUS = 155,
196 kStatusGroup_QSCI = 156,
197 kStatusGroup_SNT = 157,
198 kStatusGroup_QUEUEDSPI = 158,
199 kStatusGroup_POWER_MANAGER = 159,
200 kStatusGroup_IPED = 160,
201 kStatusGroup_ELS_PKC = 161,
202 kStatusGroup_CSS_PKC = 162,
203 kStatusGroup_HOSTIF = 163,
204 kStatusGroup_CLIF = 164,
205 kStatusGroup_BMA = 165,
206 kStatusGroup_NETC = 166,
207};
208
212enum
213{
214 kStatus_Success = MAKE_STATUS(kStatusGroup_Generic, 0),
215 kStatus_Fail = MAKE_STATUS(kStatusGroup_Generic, 1),
216 kStatus_ReadOnly = MAKE_STATUS(kStatusGroup_Generic, 2),
217 kStatus_OutOfRange = MAKE_STATUS(kStatusGroup_Generic, 3),
218 kStatus_InvalidArgument = MAKE_STATUS(kStatusGroup_Generic, 4),
219 kStatus_Timeout = MAKE_STATUS(kStatusGroup_Generic, 5),
220 kStatus_NoTransferInProgress =
221 MAKE_STATUS(kStatusGroup_Generic, 6),
222 kStatus_Busy = MAKE_STATUS(kStatusGroup_Generic, 7),
223 kStatus_NoData =
224 MAKE_STATUS(kStatusGroup_Generic, 8),
225};
226
228typedef int32_t status_t;
229
234#if !defined(MIN)
235#define MIN(a, b) (((a) < (b)) ? (a) : (b))
236#endif
237
238#if !defined(MAX)
239#define MAX(a, b) (((a) > (b)) ? (a) : (b))
240#endif
244#if !defined(ARRAY_SIZE)
245#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
246#endif
247
249/* @{ */
250#if !defined(UINT16_MAX)
251#define UINT16_MAX ((uint16_t)-1)
252#endif
253
254#if !defined(UINT32_MAX)
255#define UINT32_MAX ((uint32_t)-1)
256#endif
257/* @} */
258
260/* For switch case code block, if case section ends without "break;" statement, there wil be
261 fallthrough warning with compiler flag -Wextra or -Wimplicit-fallthrough=n when using armgcc.
262 To suppress this warning, "SUPPRESS_FALL_THROUGH_WARNING();" need to be added at the end of each
263 case section which misses "break;"statement.
264 */
265/* @{ */
266#if defined(__GNUC__) && !defined(__ARMCC_VERSION)
267#define SUPPRESS_FALL_THROUGH_WARNING() __attribute__((fallthrough))
268#else
269#define SUPPRESS_FALL_THROUGH_WARNING()
270#endif
271/* @} */
272
273/*******************************************************************************
274 * API
275 ******************************************************************************/
276
277#if defined(__cplusplus)
278extern "C" {
279#endif
280
281#if !((defined(__DSC__) && defined(__CW__)))
291void *SDK_Malloc(size_t size, size_t alignbytes);
292
298void SDK_Free(void *ptr);
299#endif
300
309void SDK_DelayAtLeastUs(uint32_t delayTime_us, uint32_t coreClock_Hz);
310
311#if defined(__cplusplus)
312}
313#endif
314
315/* @} */
316
317#if (defined(__DSC__) && defined(__CW__))
318#include "fsl_common_dsc.h"
319#elif defined(__XTENSA__)
320#include "fsl_common_dsp.h"
321#else
322#include "fsl_common_arm.h"
323#endif
324
325#endif /* _FSL_COMMON_H_ */