rom.h
Go to the documentation of this file.
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__

Copyright 2019, Texas Instruments Incorporated