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

Copyright 2016, Texas Instruments Incorporated