xref: /btstack/port/msp432p401lp-cc256x/ti/devices/msp432p4xx/driverlib/rom.h (revision 5fd0122a3e19d95e11e1f3eb8a08a2b2acb2557e)
1 /* --COPYRIGHT--,BSD
2  * Copyright (c) 2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * *  Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  *
12  * *  Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * *  Neither the name of Texas Instruments Incorporated nor the names of
17  *    its contributors may be used to endorse or promote products derived
18  *    from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  * --/COPYRIGHT--*/
32 #ifndef __ROM_H__
33 #define __ROM_H__
34 
35 //*****************************************************************************
36 //
37 // Pointers to the main API tables.
38 //
39 //*****************************************************************************
40 #define ROM_APITABLE            ((unsigned long *)0x02000800)
41 #define ROM_VERSION             (ROM_APITABLE[0])
42 #define ROM_ADC14TABLE          ((unsigned long *)(ROM_APITABLE[1]))
43 #define ROM_AES256TABLE         ((unsigned long *)(ROM_APITABLE[2]))
44 #define ROM_COMPTABLE           ((unsigned long *)(ROM_APITABLE[3]))
45 #define ROM_CRC32TABLE          ((unsigned long *)(ROM_APITABLE[4]))
46 #define ROM_CSTABLE             ((unsigned long *)(ROM_APITABLE[5]))
47 #define ROM_DMATABLE            ((unsigned long *)(ROM_APITABLE[6]))
48 #define ROM_FLASHCTLTABLE       ((unsigned long *)(ROM_APITABLE[7]))
49 #define ROM_FPUTABLE            ((unsigned long *)(ROM_APITABLE[8]))
50 #define ROM_GPIOTABLE           ((unsigned long *)(ROM_APITABLE[9]))
51 #define ROM_I2CTABLE            ((unsigned long *)(ROM_APITABLE[10]))
52 #define ROM_INTTABLE            ((unsigned long *)(ROM_APITABLE[11]))
53 #define ROM_MPUTABLE            ((unsigned long *)(ROM_APITABLE[12]))
54 #define ROM_PCMTABLE            ((unsigned long *)(ROM_APITABLE[13]))
55 #define ROM_PMAPTABLE           ((unsigned long *)(ROM_APITABLE[14]))
56 #define ROM_PSSTABLE            ((unsigned long *)(ROM_APITABLE[15]))
57 #define ROM_REFTABLE            ((unsigned long *)(ROM_APITABLE[16]))
58 #define ROM_RESETCTLTABLE       ((unsigned long *)(ROM_APITABLE[17]))
59 #define ROM_RTCTABLE            ((unsigned long *)(ROM_APITABLE[18]))
60 #define ROM_SPITABLE            ((unsigned long *)(ROM_APITABLE[19]))
61 #define ROM_SYSCTLTABLE         ((unsigned long *)(ROM_APITABLE[20]))
62 #define ROM_SYSTICKTABLE        ((unsigned long *)(ROM_APITABLE[21]))
63 #define ROM_TIMER_ATABLE        ((unsigned long *)(ROM_APITABLE[22]))
64 #define ROM_TIMER32TABLE        ((unsigned long *)(ROM_APITABLE[23]))
65 #define ROM_UARTTABLE           ((unsigned long *)(ROM_APITABLE[24]))
66 #define ROM_WDTTABLE            ((unsigned long *)(ROM_APITABLE[25]))
67 #define ROM_SYSCTLATABLE        ((unsigned long *)(ROM_APITABLE[26]))
68 #define ROM_FLASHCTLATABLE      ((unsigned long *)(ROM_APITABLE[27]))
69 #define ROM_LCDFTABLE           ((unsigned long *)(ROM_APITABLE[28]))
70 
71 #if defined(__MSP432P401R__) || defined(__MSP432P401M__)
72 #define TARGET_IS_MSP432P4XX
73 #else
74 #define TARGET_IS_MSP432P4XX_NEXT
75 #endif
76 
77 //*****************************************************************************
78 //
79 // Macros for calling ROM functions in the ADC14 API.
80 //
81 //*****************************************************************************
82 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
83     defined(TARGET_IS_MSP432P4XX_NEXT)
84 #define ROM_ADC14_enableModule                                                \
85         ((void (*)(void))ROM_ADC14TABLE[0])
86 #endif
87 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
88     defined(TARGET_IS_MSP432P4XX_NEXT)
89 #define ROM_ADC14_disableModule                                               \
90         ((bool (*)(void))ROM_ADC14TABLE[1])
91 #endif
92 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
93     defined(TARGET_IS_MSP432P4XX_NEXT)
94 #define ROM_ADC14_initModule                                                  \
95         ((bool (*)(uint32_t clockSource,                                      \
96                    uint32_t clockPredivider,                                  \
97                    uint32_t clockDivider,                                     \
98                    uint32_t internalChannelMask))ROM_ADC14TABLE[2])
99 #endif
100 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
101     defined(TARGET_IS_MSP432P4XX_NEXT)
102 #define ROM_ADC14_setResolution                                               \
103         ((void (*)(uint32_t resolution))ROM_ADC14TABLE[3])
104 #endif
105 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
106     defined(TARGET_IS_MSP432P4XX_NEXT)
107 #define ROM_ADC14_getResolution                                               \
108         ((uint_fast32_t (*)(void))ROM_ADC14TABLE[4])
109 #endif
110 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
111     defined(TARGET_IS_MSP432P4XX_NEXT)
112 #define ROM_ADC14_setSampleHoldTrigger                                        \
113         ((bool (*)(uint32_t source,                                           \
114                    bool invertSignal))ROM_ADC14TABLE[5])
115 #endif
116 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
117     defined(TARGET_IS_MSP432P4XX_NEXT)
118 #define ROM_ADC14_setSampleHoldTime                                           \
119         ((bool (*)(uint32_t firstPulseWidth,                                  \
120                    uint32_t secondPulseWidth))ROM_ADC14TABLE[6])
121 #endif
122 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
123     defined(TARGET_IS_MSP432P4XX_NEXT)
124 #define ROM_ADC14_configureSingleSampleMode                                   \
125         ((bool (*)(uint32_t memoryDestination,                                \
126                    bool repeatMode))ROM_ADC14TABLE[8])
127 #endif
128 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
129     defined(TARGET_IS_MSP432P4XX_NEXT)
130 #define ROM_ADC14_enableConversion                                            \
131         ((bool (*)(void))ROM_ADC14TABLE[9])
132 #endif
133 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
134     defined(TARGET_IS_MSP432P4XX_NEXT)
135 #define ROM_ADC14_disableConversion                                           \
136         ((void (*)(void))ROM_ADC14TABLE[10])
137 #endif
138 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
139     defined(TARGET_IS_MSP432P4XX_NEXT)
140 #define ROM_ADC14_isBusy                                                      \
141         ((bool (*)(void))ROM_ADC14TABLE[11])
142 #endif
143 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
144     defined(TARGET_IS_MSP432P4XX_NEXT)
145 #define ROM_ADC14_disableComparatorWindow                                     \
146         ((bool (*)(uint32_t memorySelect))ROM_ADC14TABLE[14])
147 #endif
148 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
149     defined(TARGET_IS_MSP432P4XX_NEXT)
150 #define ROM_ADC14_setComparatorWindowValue                                    \
151         ((bool (*)(uint32_t window,                                           \
152                    int16_t low,                                               \
153                    int16_t high))ROM_ADC14TABLE[15])
154 #endif
155 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
156     defined(TARGET_IS_MSP432P4XX_NEXT)
157 #define ROM_ADC14_setResultFormat                                             \
158         ((bool (*)(uint32_t resultFormat))ROM_ADC14TABLE[16])
159 #endif
160 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
161     defined(TARGET_IS_MSP432P4XX_NEXT)
162 #define ROM_ADC14_enableReferenceBurst                                        \
163         ((bool (*)(void))ROM_ADC14TABLE[20])
164 #endif
165 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
166     defined(TARGET_IS_MSP432P4XX_NEXT)
167 #define ROM_ADC14_disableReferenceBurst                                       \
168         ((bool (*)(void))ROM_ADC14TABLE[21])
169 #endif
170 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
171     defined(TARGET_IS_MSP432P4XX_NEXT)
172 #define ROM_ADC14_setPowerMode                                                \
173         ((bool (*)(uint32_t powerMode))ROM_ADC14TABLE[22])
174 #endif
175 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
176     defined(TARGET_IS_MSP432P4XX_NEXT)
177 #define ROM_ADC14_enableInterrupt                                             \
178         ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[23])
179 #endif
180 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
181     defined(TARGET_IS_MSP432P4XX_NEXT)
182 #define ROM_ADC14_disableInterrupt                                            \
183         ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[24])
184 #endif
185 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
186     defined(TARGET_IS_MSP432P4XX_NEXT)
187 #define ROM_ADC14_getInterruptStatus                                          \
188         ((uint_fast64_t (*)(void))ROM_ADC14TABLE[25])
189 #endif
190 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
191     defined(TARGET_IS_MSP432P4XX_NEXT)
192 #define ROM_ADC14_getEnabledInterruptStatus                                   \
193         ((uint_fast64_t (*)(void))ROM_ADC14TABLE[26])
194 #endif
195 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
196     defined(TARGET_IS_MSP432P4XX_NEXT)
197 #define ROM_ADC14_clearInterruptFlag                                          \
198         ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[27])
199 #endif
200 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
201     defined(TARGET_IS_MSP432P4XX_NEXT)
202 #define ROM_ADC14_toggleConversionTrigger                                     \
203         ((bool (*)(void))ROM_ADC14TABLE[28])
204 #endif
205 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
206     defined(TARGET_IS_MSP432P4XX_NEXT)
207 #define ROM_ADC14_enableSampleTimer                                           \
208         ((bool (*)(uint32_t multiSampleConvert))ROM_ADC14TABLE[29])
209 #endif
210 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
211     defined(TARGET_IS_MSP432P4XX_NEXT)
212 #define ROM_ADC14_disableSampleTimer                                          \
213         ((bool (*)(void))ROM_ADC14TABLE[30])
214 #endif
215 
216 //*****************************************************************************
217 //
218 // Macros for calling ROM functions in the AES256 API.
219 //
220 //*****************************************************************************
221 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
222     defined(TARGET_IS_MSP432P4XX_NEXT)
223 #define ROM_AES256_setCipherKey                                               \
224         ((bool (*)(uint32_t moduleInstance,                                   \
225                    const uint8_t *cipherKey,                                  \
226                    uint_fast16_t keyLength))ROM_AES256TABLE[0])
227 #endif
228 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
229     defined(TARGET_IS_MSP432P4XX_NEXT)
230 #define ROM_AES256_encryptData                                                \
231         ((void (*)(uint32_t moduleInstance,                                   \
232                    const uint8_t *data,                                       \
233                    uint8_t *encryptedData))ROM_AES256TABLE[1])
234 #endif
235 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
236     defined(TARGET_IS_MSP432P4XX_NEXT)
237 #define ROM_AES256_decryptData                                                \
238         ((void (*)(uint32_t moduleInstance,                                   \
239                    const uint8_t *data,                                       \
240                    uint8_t *decryptedData))ROM_AES256TABLE[2])
241 #endif
242 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
243     defined(TARGET_IS_MSP432P4XX_NEXT)
244 #define ROM_AES256_setDecipherKey                                             \
245         ((bool (*)(uint32_t moduleInstance,                                   \
246                    const uint8_t *cipherKey,                                  \
247                    uint_fast16_t keyLength))ROM_AES256TABLE[3])
248 #endif
249 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
250     defined(TARGET_IS_MSP432P4XX_NEXT)
251 #define ROM_AES256_reset                                                      \
252         ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[4])
253 #endif
254 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
255     defined(TARGET_IS_MSP432P4XX_NEXT)
256 #define ROM_AES256_startEncryptData                                           \
257         ((void (*)(uint32_t moduleInstance,                                   \
258                    const uint8_t *data))ROM_AES256TABLE[5])
259 #endif
260 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
261     defined(TARGET_IS_MSP432P4XX_NEXT)
262 #define ROM_AES256_startDecryptData                                           \
263         ((void (*)(uint32_t moduleInstance,                                   \
264                    const uint8_t *data))ROM_AES256TABLE[6])
265 #endif
266 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
267     defined(TARGET_IS_MSP432P4XX_NEXT)
268 #define ROM_AES256_startSetDecipherKey                                        \
269         ((bool (*)(uint32_t moduleInstance,                                   \
270                    const uint8_t *cipherKey,                                  \
271                    uint_fast16_t keyLength))ROM_AES256TABLE[7])
272 #endif
273 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
274     defined(TARGET_IS_MSP432P4XX_NEXT)
275 #define ROM_AES256_getDataOut                                                 \
276         ((bool (*)(uint32_t moduleInstance,                                   \
277                    uint8_t *outputData))ROM_AES256TABLE[8])
278 #endif
279 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
280     defined(TARGET_IS_MSP432P4XX_NEXT)
281 #define ROM_AES256_isBusy                                                     \
282         ((bool (*)(uint32_t moduleInstance))ROM_AES256TABLE[9])
283 #endif
284 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
285     defined(TARGET_IS_MSP432P4XX_NEXT)
286 #define ROM_AES256_clearErrorFlag                                             \
287         ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[10])
288 #endif
289 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
290     defined(TARGET_IS_MSP432P4XX_NEXT)
291 #define ROM_AES256_getErrorFlagStatus                                         \
292         ((uint32_t (*)(uint32_t moduleInstance))ROM_AES256TABLE[11])
293 #endif
294 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
295     defined(TARGET_IS_MSP432P4XX_NEXT)
296 #define ROM_AES256_clearInterruptFlag                                         \
297         ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[12])
298 #endif
299 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
300     defined(TARGET_IS_MSP432P4XX_NEXT)
301 #define ROM_AES256_getInterruptStatus                                         \
302         ((uint32_t (*)(uint32_t moduleInstance))ROM_AES256TABLE[13])
303 #endif
304 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
305     defined(TARGET_IS_MSP432P4XX_NEXT)
306 #define ROM_AES256_enableInterrupt                                            \
307         ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[14])
308 #endif
309 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
310     defined(TARGET_IS_MSP432P4XX_NEXT)
311 #define ROM_AES256_disableInterrupt                                           \
312         ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[15])
313 #endif
314 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
315     defined(TARGET_IS_MSP432P4XX_NEXT)
316 #define ROM_AES256_getInterruptFlagStatus                                     \
317         ((uint32_t (*)(uint32_t moduleInstance))ROM_AES256TABLE[18])
318 #endif
319 
320 //*****************************************************************************
321 //
322 // Macros for calling ROM functions in the Comp API.
323 //
324 //*****************************************************************************
325 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
326     defined(TARGET_IS_MSP432P4XX_NEXT)
327 #define ROM_COMP_E_initModule                                                 \
328         ((bool (*)(uint32_t comparator,                                       \
329                    const COMP_E_Config *config))ROM_COMPTABLE[0])
330 #endif
331 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
332     defined(TARGET_IS_MSP432P4XX_NEXT)
333 #define ROM_COMP_E_setReferenceVoltage                                        \
334         ((void (*)(uint32_t comparator,                                       \
335                    uint_fast16_t supplyVoltageReferenceBase,                  \
336                    uint_fast16_t lowerLimitSupplyVoltageFractionOf32,         \
337                    uint_fast16_t upperLimitSupplyVoltageFractionOf32))ROM_COMPTABLE[1])
338 #endif
339 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
340     defined(TARGET_IS_MSP432P4XX_NEXT)
341 #define ROM_COMP_E_setReferenceAccuracy                                       \
342         ((void (*)(uint32_t comparator,                                       \
343                    uint_fast16_t referenceAccuracy))ROM_COMPTABLE[2])
344 #endif
345 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
346     defined(TARGET_IS_MSP432P4XX_NEXT)
347 #define ROM_COMP_E_setPowerMode                                               \
348         ((void (*)(uint32_t comparator,                                       \
349                    uint_fast16_t powerMode))ROM_COMPTABLE[3])
350 #endif
351 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
352     defined(TARGET_IS_MSP432P4XX_NEXT)
353 #define ROM_COMP_E_enableModule                                               \
354         ((void (*)(uint32_t comparator))ROM_COMPTABLE[4])
355 #endif
356 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
357     defined(TARGET_IS_MSP432P4XX_NEXT)
358 #define ROM_COMP_E_disableModule                                              \
359         ((void (*)(uint32_t comparator))ROM_COMPTABLE[5])
360 #endif
361 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
362     defined(TARGET_IS_MSP432P4XX_NEXT)
363 #define ROM_COMP_E_shortInputs                                                \
364         ((void (*)(uint32_t comparator))ROM_COMPTABLE[6])
365 #endif
366 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
367     defined(TARGET_IS_MSP432P4XX_NEXT)
368 #define ROM_COMP_E_unshortInputs                                              \
369         ((void (*)(uint32_t comparator))ROM_COMPTABLE[7])
370 #endif
371 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
372     defined(TARGET_IS_MSP432P4XX_NEXT)
373 #define ROM_COMP_E_disableInputBuffer                                         \
374         ((void (*)(uint32_t comparator,                                       \
375                    uint_fast16_t inputPort))ROM_COMPTABLE[8])
376 #endif
377 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
378     defined(TARGET_IS_MSP432P4XX_NEXT)
379 #define ROM_COMP_E_enableInputBuffer                                          \
380         ((void (*)(uint32_t comparator,                                       \
381                    uint_fast16_t inputPort))ROM_COMPTABLE[9])
382 #endif
383 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
384     defined(TARGET_IS_MSP432P4XX_NEXT)
385 #define ROM_COMP_E_swapIO                                                     \
386         ((void (*)(uint32_t comparator))ROM_COMPTABLE[10])
387 #endif
388 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
389     defined(TARGET_IS_MSP432P4XX_NEXT)
390 #define ROM_COMP_E_outputValue                                                \
391         ((uint8_t (*)(uint32_t comparator))ROM_COMPTABLE[11])
392 #endif
393 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
394     defined(TARGET_IS_MSP432P4XX_NEXT)
395 #define ROM_COMP_E_enableInterrupt                                            \
396         ((void (*)(uint32_t comparator,                                       \
397                    uint_fast16_t mask))ROM_COMPTABLE[12])
398 #endif
399 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
400     defined(TARGET_IS_MSP432P4XX_NEXT)
401 #define ROM_COMP_E_disableInterrupt                                           \
402         ((void (*)(uint32_t comparator,                                       \
403                    uint_fast16_t mask))ROM_COMPTABLE[13])
404 #endif
405 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
406     defined(TARGET_IS_MSP432P4XX_NEXT)
407 #define ROM_COMP_E_clearInterruptFlag                                         \
408         ((void (*)(uint32_t comparator,                                       \
409                    uint_fast16_t mask))ROM_COMPTABLE[14])
410 #endif
411 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
412     defined(TARGET_IS_MSP432P4XX_NEXT)
413 #define ROM_COMP_E_getInterruptStatus                                         \
414         ((uint_fast16_t (*)(uint32_t comparator))ROM_COMPTABLE[15])
415 #endif
416 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
417     defined(TARGET_IS_MSP432P4XX_NEXT)
418 #define ROM_COMP_E_getEnabledInterruptStatus                                  \
419         ((uint_fast16_t (*)(uint32_t comparator))ROM_COMPTABLE[16])
420 #endif
421 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
422     defined(TARGET_IS_MSP432P4XX_NEXT)
423 #define ROM_COMP_E_setInterruptEdgeDirection                                  \
424         ((void (*)(uint32_t comparator,                                       \
425                    uint_fast8_t edgeDirection))ROM_COMPTABLE[17])
426 #endif
427 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
428     defined(TARGET_IS_MSP432P4XX_NEXT)
429 #define ROM_COMP_E_toggleInterruptEdgeDirection                               \
430         ((void (*)(uint32_t comparator))ROM_COMPTABLE[18])
431 #endif
432 
433 //*****************************************************************************
434 //
435 // Macros for calling ROM functions in the CRC32 API.
436 //
437 //*****************************************************************************
438 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
439     defined(TARGET_IS_MSP432P4XX_NEXT)
440 #define ROM_CRC32_setSeed                                                     \
441         ((void (*)(uint32_t seed,                                             \
442                    uint_fast8_t crcType))ROM_CRC32TABLE[0])
443 #endif
444 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
445     defined(TARGET_IS_MSP432P4XX_NEXT)
446 #define ROM_CRC32_set8BitData                                                 \
447         ((void (*)(uint8_t dataIn,                                            \
448                    uint_fast8_t crcType))ROM_CRC32TABLE[1])
449 #endif
450 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
451     defined(TARGET_IS_MSP432P4XX_NEXT)
452 #define ROM_CRC32_set16BitData                                                \
453         ((void (*)(uint16_t dataIn,                                           \
454                    uint_fast8_t crcType))ROM_CRC32TABLE[2])
455 #endif
456 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
457     defined(TARGET_IS_MSP432P4XX_NEXT)
458 #define ROM_CRC32_set32BitData                                                \
459         ((void (*)(uint32_t dataIn))ROM_CRC32TABLE[3])
460 #endif
461 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
462     defined(TARGET_IS_MSP432P4XX_NEXT)
463 #define ROM_CRC32_set8BitDataReversed                                         \
464         ((void (*)(uint8_t dataIn,                                            \
465                    uint_fast8_t crcType))ROM_CRC32TABLE[4])
466 #endif
467 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
468     defined(TARGET_IS_MSP432P4XX_NEXT)
469 #define ROM_CRC32_set16BitDataReversed                                        \
470         ((void (*)(uint16_t dataIn,                                           \
471                    uint_fast8_t crcType))ROM_CRC32TABLE[5])
472 #endif
473 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
474     defined(TARGET_IS_MSP432P4XX_NEXT)
475 #define ROM_CRC32_set32BitDataReversed                                        \
476         ((void (*)(uint32_t dataIn))ROM_CRC32TABLE[6])
477 #endif
478 
479 //*****************************************************************************
480 //
481 // Macros for calling ROM functions in the CS API.
482 //
483 //*****************************************************************************
484 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
485     defined(TARGET_IS_MSP432P4XX_NEXT)
486 #define ROM_CS_initClockSignal                                                \
487         ((void (*)(uint32_t selectedClockSignal,                              \
488                    uint32_t clockSource,                                      \
489                    uint32_t clockSourceDivider))ROM_CSTABLE[0])
490 #endif
491 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
492     defined(TARGET_IS_MSP432P4XX_NEXT)
493 #define ROM_CS_setReferenceOscillatorFrequency                                \
494         ((void (*)(uint8_t referenceFrequency))ROM_CSTABLE[1])
495 #endif
496 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
497     defined(TARGET_IS_MSP432P4XX_NEXT)
498 #define ROM_CS_enableClockRequest                                             \
499         ((void (*)(uint32_t selectClock))ROM_CSTABLE[2])
500 #endif
501 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
502     defined(TARGET_IS_MSP432P4XX_NEXT)
503 #define ROM_CS_disableClockRequest                                            \
504         ((void (*)(uint32_t selectClock))ROM_CSTABLE[3])
505 #endif
506 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
507     defined(TARGET_IS_MSP432P4XX_NEXT)
508 #define ROM_CS_setDCOCenteredFrequency                                        \
509         ((void (*)(uint32_t dcoFreq))ROM_CSTABLE[4])
510 #endif
511 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
512     defined(TARGET_IS_MSP432P4XX_NEXT)
513 #define ROM_CS_tuneDCOFrequency                                               \
514         ((void (*)(int16_t tuneParameter))ROM_CSTABLE[5])
515 #endif
516 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
517     defined(TARGET_IS_MSP432P4XX_NEXT)
518 #define ROM_CS_enableDCOExternalResistor                                      \
519         ((void (*)(void))ROM_CSTABLE[6])
520 #endif
521 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
522     defined(TARGET_IS_MSP432P4XX_NEXT)
523 #define ROM_CS_disableDCOExternalResistor                                     \
524         ((void (*)(void))ROM_CSTABLE[7])
525 #endif
526 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
527     defined(TARGET_IS_MSP432P4XX_NEXT)
528 #define ROM_CS_enableInterrupt                                                \
529         ((void (*)(uint32_t flags))ROM_CSTABLE[8])
530 #endif
531 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
532     defined(TARGET_IS_MSP432P4XX_NEXT)
533 #define ROM_CS_disableInterrupt                                               \
534         ((void (*)(uint32_t flags))ROM_CSTABLE[9])
535 #endif
536 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
537     defined(TARGET_IS_MSP432P4XX_NEXT)
538 #define ROM_CS_getEnabledInterruptStatus                                      \
539         ((uint32_t (*)(void))ROM_CSTABLE[10])
540 #endif
541 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
542     defined(TARGET_IS_MSP432P4XX_NEXT)
543 #define ROM_CS_getInterruptStatus                                             \
544         ((uint32_t (*)(void))ROM_CSTABLE[11])
545 #endif
546 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
547     defined(TARGET_IS_MSP432P4XX_NEXT)
548 #define ROM_CS_setDCOFrequency                                                \
549         ((void (*)(uint32_t dcoFrequency))ROM_CSTABLE[12])
550 #endif
551 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
552     defined(TARGET_IS_MSP432P4XX_NEXT)
553 #define ROM_CS_getDCOFrequency                                                \
554         ((uint32_t (*)(void))ROM_CSTABLE[13])
555 #endif
556 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
557     defined(TARGET_IS_MSP432P4XX_NEXT)
558 #define ROM_CS_enableFaultCounter                                             \
559         ((void (*)(uint_fast8_t counterSelect))ROM_CSTABLE[14])
560 #endif
561 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
562     defined(TARGET_IS_MSP432P4XX_NEXT)
563 #define ROM_CS_disableFaultCounter                                            \
564         ((void (*)(uint_fast8_t counterSelect))ROM_CSTABLE[15])
565 #endif
566 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
567     defined(TARGET_IS_MSP432P4XX_NEXT)
568 #define ROM_CS_resetFaultCounter                                              \
569         ((void (*)(uint_fast8_t counterSelect))ROM_CSTABLE[16])
570 #endif
571 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
572     defined(TARGET_IS_MSP432P4XX_NEXT)
573 #define ROM_CS_startFaultCounter                                              \
574         ((void (*)(uint_fast8_t counterSelect,                                \
575                    uint_fast8_t countValue))ROM_CSTABLE[17])
576 #endif
577 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
578     defined(TARGET_IS_MSP432P4XX_NEXT)
579 #define ROM_CS_clearInterruptFlag                                             \
580         ((void (*)(uint32_t flags))ROM_CSTABLE[20])
581 #endif
582 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
583     defined(TARGET_IS_MSP432P4XX_NEXT)
584 #define ROM_CS_setDCOExternalResistorCalibration                              \
585         ((void (*)(uint_fast8_t uiCalData,                                    \
586                    uint_fast8_t freqRange))ROM_CSTABLE[31])
587 #endif
588 
589 //*****************************************************************************
590 //
591 // Macros for calling ROM functions in the DMA API.
592 //
593 //*****************************************************************************
594 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
595     defined(TARGET_IS_MSP432P4XX_NEXT)
596 #define ROM_DMA_enableModule                                                  \
597         ((void (*)(void))ROM_DMATABLE[0])
598 #endif
599 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
600     defined(TARGET_IS_MSP432P4XX_NEXT)
601 #define ROM_DMA_getErrorStatus                                                \
602         ((uint32_t (*)(void))ROM_DMATABLE[2])
603 #endif
604 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
605     defined(TARGET_IS_MSP432P4XX_NEXT)
606 #define ROM_DMA_clearErrorStatus                                              \
607         ((void (*)(void))ROM_DMATABLE[3])
608 #endif
609 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
610     defined(TARGET_IS_MSP432P4XX_NEXT)
611 #define ROM_DMA_enableChannel                                                 \
612         ((void (*)(uint32_t channelNum))ROM_DMATABLE[4])
613 #endif
614 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
615     defined(TARGET_IS_MSP432P4XX_NEXT)
616 #define ROM_DMA_disableChannel                                                \
617         ((void (*)(uint32_t channelNum))ROM_DMATABLE[5])
618 #endif
619 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
620     defined(TARGET_IS_MSP432P4XX_NEXT)
621 #define ROM_DMA_isChannelEnabled                                              \
622         ((bool (*)(uint32_t channelNum))ROM_DMATABLE[6])
623 #endif
624 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
625     defined(TARGET_IS_MSP432P4XX_NEXT)
626 #define ROM_DMA_setControlBase                                                \
627         ((void (*)(void *controlTable))ROM_DMATABLE[7])
628 #endif
629 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
630     defined(TARGET_IS_MSP432P4XX_NEXT)
631 #define ROM_DMA_getControlBase                                                \
632         ((void* (*)(void))ROM_DMATABLE[8])
633 #endif
634 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
635     defined(TARGET_IS_MSP432P4XX_NEXT)
636 #define ROM_DMA_getControlAlternateBase                                       \
637         ((void* (*)(void))ROM_DMATABLE[9])
638 #endif
639 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
640     defined(TARGET_IS_MSP432P4XX_NEXT)
641 #define ROM_DMA_requestChannel                                                \
642         ((void (*)(uint32_t channelNum))ROM_DMATABLE[10])
643 #endif
644 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
645     defined(TARGET_IS_MSP432P4XX_NEXT)
646 #define ROM_DMA_enableChannelAttribute                                        \
647         ((void (*)(uint32_t channelNum,                                       \
648                    uint32_t attr))ROM_DMATABLE[11])
649 #endif
650 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
651     defined(TARGET_IS_MSP432P4XX_NEXT)
652 #define ROM_DMA_disableChannelAttribute                                       \
653         ((void (*)(uint32_t channelNum,                                       \
654                    uint32_t attr))ROM_DMATABLE[12])
655 #endif
656 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
657     defined(TARGET_IS_MSP432P4XX_NEXT)
658 #define ROM_DMA_getChannelAttribute                                           \
659         ((uint32_t (*)(uint32_t channelNum))ROM_DMATABLE[13])
660 #endif
661 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
662     defined(TARGET_IS_MSP432P4XX_NEXT)
663 #define ROM_DMA_setChannelControl                                             \
664         ((void (*)(uint32_t channelStructIndex,                               \
665                    uint32_t control))ROM_DMATABLE[14])
666 #endif
667 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
668     defined(TARGET_IS_MSP432P4XX_NEXT)
669 #define ROM_DMA_setChannelScatterGather                                       \
670         ((void (*)(uint32_t channelNum,                                       \
671                    uint32_t taskCount,                                        \
672                    void *taskList,                                            \
673                    uint32_t isPeriphSG))ROM_DMATABLE[16])
674 #endif
675 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
676     defined(TARGET_IS_MSP432P4XX_NEXT)
677 #define ROM_DMA_getChannelSize                                                \
678         ((uint32_t (*)(uint32_t channelStructIndex))ROM_DMATABLE[17])
679 #endif
680 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
681     defined(TARGET_IS_MSP432P4XX_NEXT)
682 #define ROM_DMA_getChannelMode                                                \
683         ((uint32_t (*)(uint32_t channelStructIndex))ROM_DMATABLE[18])
684 #endif
685 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
686     defined(TARGET_IS_MSP432P4XX_NEXT)
687 #define ROM_DMA_assignChannel                                                 \
688         ((void (*)(uint32_t mapping))ROM_DMATABLE[19])
689 #endif
690 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
691     defined(TARGET_IS_MSP432P4XX_NEXT)
692 #define ROM_DMA_requestSoftwareTransfer                                       \
693         ((void (*)(uint32_t channel))ROM_DMATABLE[20])
694 #endif
695 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
696     defined(TARGET_IS_MSP432P4XX_NEXT)
697 #define ROM_DMA_assignInterrupt                                               \
698         ((void (*)(uint32_t interruptNumber,                                  \
699                    uint32_t channel))ROM_DMATABLE[21])
700 #endif
701 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
702     defined(TARGET_IS_MSP432P4XX_NEXT)
703 #define ROM_DMA_enableInterrupt                                               \
704         ((void (*)(uint32_t interruptNumber))ROM_DMATABLE[22])
705 #endif
706 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
707     defined(TARGET_IS_MSP432P4XX_NEXT)
708 #define ROM_DMA_disableInterrupt                                              \
709         ((void (*)(uint32_t interruptNumber))ROM_DMATABLE[23])
710 #endif
711 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
712     defined(TARGET_IS_MSP432P4XX_NEXT)
713 #define ROM_DMA_getInterruptStatus                                            \
714         ((uint32_t (*)(void))ROM_DMATABLE[24])
715 #endif
716 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
717     defined(TARGET_IS_MSP432P4XX_NEXT)
718 #define ROM_DMA_clearInterruptFlag                                            \
719         ((void (*)(uint32_t intChannel))ROM_DMATABLE[25])
720 #endif
721 
722 //*****************************************************************************
723 //
724 // Macros for calling ROM functions in the Flash API.
725 //
726 //*****************************************************************************
727 #if defined(TARGET_IS_MSP432P4XX)
728 #define ROM_FlashCtl_enableReadBuffering                                      \
729         ((void (*)(uint_fast8_t memoryBank,                                   \
730                    uint_fast8_t accessMethod))ROM_FLASHCTLTABLE[2])
731 #endif
732 #if defined(TARGET_IS_MSP432P4XX)
733 #define ROM_FlashCtl_disableReadBuffering                                     \
734         ((void (*)(uint_fast8_t memoryBank,                                   \
735                    uint_fast8_t accessMethod))ROM_FLASHCTLTABLE[3])
736 #endif
737 #if defined(TARGET_IS_MSP432P4XX)
738 #define ROM_FlashCtl_unprotectSector                                          \
739         ((bool (*)(uint_fast8_t memorySpace,                                  \
740                    uint32_t sectorMask))ROM_FLASHCTLTABLE[4])
741 #endif
742 #if defined(TARGET_IS_MSP432P4XX)
743 #define ROM_FlashCtl_isSectorProtected                                        \
744         ((bool (*)(uint_fast8_t memorySpace,                                  \
745                    uint32_t sector))ROM_FLASHCTLTABLE[6])
746 #endif
747 #if defined(TARGET_IS_MSP432P4XX)
748 #define ROM_FlashCtl_verifyMemory                                             \
749         ((bool (*)(void* verifyAddr,                                          \
750                    uint32_t length,                                           \
751                    uint_fast8_t pattern))ROM_FLASHCTLTABLE[7])
752 #endif
753 #if defined(TARGET_IS_MSP432P4XX)
754 #define ROM_FlashCtl_performMassErase                                         \
755         ((bool (*)(void))ROM_FLASHCTLTABLE[8])
756 #endif
757 #if defined(TARGET_IS_MSP432P4XX)
758 #define ROM_FlashCtl_eraseSector                                              \
759         ((bool (*)(uint32_t addr))ROM_FLASHCTLTABLE[9])
760 #endif
761 #if defined(TARGET_IS_MSP432P4XX)
762 #define ROM_FlashCtl_programMemory                                            \
763         ((bool (*)(void* src,                                                 \
764                    void* dest,                                                \
765                    uint32_t length))ROM_FLASHCTLTABLE[10])
766 #endif
767 #if defined(TARGET_IS_MSP432P4XX)
768 #define ROM_FlashCtl_setProgramVerification                                   \
769         ((void (*)(uint32_t verificationSetting))ROM_FLASHCTLTABLE[11])
770 #endif
771 #if defined(TARGET_IS_MSP432P4XX)
772 #define ROM_FlashCtl_clearProgramVerification                                 \
773         ((void (*)(uint32_t verificationSetting))ROM_FLASHCTLTABLE[12])
774 #endif
775 #if defined(TARGET_IS_MSP432P4XX)
776 #define ROM_FlashCtl_enableWordProgramming                                    \
777         ((void (*)(uint32_t mode))ROM_FLASHCTLTABLE[13])
778 #endif
779 #if defined(TARGET_IS_MSP432P4XX)
780 #define ROM_FlashCtl_disableWordProgramming                                   \
781         ((void (*)(void))ROM_FLASHCTLTABLE[14])
782 #endif
783 #if defined(TARGET_IS_MSP432P4XX)
784 #define ROM_FlashCtl_isWordProgrammingEnabled                                 \
785         ((uint32_t (*)(void))ROM_FLASHCTLTABLE[15])
786 #endif
787 #if defined(TARGET_IS_MSP432P4XX)
788 #define ROM_FlashCtl_enableInterrupt                                          \
789         ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[16])
790 #endif
791 #if defined(TARGET_IS_MSP432P4XX)
792 #define ROM_FlashCtl_disableInterrupt                                         \
793         ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[17])
794 #endif
795 #if defined(TARGET_IS_MSP432P4XX)
796 #define ROM_FlashCtl_getEnabledInterruptStatus                                \
797         ((uint32_t (*)(void))ROM_FLASHCTLTABLE[18])
798 #endif
799 #if defined(TARGET_IS_MSP432P4XX)
800 #define ROM_FlashCtl_getInterruptStatus                                       \
801         ((uint32_t (*)(void))ROM_FLASHCTLTABLE[19])
802 #endif
803 #if defined(TARGET_IS_MSP432P4XX)
804 #define ROM_FlashCtl_clearInterruptFlag                                       \
805         ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[20])
806 #endif
807 #if defined(TARGET_IS_MSP432P4XX)
808 #define ROM_FlashCtl_setWaitState                                             \
809         ((void (*)(uint32_t bank,                                             \
810                    uint32_t waitState))ROM_FLASHCTLTABLE[21])
811 #endif
812 #if defined(TARGET_IS_MSP432P4XX)
813 #define ROM_FlashCtl_getWaitState                                             \
814         ((uint32_t (*)(uint32_t bank))ROM_FLASHCTLTABLE[22])
815 #endif
816 #if defined(TARGET_IS_MSP432P4XX)
817 #define ROM_FlashCtl_setReadMode                                              \
818         ((bool (*)(uint32_t flashBank,                                        \
819                    uint32_t readMode))ROM_FLASHCTLTABLE[23])
820 #endif
821 #if defined(TARGET_IS_MSP432P4XX)
822 #define ROM_FlashCtl_getReadMode                                              \
823         ((uint32_t (*)(uint32_t flashBank))ROM_FLASHCTLTABLE[24])
824 #endif
825 #if defined(TARGET_IS_MSP432P4XX)
826 #define ROM___FlashCtl_remaskData8Post                                        \
827         ((uint8_t (*)(uint8_t data,                                           \
828                       uint32_t addr))ROM_FLASHCTLTABLE[27])
829 #endif
830 #if defined(TARGET_IS_MSP432P4XX)
831 #define ROM___FlashCtl_remaskData8Pre                                         \
832         ((uint8_t (*)(uint8_t data,                                           \
833                       uint32_t addr))ROM_FLASHCTLTABLE[28])
834 #endif
835 #if defined(TARGET_IS_MSP432P4XX)
836 #define ROM___FlashCtl_remaskData32Pre                                        \
837         ((uint32_t (*)(uint32_t data,                                         \
838                        uint32_t addr))ROM_FLASHCTLTABLE[29])
839 #endif
840 #if defined(TARGET_IS_MSP432P4XX)
841 #define ROM___FlashCtl_remaskData32Post                                       \
842         ((uint32_t (*)(uint32_t data,                                         \
843                        uint32_t addr))ROM_FLASHCTLTABLE[30])
844 #endif
845 #if defined(TARGET_IS_MSP432P4XX)
846 #define ROM___FlashCtl_remaskBurstDataPre                                     \
847         ((void (*)(uint32_t addr,                                             \
848                    uint32_t size))ROM_FLASHCTLTABLE[31])
849 #endif
850 #if defined(TARGET_IS_MSP432P4XX)
851 #define ROM___FlashCtl_remaskBurstDataPost                                    \
852         ((void (*)(uint32_t addr,                                             \
853                    uint32_t size))ROM_FLASHCTLTABLE[32])
854 #endif
855 #if defined(TARGET_IS_MSP432P4XX)
856 #define ROM_FlashCtl_initiateSectorErase                                      \
857         ((void (*)(uint32_t addr))ROM_FLASHCTLTABLE[33])
858 #endif
859 #if defined(TARGET_IS_MSP432P4XX)
860 #define ROM_FlashCtl_initiateMassErase                                        \
861         ((void (*)(void))ROM_FLASHCTLTABLE[34])
862 #endif
863 
864 //*****************************************************************************
865 //
866 // Macros for calling ROM functions in the FPU API.
867 //
868 //*****************************************************************************
869 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
870     defined(TARGET_IS_MSP432P4XX_NEXT)
871 #define ROM_FPU_enableModule                                                  \
872         ((void (*)(void))ROM_FPUTABLE[0])
873 #endif
874 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
875     defined(TARGET_IS_MSP432P4XX_NEXT)
876 #define ROM_FPU_disableModule                                                 \
877         ((void (*)(void))ROM_FPUTABLE[1])
878 #endif
879 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
880     defined(TARGET_IS_MSP432P4XX_NEXT)
881 #define ROM_FPU_enableStacking                                                \
882         ((void (*)(void))ROM_FPUTABLE[2])
883 #endif
884 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
885     defined(TARGET_IS_MSP432P4XX_NEXT)
886 #define ROM_FPU_enableLazyStacking                                            \
887         ((void (*)(void))ROM_FPUTABLE[3])
888 #endif
889 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
890     defined(TARGET_IS_MSP432P4XX_NEXT)
891 #define ROM_FPU_disableStacking                                               \
892         ((void (*)(void))ROM_FPUTABLE[4])
893 #endif
894 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
895     defined(TARGET_IS_MSP432P4XX_NEXT)
896 #define ROM_FPU_setHalfPrecisionMode                                          \
897         ((void (*)(uint32_t mode))ROM_FPUTABLE[5])
898 #endif
899 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
900     defined(TARGET_IS_MSP432P4XX_NEXT)
901 #define ROM_FPU_setNaNMode                                                    \
902         ((void (*)(uint32_t mode))ROM_FPUTABLE[6])
903 #endif
904 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
905     defined(TARGET_IS_MSP432P4XX_NEXT)
906 #define ROM_FPU_setFlushToZeroMode                                            \
907         ((void (*)(uint32_t mode))ROM_FPUTABLE[7])
908 #endif
909 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
910     defined(TARGET_IS_MSP432P4XX_NEXT)
911 #define ROM_FPU_setRoundingMode                                               \
912         ((void (*)(uint32_t mode))ROM_FPUTABLE[8])
913 #endif
914 
915 //*****************************************************************************
916 //
917 // Macros for calling ROM functions in the GPIO API.
918 //
919 //*****************************************************************************
920 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
921     defined(TARGET_IS_MSP432P4XX_NEXT)
922 #define ROM_GPIO_setAsOutputPin                                               \
923         ((void (*)(uint_fast8_t selectedPort,                                 \
924                    uint_fast16_t selectedPins))ROM_GPIOTABLE[0])
925 #endif
926 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
927     defined(TARGET_IS_MSP432P4XX_NEXT)
928 #define ROM_GPIO_setOutputHighOnPin                                           \
929         ((void (*)(uint_fast8_t selectedPort,                                 \
930                    uint_fast16_t selectedPins))ROM_GPIOTABLE[1])
931 #endif
932 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
933     defined(TARGET_IS_MSP432P4XX_NEXT)
934 #define ROM_GPIO_setOutputLowOnPin                                            \
935         ((void (*)(uint_fast8_t selectedPort,                                 \
936                    uint_fast16_t selectedPins))ROM_GPIOTABLE[2])
937 #endif
938 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
939     defined(TARGET_IS_MSP432P4XX_NEXT)
940 #define ROM_GPIO_toggleOutputOnPin                                            \
941         ((void (*)(uint_fast8_t selectedPort,                                 \
942                    uint_fast16_t selectedPins))ROM_GPIOTABLE[3])
943 #endif
944 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
945     defined(TARGET_IS_MSP432P4XX_NEXT)
946 #define ROM_GPIO_setAsInputPinWithPullDownResistor                            \
947         ((void (*)(uint_fast8_t selectedPort,                                 \
948                    uint_fast16_t selectedPins))ROM_GPIOTABLE[4])
949 #endif
950 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
951     defined(TARGET_IS_MSP432P4XX_NEXT)
952 #define ROM_GPIO_setAsInputPinWithPullUpResistor                              \
953         ((void (*)(uint_fast8_t selectedPort,                                 \
954                    uint_fast16_t selectedPins))ROM_GPIOTABLE[5])
955 #endif
956 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
957     defined(TARGET_IS_MSP432P4XX_NEXT)
958 #define ROM_GPIO_setAsPeripheralModuleFunctionOutputPin                       \
959         ((void (*)( uint_fast8_t selectedPort,                                \
960                    uint_fast16_t selectedPins,                                \
961                    uint_fast8_t mode))ROM_GPIOTABLE[6])
962 #endif
963 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
964     defined(TARGET_IS_MSP432P4XX_NEXT)
965 #define ROM_GPIO_setAsPeripheralModuleFunctionInputPin                        \
966         ((void (*)( uint_fast8_t selectedPort,                                \
967                    uint_fast16_t selectedPins,                                \
968                    uint_fast8_t mode))ROM_GPIOTABLE[7])
969 #endif
970 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
971     defined(TARGET_IS_MSP432P4XX_NEXT)
972 #define ROM_GPIO_getInputPinValue                                             \
973         ((uint8_t (*)(uint_fast8_t selectedPort,                              \
974                       uint_fast16_t selectedPins))ROM_GPIOTABLE[8])
975 #endif
976 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
977     defined(TARGET_IS_MSP432P4XX_NEXT)
978 #define ROM_GPIO_interruptEdgeSelect                                          \
979         ((void (*)(uint_fast8_t selectedPort,                                 \
980                    uint_fast16_t selectedPins,                                \
981                    uint_fast8_t edgeSelect))ROM_GPIOTABLE[9])
982 #endif
983 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
984     defined(TARGET_IS_MSP432P4XX_NEXT)
985 #define ROM_GPIO_enableInterrupt                                              \
986         ((void (*)(uint_fast8_t selectedPort,                                 \
987                    uint_fast16_t selectedPins))ROM_GPIOTABLE[10])
988 #endif
989 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
990     defined(TARGET_IS_MSP432P4XX_NEXT)
991 #define ROM_GPIO_disableInterrupt                                             \
992         ((void (*)(uint_fast8_t selectedPort,                                 \
993                    uint_fast16_t selectedPins))ROM_GPIOTABLE[11])
994 #endif
995 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
996     defined(TARGET_IS_MSP432P4XX_NEXT)
997 #define ROM_GPIO_getInterruptStatus                                           \
998         ((uint_fast16_t (*)(uint_fast8_t selectedPort,                        \
999                             uint_fast16_t selectedPins))ROM_GPIOTABLE[12])
1000 #endif
1001 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1002     defined(TARGET_IS_MSP432P4XX_NEXT)
1003 #define ROM_GPIO_clearInterruptFlag                                           \
1004         ((void (*)(uint_fast8_t selectedPort,                                 \
1005                    uint_fast16_t selectedPins))ROM_GPIOTABLE[13])
1006 #endif
1007 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1008     defined(TARGET_IS_MSP432P4XX_NEXT)
1009 #define ROM_GPIO_setAsInputPin                                                \
1010         ((void (*)(uint_fast8_t selectedPort,                                 \
1011                    uint_fast16_t selectedPins))ROM_GPIOTABLE[14])
1012 #endif
1013 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1014     defined(TARGET_IS_MSP432P4XX_NEXT)
1015 #define ROM_GPIO_getEnabledInterruptStatus                                    \
1016         ((uint_fast16_t (*)(uint_fast8_t selectedPort))ROM_GPIOTABLE[15])
1017 #endif
1018 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1019     defined(TARGET_IS_MSP432P4XX_NEXT)
1020 #define ROM_GPIO_setDriveStrengthHigh                                         \
1021         ((void (*)(uint_fast8_t selectedPort,                                 \
1022                    uint_fast8_t selectedPins))ROM_GPIOTABLE[16])
1023 #endif
1024 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1025     defined(TARGET_IS_MSP432P4XX_NEXT)
1026 #define ROM_GPIO_setDriveStrengthLow                                          \
1027         ((void (*)(uint_fast8_t selectedPort,                                 \
1028                    uint_fast8_t selectedPins))ROM_GPIOTABLE[17])
1029 #endif
1030 
1031 //*****************************************************************************
1032 //
1033 // Macros for calling ROM functions in the I2C API.
1034 //
1035 //*****************************************************************************
1036 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1037     defined(TARGET_IS_MSP432P4XX_NEXT)
1038 #define ROM_I2C_initMaster                                                    \
1039         ((void (*)(uint32_t moduleInstance,                                   \
1040                    const eUSCI_I2C_MasterConfig *config))ROM_I2CTABLE[0])
1041 #endif
1042 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1043     defined(TARGET_IS_MSP432P4XX_NEXT)
1044 #define ROM_I2C_initSlave                                                     \
1045         ((void (*)(uint32_t moduleInstance,                                   \
1046                    uint_fast16_t slaveAddress,                                \
1047                    uint_fast8_t slaveAddressOffset,                           \
1048                    uint32_t slaveOwnAddressEnable))ROM_I2CTABLE[1])
1049 #endif
1050 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1051     defined(TARGET_IS_MSP432P4XX_NEXT)
1052 #define ROM_I2C_enableModule                                                  \
1053         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[2])
1054 #endif
1055 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1056     defined(TARGET_IS_MSP432P4XX_NEXT)
1057 #define ROM_I2C_disableModule                                                 \
1058         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[3])
1059 #endif
1060 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1061     defined(TARGET_IS_MSP432P4XX_NEXT)
1062 #define ROM_I2C_setSlaveAddress                                               \
1063         ((void (*)(uint32_t moduleInstance,                                   \
1064                    uint_fast16_t slaveAddress))ROM_I2CTABLE[4])
1065 #endif
1066 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1067     defined(TARGET_IS_MSP432P4XX_NEXT)
1068 #define ROM_I2C_setMode                                                       \
1069         ((void (*)(uint32_t moduleInstance,                                   \
1070                    uint_fast8_t mode))ROM_I2CTABLE[5])
1071 #endif
1072 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1073     defined(TARGET_IS_MSP432P4XX_NEXT)
1074 #define ROM_I2C_slavePutData                                                  \
1075         ((void (*)(uint32_t moduleInstance,                                   \
1076                    uint8_t transmitData))ROM_I2CTABLE[6])
1077 #endif
1078 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1079     defined(TARGET_IS_MSP432P4XX_NEXT)
1080 #define ROM_I2C_slaveGetData                                                  \
1081         ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[7])
1082 #endif
1083 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1084     defined(TARGET_IS_MSP432P4XX_NEXT)
1085 #define ROM_I2C_isBusBusy                                                     \
1086         ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[8])
1087 #endif
1088 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1089     defined(TARGET_IS_MSP432P4XX_NEXT)
1090 #define ROM_I2C_masterSendSingleByte                                          \
1091         ((void (*)(uint32_t moduleInstance,                                   \
1092                    uint8_t txData))ROM_I2CTABLE[9])
1093 #endif
1094 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1095     defined(TARGET_IS_MSP432P4XX_NEXT)
1096 #define ROM_I2C_masterSendMultiByteNext                                       \
1097         ((void (*)(uint32_t moduleInstance,                                   \
1098                    uint8_t txData))ROM_I2CTABLE[13])
1099 #endif
1100 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1101     defined(TARGET_IS_MSP432P4XX_NEXT)
1102 #define ROM_I2C_masterSendMultiByteNextWithTimeout                            \
1103         ((bool (*)(uint32_t moduleInstance,                                   \
1104                    uint8_t txData,                                            \
1105                    uint32_t timeout))ROM_I2CTABLE[14])
1106 #endif
1107 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1108     defined(TARGET_IS_MSP432P4XX_NEXT)
1109 #define ROM_I2C_masterSendMultiByteStop                                       \
1110         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[17])
1111 #endif
1112 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1113     defined(TARGET_IS_MSP432P4XX_NEXT)
1114 #define ROM_I2C_masterSendMultiByteStopWithTimeout                            \
1115         ((bool (*)(uint32_t moduleInstance,                                   \
1116                    uint32_t timeout))ROM_I2CTABLE[18])
1117 #endif
1118 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1119     defined(TARGET_IS_MSP432P4XX_NEXT)
1120 #define ROM_I2C_masterReceiveStart                                            \
1121         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[19])
1122 #endif
1123 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1124     defined(TARGET_IS_MSP432P4XX_NEXT)
1125 #define ROM_I2C_masterReceiveMultiByteNext                                    \
1126         ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[20])
1127 #endif
1128 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1129     defined(TARGET_IS_MSP432P4XX_NEXT)
1130 #define ROM_I2C_masterReceiveMultiByteFinish                                  \
1131         ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[21])
1132 #endif
1133 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1134     defined(TARGET_IS_MSP432P4XX_NEXT)
1135 #define ROM_I2C_masterReceiveMultiByteFinishWithTimeout                       \
1136         ((bool (*)(uint32_t moduleInstance,                                   \
1137                    uint8_t *txData,                                           \
1138                    uint32_t timeout))ROM_I2CTABLE[22])
1139 #endif
1140 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1141     defined(TARGET_IS_MSP432P4XX_NEXT)
1142 #define ROM_I2C_masterReceiveMultiByteStop                                    \
1143         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[23])
1144 #endif
1145 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1146     defined(TARGET_IS_MSP432P4XX_NEXT)
1147 #define ROM_I2C_masterReceiveSingle                                           \
1148         ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[25])
1149 #endif
1150 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1151     defined(TARGET_IS_MSP432P4XX_NEXT)
1152 #define ROM_I2C_getReceiveBufferAddressForDMA                                 \
1153         ((uint32_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[26])
1154 #endif
1155 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1156     defined(TARGET_IS_MSP432P4XX_NEXT)
1157 #define ROM_I2C_getTransmitBufferAddressForDMA                                \
1158         ((uint32_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[27])
1159 #endif
1160 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1161     defined(TARGET_IS_MSP432P4XX_NEXT)
1162 #define ROM_I2C_masterIsStopSent                                              \
1163         ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[28])
1164 #endif
1165 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1166     defined(TARGET_IS_MSP432P4XX_NEXT)
1167 #define ROM_I2C_masterIsStartSent                                             \
1168         ((bool (*)(uint32_t moduleInstance))ROM_I2CTABLE[29])
1169 #endif
1170 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1171     defined(TARGET_IS_MSP432P4XX_NEXT)
1172 #define ROM_I2C_masterSendStart                                               \
1173         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[30])
1174 #endif
1175 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1176     defined(TARGET_IS_MSP432P4XX_NEXT)
1177 #define ROM_I2C_enableMultiMasterMode                                         \
1178         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[31])
1179 #endif
1180 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1181     defined(TARGET_IS_MSP432P4XX_NEXT)
1182 #define ROM_I2C_disableMultiMasterMode                                        \
1183         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[32])
1184 #endif
1185 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1186     defined(TARGET_IS_MSP432P4XX_NEXT)
1187 #define ROM_I2C_enableInterrupt                                               \
1188         ((void (*)(uint32_t moduleInstance,                                   \
1189                    uint_fast16_t mask))ROM_I2CTABLE[33])
1190 #endif
1191 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1192     defined(TARGET_IS_MSP432P4XX_NEXT)
1193 #define ROM_I2C_disableInterrupt                                              \
1194         ((void (*)(uint32_t moduleInstance,                                   \
1195                    uint_fast16_t mask))ROM_I2CTABLE[34])
1196 #endif
1197 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1198     defined(TARGET_IS_MSP432P4XX_NEXT)
1199 #define ROM_I2C_clearInterruptFlag                                            \
1200         ((void (*)(uint32_t moduleInstance,                                   \
1201                    uint_fast16_t mask))ROM_I2CTABLE[35])
1202 #endif
1203 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1204     defined(TARGET_IS_MSP432P4XX_NEXT)
1205 #define ROM_I2C_getInterruptStatus                                            \
1206         ((uint_fast16_t (*)(uint32_t moduleInstance,                          \
1207                             uint16_t mask))ROM_I2CTABLE[36])
1208 #endif
1209 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1210     defined(TARGET_IS_MSP432P4XX_NEXT)
1211 #define ROM_I2C_getEnabledInterruptStatus                                     \
1212         ((uint_fast16_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[37])
1213 #endif
1214 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1215     defined(TARGET_IS_MSP432P4XX_NEXT)
1216 #define ROM_I2C_getMode                                                       \
1217         ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[38])
1218 #endif
1219 #if defined(TARGET_IS_MSP432P4XX_NEXT)
1220 #define ROM_I2C_slaveSendNAK                                                  \
1221         ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[41])
1222 #endif
1223 
1224 //*****************************************************************************
1225 //
1226 // Macros for calling ROM functions in the Interrupt API.
1227 //
1228 //*****************************************************************************
1229 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1230     defined(TARGET_IS_MSP432P4XX_NEXT)
1231 #define ROM_Interrupt_enableMaster                                            \
1232         ((bool (*)(void))ROM_INTTABLE[0])
1233 #endif
1234 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1235     defined(TARGET_IS_MSP432P4XX_NEXT)
1236 #define ROM_Interrupt_disableMaster                                           \
1237         ((bool (*)(void))ROM_INTTABLE[1])
1238 #endif
1239 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1240     defined(TARGET_IS_MSP432P4XX_NEXT)
1241 #define ROM_Interrupt_getPriorityGrouping                                     \
1242         ((uint32_t (*)(void))ROM_INTTABLE[3])
1243 #endif
1244 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1245     defined(TARGET_IS_MSP432P4XX_NEXT)
1246 #define ROM_Interrupt_setPriority                                             \
1247         ((void (*)(uint32_t interruptNumber,                                  \
1248                    uint8_t priority))ROM_INTTABLE[4])
1249 #endif
1250 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1251     defined(TARGET_IS_MSP432P4XX_NEXT)
1252 #define ROM_Interrupt_getPriority                                             \
1253         ((uint8_t (*)(uint32_t interruptNumber))ROM_INTTABLE[5])
1254 #endif
1255 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1256     defined(TARGET_IS_MSP432P4XX_NEXT)
1257 #define ROM_Interrupt_enableInterrupt                                         \
1258         ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[6])
1259 #endif
1260 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1261     defined(TARGET_IS_MSP432P4XX_NEXT)
1262 #define ROM_Interrupt_disableInterrupt                                        \
1263         ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[7])
1264 #endif
1265 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1266     defined(TARGET_IS_MSP432P4XX_NEXT)
1267 #define ROM_Interrupt_isEnabled                                               \
1268         ((bool (*)(uint32_t interruptNumber))ROM_INTTABLE[8])
1269 #endif
1270 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1271     defined(TARGET_IS_MSP432P4XX_NEXT)
1272 #define ROM_Interrupt_pendInterrupt                                           \
1273         ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[9])
1274 #endif
1275 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1276     defined(TARGET_IS_MSP432P4XX_NEXT)
1277 #define ROM_Interrupt_setPriorityMask                                         \
1278         ((void (*)(uint8_t priorityMask))ROM_INTTABLE[10])
1279 #endif
1280 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1281     defined(TARGET_IS_MSP432P4XX_NEXT)
1282 #define ROM_Interrupt_getPriorityMask                                         \
1283         ((uint8_t (*)(void))ROM_INTTABLE[11])
1284 #endif
1285 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1286     defined(TARGET_IS_MSP432P4XX_NEXT)
1287 #define ROM_Interrupt_setVectorTableAddress                                   \
1288         ((void (*)(uint32_t addr))ROM_INTTABLE[12])
1289 #endif
1290 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1291     defined(TARGET_IS_MSP432P4XX_NEXT)
1292 #define ROM_Interrupt_getVectorTableAddress                                   \
1293         ((uint32_t (*)(void))ROM_INTTABLE[13])
1294 #endif
1295 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1296     defined(TARGET_IS_MSP432P4XX_NEXT)
1297 #define ROM_Interrupt_enableSleepOnIsrExit                                    \
1298         ((void (*)(void))ROM_INTTABLE[14])
1299 #endif
1300 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1301     defined(TARGET_IS_MSP432P4XX_NEXT)
1302 #define ROM_Interrupt_disableSleepOnIsrExit                                   \
1303         ((void (*)(void))ROM_INTTABLE[15])
1304 #endif
1305 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1306     defined(TARGET_IS_MSP432P4XX_NEXT)
1307 #define ROM_Interrupt_unpendInterrupt                                         \
1308         ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[18])
1309 #endif
1310 
1311 //*****************************************************************************
1312 //
1313 // Macros for calling ROM functions in the MPU API.
1314 //
1315 //*****************************************************************************
1316 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1317     defined(TARGET_IS_MSP432P4XX_NEXT)
1318 #define ROM_MPU_enableModule                                                  \
1319         ((void (*)(uint32_t mpuConfig))ROM_MPUTABLE[0])
1320 #endif
1321 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1322     defined(TARGET_IS_MSP432P4XX_NEXT)
1323 #define ROM_MPU_disableModule                                                 \
1324         ((void (*)(void))ROM_MPUTABLE[1])
1325 #endif
1326 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1327     defined(TARGET_IS_MSP432P4XX_NEXT)
1328 #define ROM_MPU_getRegionCount                                                \
1329         ((uint32_t (*)(void))ROM_MPUTABLE[2])
1330 #endif
1331 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1332     defined(TARGET_IS_MSP432P4XX_NEXT)
1333 #define ROM_MPU_enableRegion                                                  \
1334         ((void (*)(uint32_t region))ROM_MPUTABLE[3])
1335 #endif
1336 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1337     defined(TARGET_IS_MSP432P4XX_NEXT)
1338 #define ROM_MPU_disableRegion                                                 \
1339         ((void (*)(uint32_t region))ROM_MPUTABLE[4])
1340 #endif
1341 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1342     defined(TARGET_IS_MSP432P4XX_NEXT)
1343 #define ROM_MPU_setRegion                                                     \
1344         ((void (*)(uint32_t region,                                           \
1345                    uint32_t addr,                                             \
1346                    uint32_t flags))ROM_MPUTABLE[5])
1347 #endif
1348 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1349     defined(TARGET_IS_MSP432P4XX_NEXT)
1350 #define ROM_MPU_getRegion                                                     \
1351         ((void (*)(uint32_t region,                                           \
1352                    uint32_t *addr,                                            \
1353                    uint32_t *pflags))ROM_MPUTABLE[6])
1354 #endif
1355 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1356     defined(TARGET_IS_MSP432P4XX_NEXT)
1357 #define ROM_MPU_enableInterrupt                                               \
1358         ((void (*)(void))ROM_MPUTABLE[7])
1359 #endif
1360 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1361     defined(TARGET_IS_MSP432P4XX_NEXT)
1362 #define ROM_MPU_disableInterrupt                                              \
1363         ((void (*)(void))ROM_MPUTABLE[8])
1364 #endif
1365 
1366 //*****************************************************************************
1367 //
1368 // Macros for calling ROM functions in the PCM API.
1369 //
1370 //*****************************************************************************
1371 #if defined(TARGET_IS_MSP432P4XX)
1372 #define ROM_PCM_setCoreVoltageLevel                                           \
1373         ((bool (*)(uint_fast8_t voltageLevel))ROM_PCMTABLE[0])
1374 #endif
1375 #if defined(TARGET_IS_MSP432P4XX)
1376 #define ROM_PCM_getCoreVoltageLevel                                           \
1377         ((uint8_t (*)(void))ROM_PCMTABLE[1])
1378 #endif
1379 #if defined(TARGET_IS_MSP432P4XX)
1380 #define ROM_PCM_setCoreVoltageLevelWithTimeout                                \
1381         ((bool (*)(uint_fast8_t voltageLevel,                                 \
1382                    uint32_t timeOut))ROM_PCMTABLE[2])
1383 #endif
1384 #if defined(TARGET_IS_MSP432P4XX)
1385 #define ROM_PCM_setPowerMode                                                  \
1386         ((bool (*)(uint_fast8_t powerMode))ROM_PCMTABLE[3])
1387 #endif
1388 #if defined(TARGET_IS_MSP432P4XX)
1389 #define ROM_PCM_setPowerModeWithTimeout                                       \
1390         ((bool (*)(uint_fast8_t powerMode,                                    \
1391                    uint32_t timeOut))ROM_PCMTABLE[4])
1392 #endif
1393 #if defined(TARGET_IS_MSP432P4XX)
1394 #define ROM_PCM_getPowerMode                                                  \
1395         ((uint8_t (*)(void))ROM_PCMTABLE[5])
1396 #endif
1397 #if defined(TARGET_IS_MSP432P4XX)
1398 #define ROM_PCM_setPowerState                                                 \
1399         ((bool (*)(uint_fast8_t powerState))ROM_PCMTABLE[6])
1400 #endif
1401 #if defined(TARGET_IS_MSP432P4XX)
1402 #define ROM_PCM_setPowerStateWithTimeout                                      \
1403         ((bool (*)(uint_fast8_t powerState,                                   \
1404                    uint32_t timeout))ROM_PCMTABLE[7])
1405 #endif
1406 #if defined(TARGET_IS_MSP432P4XX)
1407 #define ROM_PCM_getPowerState                                                 \
1408         ((uint8_t (*)(void))ROM_PCMTABLE[8])
1409 #endif
1410 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1411     defined(TARGET_IS_MSP432P4XX_NEXT)
1412 #define ROM_PCM_shutdownDevice                                                \
1413         ((bool (*)(uint32_t shutdownMode))ROM_PCMTABLE[9])
1414 #endif
1415 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1416     defined(TARGET_IS_MSP432P4XX_NEXT)
1417 #define ROM_PCM_gotoLPM0                                                      \
1418         ((bool (*)(void))ROM_PCMTABLE[10])
1419 #endif
1420 #if defined(TARGET_IS_MSP432P4XX)
1421 #define ROM_PCM_gotoLPM3                                                      \
1422         ((bool (*)(void))ROM_PCMTABLE[11])
1423 #endif
1424 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1425     defined(TARGET_IS_MSP432P4XX_NEXT)
1426 #define ROM_PCM_enableInterrupt                                               \
1427         ((void (*)(uint32_t flags))ROM_PCMTABLE[12])
1428 #endif
1429 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1430     defined(TARGET_IS_MSP432P4XX_NEXT)
1431 #define ROM_PCM_disableInterrupt                                              \
1432         ((void (*)(uint32_t flags))ROM_PCMTABLE[13])
1433 #endif
1434 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1435     defined(TARGET_IS_MSP432P4XX_NEXT)
1436 #define ROM_PCM_getInterruptStatus                                            \
1437         ((uint32_t (*)(void))ROM_PCMTABLE[14])
1438 #endif
1439 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1440     defined(TARGET_IS_MSP432P4XX_NEXT)
1441 #define ROM_PCM_getEnabledInterruptStatus                                     \
1442         ((uint32_t (*)(void))ROM_PCMTABLE[15])
1443 #endif
1444 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1445     defined(TARGET_IS_MSP432P4XX_NEXT)
1446 #define ROM_PCM_clearInterruptFlag                                            \
1447         ((void (*)(uint32_t flags))ROM_PCMTABLE[16])
1448 #endif
1449 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1450     defined(TARGET_IS_MSP432P4XX_NEXT)
1451 #define ROM_PCM_enableRudeMode                                                \
1452         ((void (*)(void))ROM_PCMTABLE[17])
1453 #endif
1454 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1455     defined(TARGET_IS_MSP432P4XX_NEXT)
1456 #define ROM_PCM_disableRudeMode                                               \
1457         ((void (*)(void))ROM_PCMTABLE[18])
1458 #endif
1459 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1460     defined(TARGET_IS_MSP432P4XX_NEXT)
1461 #define ROM_PCM_gotoLPM0InterruptSafe                                         \
1462         ((bool (*)(void))ROM_PCMTABLE[19])
1463 #endif
1464 #if defined(TARGET_IS_MSP432P4XX)
1465 #define ROM_PCM_gotoLPM3InterruptSafe                                         \
1466         ((bool (*)(void))ROM_PCMTABLE[20])
1467 #endif
1468 #if defined(TARGET_IS_MSP432P4XX)
1469 #define ROM_PCM_setCoreVoltageLevelNonBlocking                                \
1470         ((bool (*)(uint_fast8_t voltageLevel))ROM_PCMTABLE[23])
1471 #endif
1472 #if defined(TARGET_IS_MSP432P4XX)
1473 #define ROM_PCM_setPowerModeNonBlocking                                       \
1474         ((bool (*)(uint_fast8_t powerMode))ROM_PCMTABLE[24])
1475 #endif
1476 #if defined(TARGET_IS_MSP432P4XX)
1477 #define ROM_PCM_setPowerStateNonBlocking                                      \
1478         ((bool (*)(uint_fast8_t powerState))ROM_PCMTABLE[25])
1479 #endif
1480 #if defined(TARGET_IS_MSP432P4XX)
1481 #define ROM_PCM_gotoLPM4                                                      \
1482         ((bool (*)(void))ROM_PCMTABLE[26])
1483 #endif
1484 #if defined(TARGET_IS_MSP432P4XX)
1485 #define ROM_PCM_gotoLPM4InterruptSafe                                         \
1486         ((bool (*)(void))ROM_PCMTABLE[27])
1487 #endif
1488 
1489 //*****************************************************************************
1490 //
1491 // Macros for calling ROM functions in the PMAP API.
1492 //
1493 //*****************************************************************************
1494 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1495     defined(TARGET_IS_MSP432P4XX_NEXT)
1496 #define ROM_PMAP_configurePorts                                               \
1497         ((void (*)(const uint8_t *portMapping,                                \
1498                    uint8_t pxMAPy,                                            \
1499                    uint8_t numberOfPorts,                                     \
1500                    uint8_t portMapReconfigure))ROM_PMAPTABLE[0])
1501 #endif
1502 
1503 //*****************************************************************************
1504 //
1505 // Macros for calling ROM functions in the PSS API.
1506 //
1507 //*****************************************************************************
1508 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1509     defined(TARGET_IS_MSP432P4XX_NEXT)
1510 #define ROM_PSS_enableHighSidePinToggle                                       \
1511         ((void (*)(bool activeLow))ROM_PSSTABLE[0])
1512 #endif
1513 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1514     defined(TARGET_IS_MSP432P4XX_NEXT)
1515 #define ROM_PSS_disableHighSidePinToggle                                      \
1516         ((void (*)(void))ROM_PSSTABLE[1])
1517 #endif
1518 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1519     defined(TARGET_IS_MSP432P4XX_NEXT)
1520 #define ROM_PSS_enableHighSide                                                \
1521         ((void (*)(void))ROM_PSSTABLE[2])
1522 #endif
1523 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1524     defined(TARGET_IS_MSP432P4XX_NEXT)
1525 #define ROM_PSS_disableHighSide                                               \
1526         ((void (*)(void))ROM_PSSTABLE[3])
1527 #endif
1528 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1529     defined(TARGET_IS_MSP432P4XX_NEXT)
1530 #define ROM_PSS_setHighSidePerformanceMode                                    \
1531         ((void (*)(uint_fast8_t powerMode))ROM_PSSTABLE[6])
1532 #endif
1533 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1534     defined(TARGET_IS_MSP432P4XX_NEXT)
1535 #define ROM_PSS_getHighSidePerformanceMode                                    \
1536         ((uint_fast8_t (*)(void))ROM_PSSTABLE[7])
1537 #endif
1538 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1539     defined(TARGET_IS_MSP432P4XX_NEXT)
1540 #define ROM_PSS_enableHighSideMonitor                                         \
1541         ((void (*)(void))ROM_PSSTABLE[10])
1542 #endif
1543 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1544     defined(TARGET_IS_MSP432P4XX_NEXT)
1545 #define ROM_PSS_disableHighSideMonitor                                        \
1546         ((void (*)(void))ROM_PSSTABLE[11])
1547 #endif
1548 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1549     defined(TARGET_IS_MSP432P4XX_NEXT)
1550 #define ROM_PSS_setHighSideVoltageTrigger                                     \
1551         ((void (*)(uint_fast8_t triggerVoltage))ROM_PSSTABLE[12])
1552 #endif
1553 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1554     defined(TARGET_IS_MSP432P4XX_NEXT)
1555 #define ROM_PSS_getHighSideVoltageTrigger                                     \
1556         ((uint_fast8_t (*)(void))ROM_PSSTABLE[13])
1557 #endif
1558 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1559     defined(TARGET_IS_MSP432P4XX_NEXT)
1560 #define ROM_PSS_enableInterrupt                                               \
1561         ((void (*)(void))ROM_PSSTABLE[14])
1562 #endif
1563 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1564     defined(TARGET_IS_MSP432P4XX_NEXT)
1565 #define ROM_PSS_disableInterrupt                                              \
1566         ((void (*)(void))ROM_PSSTABLE[15])
1567 #endif
1568 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1569     defined(TARGET_IS_MSP432P4XX_NEXT)
1570 #define ROM_PSS_getInterruptStatus                                            \
1571         ((uint32_t (*)(void))ROM_PSSTABLE[16])
1572 #endif
1573 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1574     defined(TARGET_IS_MSP432P4XX_NEXT)
1575 #define ROM_PSS_enableForcedDCDCOperation                                     \
1576         ((void (*)(void))ROM_PSSTABLE[20])
1577 #endif
1578 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1579     defined(TARGET_IS_MSP432P4XX_NEXT)
1580 #define ROM_PSS_disableForcedDCDCOperation                                    \
1581         ((void (*)(void))ROM_PSSTABLE[21])
1582 #endif
1583 
1584 //*****************************************************************************
1585 //
1586 // Macros for calling ROM functions in the Ref API.
1587 //
1588 //*****************************************************************************
1589 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1590     defined(TARGET_IS_MSP432P4XX_NEXT)
1591 #define ROM_REF_A_setReferenceVoltage                                         \
1592         ((void (*)(uint_fast8_t referenceVoltageSelect))ROM_REFTABLE[0])
1593 #endif
1594 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1595     defined(TARGET_IS_MSP432P4XX_NEXT)
1596 #define ROM_REF_A_disableTempSensor                                           \
1597         ((void (*)(void))ROM_REFTABLE[1])
1598 #endif
1599 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1600     defined(TARGET_IS_MSP432P4XX_NEXT)
1601 #define ROM_REF_A_enableTempSensor                                            \
1602         ((void (*)(void))ROM_REFTABLE[2])
1603 #endif
1604 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1605     defined(TARGET_IS_MSP432P4XX_NEXT)
1606 #define ROM_REF_A_enableReferenceVoltageOutput                                \
1607         ((void (*)(void))ROM_REFTABLE[3])
1608 #endif
1609 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1610     defined(TARGET_IS_MSP432P4XX_NEXT)
1611 #define ROM_REF_A_disableReferenceVoltageOutput                               \
1612         ((void (*)(void))ROM_REFTABLE[4])
1613 #endif
1614 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1615     defined(TARGET_IS_MSP432P4XX_NEXT)
1616 #define ROM_REF_A_enableReferenceVoltage                                      \
1617         ((void (*)(void))ROM_REFTABLE[5])
1618 #endif
1619 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1620     defined(TARGET_IS_MSP432P4XX_NEXT)
1621 #define ROM_REF_A_disableReferenceVoltage                                     \
1622         ((void (*)(void))ROM_REFTABLE[6])
1623 #endif
1624 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1625     defined(TARGET_IS_MSP432P4XX_NEXT)
1626 #define ROM_REF_A_getBandgapMode                                              \
1627         ((uint_fast8_t (*)(void))ROM_REFTABLE[7])
1628 #endif
1629 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1630     defined(TARGET_IS_MSP432P4XX_NEXT)
1631 #define ROM_REF_A_isBandgapActive                                             \
1632         ((bool (*)(void))ROM_REFTABLE[8])
1633 #endif
1634 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1635     defined(TARGET_IS_MSP432P4XX_NEXT)
1636 #define ROM_REF_A_isRefGenBusy                                                \
1637         ((bool (*)(void))ROM_REFTABLE[9])
1638 #endif
1639 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1640     defined(TARGET_IS_MSP432P4XX_NEXT)
1641 #define ROM_REF_A_isRefGenActive                                              \
1642         ((bool (*)(void))ROM_REFTABLE[10])
1643 #endif
1644 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1645     defined(TARGET_IS_MSP432P4XX_NEXT)
1646 #define ROM_REF_A_getBufferedBandgapVoltageStatus                             \
1647         ((bool (*)(void))ROM_REFTABLE[11])
1648 #endif
1649 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1650     defined(TARGET_IS_MSP432P4XX_NEXT)
1651 #define ROM_REF_A_getVariableReferenceVoltageStatus                           \
1652         ((bool (*)(void))ROM_REFTABLE[12])
1653 #endif
1654 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1655     defined(TARGET_IS_MSP432P4XX_NEXT)
1656 #define ROM_REF_A_setReferenceVoltageOneTimeTrigger                           \
1657         ((void (*)(void))ROM_REFTABLE[13])
1658 #endif
1659 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1660     defined(TARGET_IS_MSP432P4XX_NEXT)
1661 #define ROM_REF_A_setBufferedBandgapVoltageOneTimeTrigger                     \
1662         ((void (*)(void))ROM_REFTABLE[14])
1663 #endif
1664 
1665 //*****************************************************************************
1666 //
1667 // Macros for calling ROM functions in the ResetCtl API.
1668 //
1669 //*****************************************************************************
1670 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1671     defined(TARGET_IS_MSP432P4XX_NEXT)
1672 #define ROM_ResetCtl_initiateSoftReset                                        \
1673         ((void (*)(void))ROM_RESETCTLTABLE[0])
1674 #endif
1675 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1676     defined(TARGET_IS_MSP432P4XX_NEXT)
1677 #define ROM_ResetCtl_initiateSoftResetWithSource                              \
1678         ((void (*)(uint32_t source))ROM_RESETCTLTABLE[1])
1679 #endif
1680 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1681     defined(TARGET_IS_MSP432P4XX_NEXT)
1682 #define ROM_ResetCtl_getSoftResetSource                                       \
1683         ((uint32_t (*)(void))ROM_RESETCTLTABLE[2])
1684 #endif
1685 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1686     defined(TARGET_IS_MSP432P4XX_NEXT)
1687 #define ROM_ResetCtl_clearSoftResetSource                                     \
1688         ((void (*)(uint32_t mask))ROM_RESETCTLTABLE[3])
1689 #endif
1690 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1691     defined(TARGET_IS_MSP432P4XX_NEXT)
1692 #define ROM_ResetCtl_initiateHardReset                                        \
1693         ((void (*)(void))ROM_RESETCTLTABLE[4])
1694 #endif
1695 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1696     defined(TARGET_IS_MSP432P4XX_NEXT)
1697 #define ROM_ResetCtl_initiateHardResetWithSource                              \
1698         ((void (*)(uint32_t source))ROM_RESETCTLTABLE[5])
1699 #endif
1700 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1701     defined(TARGET_IS_MSP432P4XX_NEXT)
1702 #define ROM_ResetCtl_getHardResetSource                                       \
1703         ((uint32_t (*)(void))ROM_RESETCTLTABLE[6])
1704 #endif
1705 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1706     defined(TARGET_IS_MSP432P4XX_NEXT)
1707 #define ROM_ResetCtl_clearHardResetSource                                     \
1708         ((void (*)(uint32_t mask))ROM_RESETCTLTABLE[7])
1709 #endif
1710 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1711     defined(TARGET_IS_MSP432P4XX_NEXT)
1712 #define ROM_ResetCtl_getPSSSource                                             \
1713         ((uint32_t (*)(void))ROM_RESETCTLTABLE[8])
1714 #endif
1715 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1716     defined(TARGET_IS_MSP432P4XX_NEXT)
1717 #define ROM_ResetCtl_clearPSSFlags                                            \
1718         ((void (*)(void))ROM_RESETCTLTABLE[9])
1719 #endif
1720 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1721     defined(TARGET_IS_MSP432P4XX_NEXT)
1722 #define ROM_ResetCtl_getPCMSource                                             \
1723         ((uint32_t (*)(void))ROM_RESETCTLTABLE[10])
1724 #endif
1725 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1726     defined(TARGET_IS_MSP432P4XX_NEXT)
1727 #define ROM_ResetCtl_clearPCMFlags                                            \
1728         ((void (*)(void))ROM_RESETCTLTABLE[11])
1729 #endif
1730 
1731 //*****************************************************************************
1732 //
1733 // Macros for calling ROM functions in the RTC API.
1734 //
1735 //*****************************************************************************
1736 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1737     defined(TARGET_IS_MSP432P4XX_NEXT)
1738 #define ROM_RTC_C_startClock                                                  \
1739         ((void (*)(void))ROM_RTCTABLE[0])
1740 #endif
1741 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1742     defined(TARGET_IS_MSP432P4XX_NEXT)
1743 #define ROM_RTC_C_holdClock                                                   \
1744         ((void (*)(void))ROM_RTCTABLE[1])
1745 #endif
1746 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1747     defined(TARGET_IS_MSP432P4XX_NEXT)
1748 #define ROM_RTC_C_setCalibrationFrequency                                     \
1749         ((void (*)(uint_fast16_t frequencySelect))ROM_RTCTABLE[2])
1750 #endif
1751 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1752     defined(TARGET_IS_MSP432P4XX_NEXT)
1753 #define ROM_RTC_C_setCalibrationData                                          \
1754         ((void (*)(uint_fast8_t offsetDirection,                              \
1755                    uint_fast8_t offsetValue))ROM_RTCTABLE[3])
1756 #endif
1757 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1758     defined(TARGET_IS_MSP432P4XX_NEXT)
1759 #define ROM_RTC_C_setTemperatureCompensation                                  \
1760         ((bool (*)(uint_fast16_t offsetDirection,                             \
1761                    uint_fast8_t offsetValue))ROM_RTCTABLE[4])
1762 #endif
1763 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1764     defined(TARGET_IS_MSP432P4XX_NEXT)
1765 #define ROM_RTC_C_initCalendar                                                \
1766         ((void (*)(const RTC_C_Calendar *calendarTime,                        \
1767                    uint_fast16_t formatSelect))ROM_RTCTABLE[5])
1768 #endif
1769 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1770     defined(TARGET_IS_MSP432P4XX_NEXT)
1771 #define ROM_RTC_C_setCalendarAlarm                                            \
1772         ((void (*)(uint_fast8_t minutesAlarm,                                 \
1773                    uint_fast8_t hoursAlarm,                                   \
1774                    uint_fast8_t dayOfWeekAlarm,                               \
1775                    uint_fast8_t dayOfmonthAlarm))ROM_RTCTABLE[7])
1776 #endif
1777 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1778     defined(TARGET_IS_MSP432P4XX_NEXT)
1779 #define ROM_RTC_C_setCalendarEvent                                            \
1780         ((void (*)(uint_fast16_t eventSelect))ROM_RTCTABLE[8])
1781 #endif
1782 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1783     defined(TARGET_IS_MSP432P4XX_NEXT)
1784 #define ROM_RTC_C_getPrescaleValue                                            \
1785         ((uint_fast8_t (*)(uint_fast8_t prescaleSelect))ROM_RTCTABLE[10])
1786 #endif
1787 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1788     defined(TARGET_IS_MSP432P4XX_NEXT)
1789 #define ROM_RTC_C_setPrescaleValue                                            \
1790         ((void (*)(uint_fast8_t prescaleSelect,                               \
1791                    uint_fast8_t prescaleCounterValue))ROM_RTCTABLE[11])
1792 #endif
1793 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1794     defined(TARGET_IS_MSP432P4XX_NEXT)
1795 #define ROM_RTC_C_convertBCDToBinary                                          \
1796         ((uint16_t (*)(uint16_t valueToConvert))ROM_RTCTABLE[12])
1797 #endif
1798 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1799     defined(TARGET_IS_MSP432P4XX_NEXT)
1800 #define ROM_RTC_C_convertBinaryToBCD                                          \
1801         ((uint16_t (*)(uint16_t valueToConvert))ROM_RTCTABLE[13])
1802 #endif
1803 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1804     defined(TARGET_IS_MSP432P4XX_NEXT)
1805 #define ROM_RTC_C_getInterruptStatus                                          \
1806         ((uint_fast8_t (*)(void))ROM_RTCTABLE[16])
1807 #endif
1808 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1809     defined(TARGET_IS_MSP432P4XX_NEXT)
1810 #define ROM_RTC_C_clearInterruptFlag                                          \
1811         ((void (*)(uint_fast8_t interruptFlagMask))ROM_RTCTABLE[18])
1812 #endif
1813 
1814 //*****************************************************************************
1815 //
1816 // Macros for calling ROM functions in the SPI API.
1817 //
1818 //*****************************************************************************
1819 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1820     defined(TARGET_IS_MSP432P4XX_NEXT)
1821 #define ROM_SPI_selectFourPinFunctionality                                    \
1822         ((void (*)(uint32_t moduleInstance,                                   \
1823                    uint_fast8_t select4PinFunctionality))ROM_SPITABLE[1])
1824 #endif
1825 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1826     defined(TARGET_IS_MSP432P4XX_NEXT)
1827 #define ROM_SPI_changeMasterClock                                             \
1828         ((void (*)(uint32_t moduleInstance,                                   \
1829                    uint32_t clockSourceFrequency,                             \
1830                    uint32_t desiredSpiClock))ROM_SPITABLE[2])
1831 #endif
1832 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1833     defined(TARGET_IS_MSP432P4XX_NEXT)
1834 #define ROM_SPI_initSlave                                                     \
1835         ((bool (*)(uint32_t moduleInstance,                                   \
1836                    const eUSCI_SPI_SlaveConfig *config))ROM_SPITABLE[3])
1837 #endif
1838 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1839     defined(TARGET_IS_MSP432P4XX_NEXT)
1840 #define ROM_SPI_changeClockPhasePolarity                                      \
1841         ((void (*)(uint32_t moduleInstance,                                   \
1842                    uint_fast16_t clockPhase,                                  \
1843                    uint_fast16_t clockPolarity))ROM_SPITABLE[4])
1844 #endif
1845 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1846     defined(TARGET_IS_MSP432P4XX_NEXT)
1847 #define ROM_SPI_transmitData                                                  \
1848         ((void (*)(uint32_t moduleInstance,                                   \
1849                    uint_fast8_t transmitData))ROM_SPITABLE[5])
1850 #endif
1851 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1852     defined(TARGET_IS_MSP432P4XX_NEXT)
1853 #define ROM_SPI_receiveData                                                   \
1854         ((uint8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[6])
1855 #endif
1856 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1857     defined(TARGET_IS_MSP432P4XX_NEXT)
1858 #define ROM_SPI_enableModule                                                  \
1859         ((void (*)(uint32_t moduleInstance))ROM_SPITABLE[7])
1860 #endif
1861 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1862     defined(TARGET_IS_MSP432P4XX_NEXT)
1863 #define ROM_SPI_disableModule                                                 \
1864         ((void (*)(uint32_t moduleInstance))ROM_SPITABLE[8])
1865 #endif
1866 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1867     defined(TARGET_IS_MSP432P4XX_NEXT)
1868 #define ROM_SPI_getReceiveBufferAddressForDMA                                 \
1869         ((uint32_t (*)(uint32_t moduleInstance))ROM_SPITABLE[9])
1870 #endif
1871 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1872     defined(TARGET_IS_MSP432P4XX_NEXT)
1873 #define ROM_SPI_getTransmitBufferAddressForDMA                                \
1874         ((uint32_t (*)(uint32_t moduleInstance))ROM_SPITABLE[10])
1875 #endif
1876 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1877     defined(TARGET_IS_MSP432P4XX_NEXT)
1878 #define ROM_SPI_isBusy                                                        \
1879         ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[11])
1880 #endif
1881 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1882     defined(TARGET_IS_MSP432P4XX_NEXT)
1883 #define ROM_SPI_enableInterrupt                                               \
1884         ((void (*)(uint32_t moduleInstance,                                   \
1885                    uint_fast8_t mask))ROM_SPITABLE[12])
1886 #endif
1887 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1888     defined(TARGET_IS_MSP432P4XX_NEXT)
1889 #define ROM_SPI_disableInterrupt                                              \
1890         ((void (*)(uint32_t moduleInstance,                                   \
1891                    uint_fast8_t mask))ROM_SPITABLE[13])
1892 #endif
1893 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1894     defined(TARGET_IS_MSP432P4XX_NEXT)
1895 #define ROM_SPI_getInterruptStatus                                            \
1896         ((uint_fast8_t (*)(uint32_t moduleInstance,                           \
1897                            uint16_t mask))ROM_SPITABLE[14])
1898 #endif
1899 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1900     defined(TARGET_IS_MSP432P4XX_NEXT)
1901 #define ROM_SPI_clearInterruptFlag                                            \
1902         ((void (*)(uint32_t moduleInstance,                                   \
1903                    uint_fast8_t mask))ROM_SPITABLE[16])
1904 #endif
1905 
1906 //*****************************************************************************
1907 //
1908 // Macros for calling ROM functions in the SysCtl API.
1909 //
1910 //*****************************************************************************
1911 #if defined(TARGET_IS_MSP432P4XX)
1912 #define ROM_SysCtl_getSRAMSize                                                \
1913         ((uint_least32_t (*)(void))ROM_SYSCTLTABLE[0])
1914 #endif
1915 #if defined(TARGET_IS_MSP432P4XX)
1916 #define ROM_SysCtl_getFlashSize                                               \
1917         ((uint_least32_t (*)(void))ROM_SYSCTLTABLE[1])
1918 #endif
1919 #if defined(TARGET_IS_MSP432P4XX)
1920 #define ROM_SysCtl_rebootDevice                                               \
1921         ((void (*)(void))ROM_SYSCTLTABLE[2])
1922 #endif
1923 #if defined(TARGET_IS_MSP432P4XX)
1924 #define ROM_SysCtl_enableSRAMBank                                             \
1925         ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[3])
1926 #endif
1927 #if defined(TARGET_IS_MSP432P4XX)
1928 #define ROM_SysCtl_disableSRAMBank                                            \
1929         ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[4])
1930 #endif
1931 #if defined(TARGET_IS_MSP432P4XX)
1932 #define ROM_SysCtl_enableSRAMBankRetention                                    \
1933         ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[5])
1934 #endif
1935 #if defined(TARGET_IS_MSP432P4XX)
1936 #define ROM_SysCtl_disableSRAMBankRetention                                   \
1937         ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[6])
1938 #endif
1939 #if defined(TARGET_IS_MSP432P4XX)
1940 #define ROM_SysCtl_enablePeripheralAtCPUHalt                                  \
1941         ((void (*)(uint_fast16_t devices))ROM_SYSCTLTABLE[7])
1942 #endif
1943 #if defined(TARGET_IS_MSP432P4XX)
1944 #define ROM_SysCtl_disablePeripheralAtCPUHalt                                 \
1945         ((void (*)(uint_fast16_t devices))ROM_SYSCTLTABLE[8])
1946 #endif
1947 #if defined(TARGET_IS_MSP432P4XX)
1948 #define ROM_SysCtl_setWDTTimeoutResetType                                     \
1949         ((void (*)(uint_fast8_t resetType))ROM_SYSCTLTABLE[9])
1950 #endif
1951 #if defined(TARGET_IS_MSP432P4XX)
1952 #define ROM_SysCtl_setWDTPasswordViolationResetType                           \
1953         ((void (*)(uint_fast8_t resetType))ROM_SYSCTLTABLE[10])
1954 #endif
1955 #if defined(TARGET_IS_MSP432P4XX)
1956 #define ROM_SysCtl_disableNMISource                                           \
1957         ((void (*)(uint_fast8_t flags))ROM_SYSCTLTABLE[11])
1958 #endif
1959 #if defined(TARGET_IS_MSP432P4XX)
1960 #define ROM_SysCtl_enableNMISource                                            \
1961         ((void (*)(uint_fast8_t flags))ROM_SYSCTLTABLE[12])
1962 #endif
1963 #if defined(TARGET_IS_MSP432P4XX)
1964 #define ROM_SysCtl_getTempCalibrationConstant                                 \
1965         ((uint_fast16_t (*)(uint32_t refVoltage,                              \
1966                             uint32_t temperature))ROM_SYSCTLTABLE[14])
1967 #endif
1968 #if defined(TARGET_IS_MSP432P4XX)
1969 #define ROM_SysCtl_enableGlitchFilter                                         \
1970         ((void (*)(void))ROM_SYSCTLTABLE[15])
1971 #endif
1972 #if defined(TARGET_IS_MSP432P4XX)
1973 #define ROM_SysCtl_disableGlitchFilter                                        \
1974         ((void (*)(void))ROM_SYSCTLTABLE[16])
1975 #endif
1976 #if defined(TARGET_IS_MSP432P4XX)
1977 #define ROM_SysCtl_getTLVInfo                                                 \
1978         ((void (*)(uint_fast8_t tag,                                          \
1979                    uint_fast8_t instance,                                     \
1980                    uint_fast8_t *length,                                      \
1981                    uint32_t **data_address))ROM_SYSCTLTABLE[17])
1982 #endif
1983 
1984 //*****************************************************************************
1985 //
1986 // Macros for calling ROM functions in the SysTick API.
1987 //
1988 //*****************************************************************************
1989 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1990     defined(TARGET_IS_MSP432P4XX_NEXT)
1991 #define ROM_SysTick_enableModule                                              \
1992         ((void (*)(void))ROM_SYSTICKTABLE[0])
1993 #endif
1994 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
1995     defined(TARGET_IS_MSP432P4XX_NEXT)
1996 #define ROM_SysTick_disableModule                                             \
1997         ((void (*)(void))ROM_SYSTICKTABLE[1])
1998 #endif
1999 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2000     defined(TARGET_IS_MSP432P4XX_NEXT)
2001 #define ROM_SysTick_enableInterrupt                                           \
2002         ((void (*)(void))ROM_SYSTICKTABLE[2])
2003 #endif
2004 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2005     defined(TARGET_IS_MSP432P4XX_NEXT)
2006 #define ROM_SysTick_disableInterrupt                                          \
2007         ((void (*)(void))ROM_SYSTICKTABLE[3])
2008 #endif
2009 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2010     defined(TARGET_IS_MSP432P4XX_NEXT)
2011 #define ROM_SysTick_setPeriod                                                 \
2012         ((void (*)(uint32_t period))ROM_SYSTICKTABLE[4])
2013 #endif
2014 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2015     defined(TARGET_IS_MSP432P4XX_NEXT)
2016 #define ROM_SysTick_getPeriod                                                 \
2017         ((uint32_t (*)(void))ROM_SYSTICKTABLE[5])
2018 #endif
2019 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2020     defined(TARGET_IS_MSP432P4XX_NEXT)
2021 #define ROM_SysTick_getValue                                                  \
2022         ((uint32_t (*)(void))ROM_SYSTICKTABLE[6])
2023 #endif
2024 
2025 //*****************************************************************************
2026 //
2027 // Macros for calling ROM functions in the Timer_A API.
2028 //
2029 //*****************************************************************************
2030 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2031     defined(TARGET_IS_MSP432P4XX_NEXT)
2032 #define ROM_Timer_A_startCounter                                              \
2033         ((void (*)(uint32_t timer,                                            \
2034                    uint_fast16_t timerMode))ROM_TIMER_ATABLE[0])
2035 #endif
2036 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2037     defined(TARGET_IS_MSP432P4XX_NEXT)
2038 #define ROM_Timer_A_configureContinuousMode                                   \
2039         ((void (*)(uint32_t timer,                                            \
2040                    const Timer_A_ContinuousModeConfig *config))ROM_TIMER_ATABLE[1])
2041 #endif
2042 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2043     defined(TARGET_IS_MSP432P4XX_NEXT)
2044 #define ROM_Timer_A_configureUpMode                                           \
2045         ((void (*)(uint32_t timer,                                            \
2046                    const Timer_A_UpModeConfig *config))ROM_TIMER_ATABLE[2])
2047 #endif
2048 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2049     defined(TARGET_IS_MSP432P4XX_NEXT)
2050 #define ROM_Timer_A_configureUpDownMode                                       \
2051         ((void (*)(uint32_t timer,                                            \
2052                    const Timer_A_UpDownModeConfig *config))ROM_TIMER_ATABLE[3])
2053 #endif
2054 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2055     defined(TARGET_IS_MSP432P4XX_NEXT)
2056 #define ROM_Timer_A_initCapture                                               \
2057         ((void (*)(uint32_t timer,                                            \
2058                    const Timer_A_CaptureModeConfig *config))ROM_TIMER_ATABLE[4])
2059 #endif
2060 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2061     defined(TARGET_IS_MSP432P4XX_NEXT)
2062 #define ROM_Timer_A_initCompare                                               \
2063         ((void (*)(uint32_t timer,                                            \
2064                    const Timer_A_CompareModeConfig *config))ROM_TIMER_ATABLE[5])
2065 #endif
2066 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2067     defined(TARGET_IS_MSP432P4XX_NEXT)
2068 #define ROM_Timer_A_clearTimer                                                \
2069         ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[6])
2070 #endif
2071 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2072     defined(TARGET_IS_MSP432P4XX_NEXT)
2073 #define ROM_Timer_A_getSynchronizedCaptureCompareInput                        \
2074         ((uint_fast8_t (*)(uint32_t timer,                                    \
2075                            uint_fast16_t captureCompareRegister,              \
2076                            uint_fast16_t synchronizedSetting))ROM_TIMER_ATABLE[7])
2077 #endif
2078 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2079     defined(TARGET_IS_MSP432P4XX_NEXT)
2080 #define ROM_Timer_A_getOutputForOutputModeOutBitValue                         \
2081         ((uint_fast8_t (*)(uint32_t timer,                                    \
2082                            uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[8])
2083 #endif
2084 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2085     defined(TARGET_IS_MSP432P4XX_NEXT)
2086 #define ROM_Timer_A_getCaptureCompareCount                                    \
2087         ((uint_fast16_t (*)(uint32_t timer,                                   \
2088                             uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[9])
2089 #endif
2090 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2091 #define ROM_Timer_A_setOutputForOutputModeOutBitValue                         \
2092         ((void (*)(uint32_t timer,                                            \
2093                    uint_fast16_t captureCompareRegister,                      \
2094                    uint_fast8_t outputModeOutBitValue))ROM_TIMER_ATABLE[10])
2095 #endif
2096 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2097     defined(TARGET_IS_MSP432P4XX_NEXT)
2098 #define ROM_Timer_A_generatePWM                                               \
2099         ((void (*)(uint32_t timer,                                            \
2100                    const Timer_A_PWMConfig *config))ROM_TIMER_ATABLE[11])
2101 #endif
2102 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2103     defined(TARGET_IS_MSP432P4XX_NEXT)
2104 #define ROM_Timer_A_stopTimer                                                 \
2105         ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[12])
2106 #endif
2107 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2108     defined(TARGET_IS_MSP432P4XX_NEXT)
2109 #define ROM_Timer_A_setCompareValue                                           \
2110         ((void (*)(uint32_t timer,                                            \
2111                    uint_fast16_t compareRegister,                             \
2112                    uint_fast16_t compareValue))ROM_TIMER_ATABLE[13])
2113 #endif
2114 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2115     defined(TARGET_IS_MSP432P4XX_NEXT)
2116 #define ROM_Timer_A_clearInterruptFlag                                        \
2117         ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[14])
2118 #endif
2119 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2120     defined(TARGET_IS_MSP432P4XX_NEXT)
2121 #define ROM_Timer_A_clearCaptureCompareInterrupt                              \
2122         ((void (*)(uint32_t timer,                                            \
2123                    uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[15])
2124 #endif
2125 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2126     defined(TARGET_IS_MSP432P4XX_NEXT)
2127 #define ROM_Timer_A_enableInterrupt                                           \
2128         ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[16])
2129 #endif
2130 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2131     defined(TARGET_IS_MSP432P4XX_NEXT)
2132 #define ROM_Timer_A_disableInterrupt                                          \
2133         ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[17])
2134 #endif
2135 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2136     defined(TARGET_IS_MSP432P4XX_NEXT)
2137 #define ROM_Timer_A_getInterruptStatus                                        \
2138         ((uint32_t (*)(uint32_t timer))ROM_TIMER_ATABLE[18])
2139 #endif
2140 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2141     defined(TARGET_IS_MSP432P4XX_NEXT)
2142 #define ROM_Timer_A_getEnabledInterruptStatus                                 \
2143         ((uint32_t (*)(uint32_t timer))ROM_TIMER_ATABLE[19])
2144 #endif
2145 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2146     defined(TARGET_IS_MSP432P4XX_NEXT)
2147 #define ROM_Timer_A_enableCaptureCompareInterrupt                             \
2148         ((void (*)(uint32_t timer,                                            \
2149                    uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[20])
2150 #endif
2151 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2152     defined(TARGET_IS_MSP432P4XX_NEXT)
2153 #define ROM_Timer_A_disableCaptureCompareInterrupt                            \
2154         ((void (*)(uint32_t timer,                                            \
2155                    uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[21])
2156 #endif
2157 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2158     defined(TARGET_IS_MSP432P4XX_NEXT)
2159 #define ROM_Timer_A_getCaptureCompareInterruptStatus                          \
2160         ((uint32_t (*)(uint32_t timer,                                        \
2161                        uint_fast16_t captureCompareRegister,                  \
2162                        uint_fast16_t mask))ROM_TIMER_ATABLE[22])
2163 #endif
2164 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2165     defined(TARGET_IS_MSP432P4XX_NEXT)
2166 #define ROM_Timer_A_getCaptureCompareEnabledInterruptStatus                   \
2167         ((uint32_t (*)(uint32_t timer,                                        \
2168                        uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[23])
2169 #endif
2170 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2171     defined(TARGET_IS_MSP432P4XX_NEXT)
2172 #define ROM_Timer_A_getCounterValue                                           \
2173         ((uint16_t (*)(uint32_t timer))ROM_TIMER_ATABLE[26])
2174 #endif
2175 
2176 //*****************************************************************************
2177 //
2178 // Macros for calling ROM functions in the Timer32 API.
2179 //
2180 //*****************************************************************************
2181 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2182     defined(TARGET_IS_MSP432P4XX_NEXT)
2183 #define ROM_Timer32_initModule                                                \
2184         ((void (*)(uint32_t timer,                                            \
2185                    uint32_t preScaler,                                        \
2186                    uint32_t resolution,                                       \
2187                    uint32_t mode))ROM_TIMER32TABLE[0])
2188 #endif
2189 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2190     defined(TARGET_IS_MSP432P4XX_NEXT)
2191 #define ROM_Timer32_setCount                                                  \
2192         ((void (*)(uint32_t timer,                                            \
2193                    uint32_t count))ROM_TIMER32TABLE[1])
2194 #endif
2195 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2196     defined(TARGET_IS_MSP432P4XX_NEXT)
2197 #define ROM_Timer32_setCountInBackground                                      \
2198         ((void (*)(uint32_t timer,                                            \
2199                    uint32_t count))ROM_TIMER32TABLE[2])
2200 #endif
2201 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2202     defined(TARGET_IS_MSP432P4XX_NEXT)
2203 #define ROM_Timer32_getValue                                                  \
2204         ((uint32_t (*)(uint32_t timer))ROM_TIMER32TABLE[3])
2205 #endif
2206 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2207     defined(TARGET_IS_MSP432P4XX_NEXT)
2208 #define ROM_Timer32_startTimer                                                \
2209         ((void (*)(uint32_t timer,                                            \
2210                    bool oneShot))ROM_TIMER32TABLE[4])
2211 #endif
2212 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2213     defined(TARGET_IS_MSP432P4XX_NEXT)
2214 #define ROM_Timer32_haltTimer                                                 \
2215         ((void (*)(uint32_t timer))ROM_TIMER32TABLE[5])
2216 #endif
2217 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2218     defined(TARGET_IS_MSP432P4XX_NEXT)
2219 #define ROM_Timer32_enableInterrupt                                           \
2220         ((void (*)(uint32_t timer))ROM_TIMER32TABLE[6])
2221 #endif
2222 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2223     defined(TARGET_IS_MSP432P4XX_NEXT)
2224 #define ROM_Timer32_disableInterrupt                                          \
2225         ((void (*)(uint32_t timer))ROM_TIMER32TABLE[7])
2226 #endif
2227 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2228     defined(TARGET_IS_MSP432P4XX_NEXT)
2229 #define ROM_Timer32_clearInterruptFlag                                        \
2230         ((void (*)(uint32_t timer))ROM_TIMER32TABLE[8])
2231 #endif
2232 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2233     defined(TARGET_IS_MSP432P4XX_NEXT)
2234 #define ROM_Timer32_getInterruptStatus                                        \
2235         ((uint32_t (*)(uint32_t timer))ROM_TIMER32TABLE[9])
2236 #endif
2237 
2238 //*****************************************************************************
2239 //
2240 // Macros for calling ROM functions in the UART API.
2241 //
2242 //*****************************************************************************
2243 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2244     defined(TARGET_IS_MSP432P4XX_NEXT)
2245 #define ROM_UART_transmitData                                                 \
2246         ((void (*)(uint32_t moduleInstance,                                   \
2247                    uint_fast8_t transmitData))ROM_UARTTABLE[1])
2248 #endif
2249 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2250     defined(TARGET_IS_MSP432P4XX_NEXT)
2251 #define ROM_UART_enableModule                                                 \
2252         ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[2])
2253 #endif
2254 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2255     defined(TARGET_IS_MSP432P4XX_NEXT)
2256 #define ROM_UART_disableModule                                                \
2257         ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[3])
2258 #endif
2259 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2260     defined(TARGET_IS_MSP432P4XX_NEXT)
2261 #define ROM_UART_queryStatusFlags                                             \
2262         ((uint_fast8_t (*)(uint32_t moduleInstance,                           \
2263                            uint_fast8_t mask))ROM_UARTTABLE[4])
2264 #endif
2265 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2266     defined(TARGET_IS_MSP432P4XX_NEXT)
2267 #define ROM_UART_setDormant                                                   \
2268         ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[5])
2269 #endif
2270 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2271     defined(TARGET_IS_MSP432P4XX_NEXT)
2272 #define ROM_UART_resetDormant                                                 \
2273         ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[6])
2274 #endif
2275 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2276     defined(TARGET_IS_MSP432P4XX_NEXT)
2277 #define ROM_UART_transmitAddress                                              \
2278         ((void (*)(uint32_t moduleInstance,                                   \
2279                    uint_fast8_t transmitAddress))ROM_UARTTABLE[7])
2280 #endif
2281 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2282     defined(TARGET_IS_MSP432P4XX_NEXT)
2283 #define ROM_UART_transmitBreak                                                \
2284         ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[8])
2285 #endif
2286 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2287     defined(TARGET_IS_MSP432P4XX_NEXT)
2288 #define ROM_UART_getReceiveBufferAddressForDMA                                \
2289         ((uint32_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[9])
2290 #endif
2291 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2292     defined(TARGET_IS_MSP432P4XX_NEXT)
2293 #define ROM_UART_getTransmitBufferAddressForDMA                               \
2294         ((uint32_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[10])
2295 #endif
2296 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2297     defined(TARGET_IS_MSP432P4XX_NEXT)
2298 #define ROM_UART_selectDeglitchTime                                           \
2299         ((void (*)(uint32_t moduleInstance,                                   \
2300                    uint32_t deglitchTime))ROM_UARTTABLE[11])
2301 #endif
2302 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2303     defined(TARGET_IS_MSP432P4XX_NEXT)
2304 #define ROM_UART_enableInterrupt                                              \
2305         ((void (*)(uint32_t moduleInstance,                                   \
2306                    uint_fast8_t mask))ROM_UARTTABLE[12])
2307 #endif
2308 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2309     defined(TARGET_IS_MSP432P4XX_NEXT)
2310 #define ROM_UART_disableInterrupt                                             \
2311         ((void (*)(uint32_t moduleInstance,                                   \
2312                    uint_fast8_t mask))ROM_UARTTABLE[13])
2313 #endif
2314 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2315     defined(TARGET_IS_MSP432P4XX_NEXT)
2316 #define ROM_UART_getInterruptStatus                                           \
2317         ((uint_fast8_t (*)(uint32_t moduleInstance,                           \
2318                            uint8_t mask))ROM_UARTTABLE[14])
2319 #endif
2320 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2321     defined(TARGET_IS_MSP432P4XX_NEXT)
2322 #define ROM_UART_clearInterruptFlag                                           \
2323         ((void (*)(uint32_t moduleInstance,                                   \
2324                    uint_fast8_t mask))ROM_UARTTABLE[15])
2325 #endif
2326 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2327     defined(TARGET_IS_MSP432P4XX_NEXT)
2328 #define ROM_UART_receiveData                                                  \
2329         ((uint8_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[16])
2330 #endif
2331 
2332 //*****************************************************************************
2333 //
2334 // Macros for calling ROM functions in the WDT API.
2335 //
2336 //*****************************************************************************
2337 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2338     defined(TARGET_IS_MSP432P4XX_NEXT)
2339 #define ROM_WDT_A_holdTimer                                                   \
2340         ((void (*)(void))ROM_WDTTABLE[0])
2341 #endif
2342 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2343     defined(TARGET_IS_MSP432P4XX_NEXT)
2344 #define ROM_WDT_A_startTimer                                                  \
2345         ((void (*)(void))ROM_WDTTABLE[1])
2346 #endif
2347 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2348     defined(TARGET_IS_MSP432P4XX_NEXT)
2349 #define ROM_WDT_A_clearTimer                                                  \
2350         ((void (*)(void))ROM_WDTTABLE[2])
2351 #endif
2352 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2353     defined(TARGET_IS_MSP432P4XX_NEXT)
2354 #define ROM_WDT_A_initWatchdogTimer                                           \
2355         ((void (*)(uint_fast8_t clockSelect,                                  \
2356                    uint_fast8_t clockDivider))ROM_WDTTABLE[3])
2357 #endif
2358 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2359     defined(TARGET_IS_MSP432P4XX_NEXT)
2360 #define ROM_WDT_A_initIntervalTimer                                           \
2361         ((void (*)(uint_fast8_t clockSelect,                                  \
2362                    uint_fast8_t clockDivider))ROM_WDTTABLE[4])
2363 #endif
2364 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2365     defined(TARGET_IS_MSP432P4XX_NEXT)
2366 #define ROM_WDT_A_setPasswordViolationReset                                   \
2367         ((void (*)(uint_fast8_t resetType))ROM_WDTTABLE[7])
2368 #endif
2369 #if defined(TARGET_IS_MSP432P4XX) ||                                          \
2370     defined(TARGET_IS_MSP432P4XX_NEXT)
2371 #define ROM_WDT_A_setTimeoutReset                                             \
2372         ((void (*)(uint_fast8_t resetType))ROM_WDTTABLE[8])
2373 #endif
2374 
2375 //*****************************************************************************
2376 //
2377 // Macros for calling ROM functions in the SysCtl_A API.
2378 //
2379 //*****************************************************************************
2380 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2381 #define ROM_SysCtl_A_getSRAMSize                                              \
2382         ((uint_least32_t (*)(void))ROM_SYSCTLATABLE[0])
2383 #endif
2384 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2385 #define ROM_SysCtl_A_getFlashSize                                             \
2386         ((uint_least32_t (*)(void))ROM_SYSCTLATABLE[1])
2387 #endif
2388 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2389 #define ROM_SysCtl_A_rebootDevice                                             \
2390         ((void (*)(void))ROM_SYSCTLATABLE[2])
2391 #endif
2392 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2393 #define ROM_SysCtl_A_enableSRAM                                               \
2394         ((bool (*)(uint32_t addr))ROM_SYSCTLATABLE[3])
2395 #endif
2396 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2397 #define ROM_SysCtl_A_disableSRAM                                              \
2398         ((bool (*)(uint32_t addr))ROM_SYSCTLATABLE[4])
2399 #endif
2400 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2401 #define ROM_SysCtl_A_enableSRAMRetention                                      \
2402         ((bool (*)(uint32_t startAddr,                                        \
2403                    uint32_t endAddr))ROM_SYSCTLATABLE[5])
2404 #endif
2405 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2406 #define ROM_SysCtl_A_disableSRAMRetention                                     \
2407         ((bool (*)(uint32_t startAddr,                                        \
2408                    uint32_t endAddr))ROM_SYSCTLATABLE[6])
2409 #endif
2410 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2411 #define ROM_SysCtl_A_enablePeripheralAtCPUHalt                                \
2412         ((void (*)(uint_fast16_t devices))ROM_SYSCTLATABLE[7])
2413 #endif
2414 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2415 #define ROM_SysCtl_A_disablePeripheralAtCPUHalt                               \
2416         ((void (*)(uint_fast16_t devices))ROM_SYSCTLATABLE[8])
2417 #endif
2418 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2419 #define ROM_SysCtl_A_setWDTTimeoutResetType                                   \
2420         ((void (*)(uint_fast8_t resetType))ROM_SYSCTLATABLE[9])
2421 #endif
2422 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2423 #define ROM_SysCtl_A_setWDTPasswordViolationResetType                         \
2424         ((void (*)(uint_fast8_t resetType))ROM_SYSCTLATABLE[10])
2425 #endif
2426 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2427 #define ROM_SysCtl_A_disableNMISource                                         \
2428         ((void (*)(uint_fast8_t flags))ROM_SYSCTLATABLE[11])
2429 #endif
2430 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2431 #define ROM_SysCtl_A_enableNMISource                                          \
2432         ((void (*)(uint_fast8_t flags))ROM_SYSCTLATABLE[12])
2433 #endif
2434 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2435 #define ROM_SysCtl_A_getTempCalibrationConstant                               \
2436         ((uint_fast16_t (*)(uint32_t refVoltage,                              \
2437                             uint32_t temperature))ROM_SYSCTLATABLE[14])
2438 #endif
2439 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2440 #define ROM_SysCtl_A_enableGlitchFilter                                       \
2441         ((void (*)(void))ROM_SYSCTLATABLE[15])
2442 #endif
2443 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2444 #define ROM_SysCtl_A_disableGlitchFilter                                      \
2445         ((void (*)(void))ROM_SYSCTLATABLE[16])
2446 #endif
2447 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2448 #define ROM_SysCtl_A_getTLVInfo                                               \
2449         ((void (*)(uint_fast8_t tag,                                          \
2450                    uint_fast8_t instance,                                     \
2451                    uint_fast8_t *length,                                      \
2452                    uint32_t **data_address))ROM_SYSCTLATABLE[17])
2453 #endif
2454 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2455 #define ROM_SysCtl_A_getInfoFlashSize                                         \
2456         ((uint_least32_t (*)(void))ROM_SYSCTLATABLE[18])
2457 #endif
2458 
2459 //*****************************************************************************
2460 //
2461 // Macros for calling ROM functions in the Flash_A API.
2462 //
2463 //*****************************************************************************
2464 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2465 #define ROM_FlashCtl_A_enableReadBuffering                                    \
2466         ((void (*)(uint_fast8_t memoryBank,                                   \
2467                    uint_fast8_t accessMethod))ROM_FLASHCTLATABLE[2])
2468 #endif
2469 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2470 #define ROM_FlashCtl_A_disableReadBuffering                                   \
2471         ((void (*)(uint_fast8_t memoryBank,                                   \
2472                    uint_fast8_t accessMethod))ROM_FLASHCTLATABLE[3])
2473 #endif
2474 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2475 #define ROM_FlashCtl_A_unprotectMemory                                        \
2476         ((bool (*)(uint32_t startAddr,                                        \
2477                    uint32_t endAddr))ROM_FLASHCTLATABLE[4])
2478 #endif
2479 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2480 #define ROM_FlashCtl_A_protectMemory                                          \
2481         ((bool (*)(uint32_t startAddr,                                        \
2482                    uint32_t endAddr))ROM_FLASHCTLATABLE[5])
2483 #endif
2484 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2485 #define ROM_FlashCtl_A_isMemoryRangeProtected                                 \
2486         ((bool (*)(uint32_t startAddr,                                        \
2487                    uint32_t endAddr))ROM_FLASHCTLATABLE[6])
2488 #endif
2489 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2490 #define ROM_FlashCtl_A_verifyMemory                                           \
2491         ((bool (*)(void* verifyAddr,                                          \
2492                    uint32_t length,                                           \
2493                    uint_fast8_t pattern))ROM_FLASHCTLATABLE[7])
2494 #endif
2495 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2496 #define ROM_FlashCtl_A_performMassErase                                       \
2497         ((bool (*)(void))ROM_FLASHCTLATABLE[8])
2498 #endif
2499 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2500 #define ROM_FlashCtl_A_eraseSector                                            \
2501         ((bool (*)(uint32_t addr))ROM_FLASHCTLATABLE[9])
2502 #endif
2503 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2504 #define ROM_FlashCtl_A_programMemory                                          \
2505         ((bool (*)(void* src,                                                 \
2506                    void* dest,                                                \
2507                    uint32_t length))ROM_FLASHCTLATABLE[10])
2508 #endif
2509 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2510 #define ROM_FlashCtl_A_setProgramVerification                                 \
2511         ((void (*)(uint32_t verificationSetting))ROM_FLASHCTLATABLE[11])
2512 #endif
2513 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2514 #define ROM_FlashCtl_A_clearProgramVerification                               \
2515         ((void (*)( uint32_t verificationSetting))ROM_FLASHCTLATABLE[12])
2516 #endif
2517 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2518 #define ROM_FlashCtl_A_enableWordProgramming                                  \
2519         ((void (*)(uint32_t mode))ROM_FLASHCTLATABLE[13])
2520 #endif
2521 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2522 #define ROM_FlashCtl_A_disableWordProgramming                                 \
2523         ((void (*)(void))ROM_FLASHCTLATABLE[14])
2524 #endif
2525 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2526 #define ROM_FlashCtl_A_isWordProgrammingEnabled                               \
2527         ((uint32_t (*)(void))ROM_FLASHCTLATABLE[15])
2528 #endif
2529 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2530 #define ROM_FlashCtl_A_enableInterrupt                                        \
2531         ((void (*)(uint32_t flags))ROM_FLASHCTLATABLE[16])
2532 #endif
2533 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2534 #define ROM_FlashCtl_A_disableInterrupt                                       \
2535         ((void (*)(uint32_t flags))ROM_FLASHCTLATABLE[17])
2536 #endif
2537 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2538 #define ROM_FlashCtl_A_getEnabledInterruptStatus                              \
2539         ((uint32_t (*)(void))ROM_FLASHCTLATABLE[18])
2540 #endif
2541 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2542 #define ROM_FlashCtl_A_getInterruptStatus                                     \
2543         ((uint32_t (*)(void))ROM_FLASHCTLATABLE[19])
2544 #endif
2545 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2546 #define ROM_FlashCtl_A_clearInterruptFlag                                     \
2547         ((void (*)(uint32_t flags))ROM_FLASHCTLATABLE[20])
2548 #endif
2549 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2550 #define ROM_FlashCtl_A_setWaitState                                           \
2551         ((void (*)(uint32_t bank,                                             \
2552                    uint32_t waitState))ROM_FLASHCTLATABLE[21])
2553 #endif
2554 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2555 #define ROM_FlashCtl_A_getWaitState                                           \
2556         ((uint32_t (*)(uint32_t bank))ROM_FLASHCTLATABLE[22])
2557 #endif
2558 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2559 #define ROM_FlashCtl_A_setReadMode                                            \
2560         ((bool (*)(uint32_t flashBank,                                        \
2561                    uint32_t readMode))ROM_FLASHCTLATABLE[23])
2562 #endif
2563 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2564 #define ROM_FlashCtl_A_getReadMode                                            \
2565         ((uint32_t (*)(uint32_t flashBank))ROM_FLASHCTLATABLE[24])
2566 #endif
2567 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2568 #define ROM___FlashCtl_A_remaskData8Post                                      \
2569         ((uint8_t (*)(uint8_t data,                                           \
2570                       uint32_t addr))ROM_FLASHCTLATABLE[27])
2571 #endif
2572 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2573 #define ROM___FlashCtl_A_remaskData8Pre                                       \
2574         ((uint8_t (*)(uint8_t data,                                           \
2575                       uint32_t addr))ROM_FLASHCTLATABLE[28])
2576 #endif
2577 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2578 #define ROM___FlashCtl_A_remaskData32Pre                                      \
2579         ((uint32_t (*)(uint32_t data,                                         \
2580                        uint32_t addr))ROM_FLASHCTLATABLE[29])
2581 #endif
2582 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2583 #define ROM___FlashCtl_A_remaskData32Post                                     \
2584         ((uint32_t (*)(uint32_t data,                                         \
2585                        uint32_t addr))ROM_FLASHCTLATABLE[30])
2586 #endif
2587 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2588 #define ROM___FlashCtl_A_remaskBurstDataPre                                   \
2589         ((void (*)(uint32_t addr,                                             \
2590                    uint32_t size))ROM_FLASHCTLATABLE[31])
2591 #endif
2592 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2593 #define ROM___FlashCtl_A_remaskBurstDataPost                                  \
2594         ((void (*)(uint32_t addr,                                             \
2595                    uint32_t size))ROM_FLASHCTLATABLE[32])
2596 #endif
2597 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2598 #define ROM_FlashCtl_A_initiateSectorErase                                    \
2599         ((void (*)(uint32_t addr))ROM_FLASHCTLATABLE[33])
2600 #endif
2601 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2602 #define ROM_FlashCtl_A_initiateMassErase                                      \
2603         ((void (*)(void))ROM_FLASHCTLATABLE[34])
2604 #endif
2605 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2606 #define ROM_FlashCtl_A_isMemoryProtected                                      \
2607         ((bool (*)(uint32_t addr))ROM_FLASHCTLATABLE[35])
2608 #endif
2609 
2610 //*****************************************************************************
2611 //
2612 // Macros for calling ROM functions in the LCD_F API.
2613 //
2614 //*****************************************************************************
2615 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2616 #define ROM_LCD_F_turnOff                                                     \
2617         ((void (*)(void))ROM_LCDFTABLE[2])
2618 #endif
2619 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2620 #define ROM_LCD_F_clearAllMemory                                              \
2621         ((void (*)(void))ROM_LCDFTABLE[3])
2622 #endif
2623 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2624 #define ROM_LCD_F_clearAllBlinkingMemory                                      \
2625         ((void (*)(void))ROM_LCDFTABLE[4])
2626 #endif
2627 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2628 #define ROM_LCD_F_selectDisplayMemory                                         \
2629         ((void (*)(uint_fast16_t displayMemory))ROM_LCDFTABLE[5])
2630 #endif
2631 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2632 #define ROM_LCD_F_setBlinkingControl                                          \
2633         ((void (*)(uint_fast16_t clockPrescalar,                              \
2634                    uint_fast16_t divider,                                     \
2635                    uint_fast16_t mode))ROM_LCDFTABLE[6])
2636 #endif
2637 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2638 #define ROM_LCD_F_setAnimationControl                                         \
2639         ((void (*)(uint_fast16_t clockPrescalar,                              \
2640                    uint_fast16_t divider,                                     \
2641                    uint_fast16_t frames))ROM_LCDFTABLE[7])
2642 #endif
2643 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2644 #define ROM_LCD_F_clearAllAnimationMemory                                     \
2645         ((void (*)(void))ROM_LCDFTABLE[8])
2646 #endif
2647 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2648 #define ROM_LCD_F_setPinAsLCDFunction                                         \
2649         ((void (*)(uint_fast8_t pin))ROM_LCDFTABLE[9])
2650 #endif
2651 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2652 #define ROM_LCD_F_setPinAsPortFunction                                        \
2653         ((void (*)(uint_fast8_t pin))ROM_LCDFTABLE[10])
2654 #endif
2655 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2656 #define ROM_LCD_F_setPinAsSEG                                                 \
2657         ((void (*)(uint_fast8_t pin))ROM_LCDFTABLE[13])
2658 #endif
2659 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2660 #define ROM_LCD_F_selectBias                                                  \
2661         ((void (*)(uint_fast16_t bias))ROM_LCDFTABLE[14])
2662 #endif
2663 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2664 #define ROM_LCD_F_setVLCDSource                                               \
2665         ((void (*)(uint_fast16_t v2v3v4Source,                                \
2666                    uint_fast16_t v5Source))ROM_LCDFTABLE[15])
2667 #endif
2668 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2669 #define ROM_LCD_F_clearInterrupt                                              \
2670         ((void (*)(uint32_t mask))ROM_LCDFTABLE[16])
2671 #endif
2672 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2673 #define ROM_LCD_F_getInterruptStatus                                          \
2674         ((uint32_t (*)(void))ROM_LCDFTABLE[17])
2675 #endif
2676 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2677 #define ROM_LCD_F_getEnabledInterruptStatus                                   \
2678         ((uint32_t (*)(void))ROM_LCDFTABLE[18])
2679 #endif
2680 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2681 #define ROM_LCD_F_enableInterrupt                                             \
2682         ((void (*)(uint32_t mask))ROM_LCDFTABLE[19])
2683 #endif
2684 #if defined(TARGET_IS_MSP432P4XX_NEXT)
2685 #define ROM_LCD_F_disableInterrupt                                            \
2686         ((void (*)(uint32_t mask))ROM_LCDFTABLE[20])
2687 #endif
2688 
2689 #endif // __ROM_H__
2690