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

Copyright 2018, Texas Instruments Incorporated