rom.h
Go to the documentation of this file.
1 #ifndef __ROM_H__
2 #define __ROM_H__
3 
4 //*****************************************************************************
5 //
6 // Pointers to the main API tables.
7 //
8 //*****************************************************************************
9 #define ROM_APITABLE ((unsigned long *)0x02000800)
10 #define ROM_VERSION (ROM_APITABLE[0])
11 #define ROM_ADC14TABLE ((unsigned long *)(ROM_APITABLE[1]))
12 #define ROM_AES256TABLE ((unsigned long *)(ROM_APITABLE[2]))
13 #define ROM_COMPTABLE ((unsigned long *)(ROM_APITABLE[3]))
14 #define ROM_CRC32TABLE ((unsigned long *)(ROM_APITABLE[4]))
15 #define ROM_CSTABLE ((unsigned long *)(ROM_APITABLE[5]))
16 #define ROM_DMATABLE ((unsigned long *)(ROM_APITABLE[6]))
17 #define ROM_FLASHCTLTABLE ((unsigned long *)(ROM_APITABLE[7]))
18 #define ROM_FPUTABLE ((unsigned long *)(ROM_APITABLE[8]))
19 #define ROM_GPIOTABLE ((unsigned long *)(ROM_APITABLE[9]))
20 #define ROM_I2CTABLE ((unsigned long *)(ROM_APITABLE[10]))
21 #define ROM_INTTABLE ((unsigned long *)(ROM_APITABLE[11]))
22 #define ROM_MPUTABLE ((unsigned long *)(ROM_APITABLE[12]))
23 #define ROM_PCMTABLE ((unsigned long *)(ROM_APITABLE[13]))
24 #define ROM_PMAPTABLE ((unsigned long *)(ROM_APITABLE[14]))
25 #define ROM_PSSTABLE ((unsigned long *)(ROM_APITABLE[15]))
26 #define ROM_REFTABLE ((unsigned long *)(ROM_APITABLE[16]))
27 #define ROM_RESETCTLTABLE ((unsigned long *)(ROM_APITABLE[17]))
28 #define ROM_RTCTABLE ((unsigned long *)(ROM_APITABLE[18]))
29 #define ROM_SPITABLE ((unsigned long *)(ROM_APITABLE[19]))
30 #define ROM_SYSCTLTABLE ((unsigned long *)(ROM_APITABLE[20]))
31 #define ROM_SYSTICKTABLE ((unsigned long *)(ROM_APITABLE[21]))
32 #define ROM_TIMER_ATABLE ((unsigned long *)(ROM_APITABLE[22]))
33 #define ROM_TIMER32TABLE ((unsigned long *)(ROM_APITABLE[23]))
34 #define ROM_UARTTABLE ((unsigned long *)(ROM_APITABLE[24]))
35 #define ROM_WDTTABLE ((unsigned long *)(ROM_APITABLE[25]))
36 
37 //*****************************************************************************
38 //
39 // Macros for calling ROM functions in the ADC14 API.
40 //
41 //*****************************************************************************
42 #if defined(TARGET_IS_MSP432P4XX)
43 #define ROM_ADC14_enableModule \
44  ((void (*)(void))ROM_ADC14TABLE[0])
45 #endif
46 #if defined(TARGET_IS_MSP432P4XX)
47 #define ROM_ADC14_disableModule \
48  ((bool (*)(void))ROM_ADC14TABLE[1])
49 #endif
50 #if defined(TARGET_IS_MSP432P4XX)
51 #define ROM_ADC14_initModule \
52  ((bool (*)(uint32_t clockSource, \
53  uint32_t clockPredivider, \
54  uint32_t clockDivider, \
55  uint32_t internalChannelMask))ROM_ADC14TABLE[2])
56 #endif
57 #if defined(TARGET_IS_MSP432P4XX)
58 #define ROM_ADC14_setResolution \
59  ((void (*)(uint32_t resolution))ROM_ADC14TABLE[3])
60 #endif
61 #if defined(TARGET_IS_MSP432P4XX)
62 #define ROM_ADC14_getResolution \
63  ((uint_fast32_t (*)(void))ROM_ADC14TABLE[4])
64 #endif
65 #if defined(TARGET_IS_MSP432P4XX)
66 #define ROM_ADC14_setSampleHoldTrigger \
67  ((bool (*)(uint32_t source, \
68  bool invertSignal))ROM_ADC14TABLE[5])
69 #endif
70 #if defined(TARGET_IS_MSP432P4XX)
71 #define ROM_ADC14_setSampleHoldTime \
72  ((bool (*)(uint32_t firstPulseWidth, \
73  uint32_t secondPulseWidth))ROM_ADC14TABLE[6])
74 #endif
75 #if defined(TARGET_IS_MSP432P4XX)
76 #define ROM_ADC14_configureMultiSequenceMode \
77  ((bool (*)(uint32_t memoryStart, \
78  uint32_t memoryEnd, \
79  bool repeatMode))ROM_ADC14TABLE[7])
80 #endif
81 #if defined(TARGET_IS_MSP432P4XX)
82 #define ROM_ADC14_configureSingleSampleMode \
83  ((bool (*)(uint32_t memoryDestination, \
84  bool repeatMode))ROM_ADC14TABLE[8])
85 #endif
86 #if defined(TARGET_IS_MSP432P4XX)
87 #define ROM_ADC14_enableConversion \
88  ((bool (*)(void))ROM_ADC14TABLE[9])
89 #endif
90 #if defined(TARGET_IS_MSP432P4XX)
91 #define ROM_ADC14_disableConversion \
92  ((void (*)(void))ROM_ADC14TABLE[10])
93 #endif
94 #if defined(TARGET_IS_MSP432P4XX)
95 #define ROM_ADC14_isBusy \
96  ((bool (*)(void))ROM_ADC14TABLE[11])
97 #endif
98 #if defined(TARGET_IS_MSP432P4XX)
99 #define ROM_ADC14_configureConversionMemory \
100  ((bool (*)(uint32_t memorySelect, \
101  uint32_t refSelect, \
102  uint32_t channelSelect, \
103  bool differntialMode))ROM_ADC14TABLE[12])
104 #endif
105 #if defined(TARGET_IS_MSP432P4XX)
106 #define ROM_ADC14_enableComparatorWindow \
107  ((bool (*)(uint32_t memorySelect, \
108  uint32_t windowSelect))ROM_ADC14TABLE[13])
109 #endif
110 #if defined(TARGET_IS_MSP432P4XX)
111 #define ROM_ADC14_disableComparatorWindow \
112  ((bool (*)(uint32_t memorySelect))ROM_ADC14TABLE[14])
113 #endif
114 #if defined(TARGET_IS_MSP432P4XX)
115 #define ROM_ADC14_setComparatorWindowValue \
116  ((bool (*)(uint32_t window, \
117  int16_t low, \
118  int16_t high))ROM_ADC14TABLE[15])
119 #endif
120 #if defined(TARGET_IS_MSP432P4XX)
121 #define ROM_ADC14_setResultFormat \
122  ((bool (*)(uint32_t resultFormat))ROM_ADC14TABLE[16])
123 #endif
124 #if defined(TARGET_IS_MSP432P4XX)
125 #define ROM_ADC14_getResult \
126  ((uint_fast16_t (*)(uint32_t memorySelect))ROM_ADC14TABLE[17])
127 #endif
128 #if defined(TARGET_IS_MSP432P4XX)
129 #define ROM_ADC14_getResultArray \
130  ((void (*)(uint32_t memoryStart, \
131  uint32_t memoryEnd, \
132  uint16_t* res))ROM_ADC14TABLE[19])
133 #endif
134 #if defined(TARGET_IS_MSP432P4XX)
135 #define ROM_ADC14_enableReferenceBurst \
136  ((bool (*)(void))ROM_ADC14TABLE[20])
137 #endif
138 #if defined(TARGET_IS_MSP432P4XX)
139 #define ROM_ADC14_disableReferenceBurst \
140  ((bool (*)(void))ROM_ADC14TABLE[21])
141 #endif
142 #if defined(TARGET_IS_MSP432P4XX)
143 #define ROM_ADC14_setPowerMode \
144  ((bool (*)(uint32_t powerMode))ROM_ADC14TABLE[22])
145 #endif
146 #if defined(TARGET_IS_MSP432P4XX)
147 #define ROM_ADC14_enableInterrupt \
148  ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[23])
149 #endif
150 #if defined(TARGET_IS_MSP432P4XX)
151 #define ROM_ADC14_disableInterrupt \
152  ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[24])
153 #endif
154 #if defined(TARGET_IS_MSP432P4XX)
155 #define ROM_ADC14_getInterruptStatus \
156  ((uint_fast64_t (*)(void))ROM_ADC14TABLE[25])
157 #endif
158 #if defined(TARGET_IS_MSP432P4XX)
159 #define ROM_ADC14_getEnabledInterruptStatus \
160  ((uint_fast64_t (*)(void))ROM_ADC14TABLE[26])
161 #endif
162 #if defined(TARGET_IS_MSP432P4XX)
163 #define ROM_ADC14_clearInterruptFlag \
164  ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[27])
165 #endif
166 #if defined(TARGET_IS_MSP432P4XX)
167 #define ROM_ADC14_toggleConversionTrigger \
168  ((bool (*)(void))ROM_ADC14TABLE[28])
169 #endif
170 #if defined(TARGET_IS_MSP432P4XX)
171 #define ROM_ADC14_enableSampleTimer \
172  ((bool (*)(uint32_t multiSampleConvert))ROM_ADC14TABLE[29])
173 #endif
174 #if defined(TARGET_IS_MSP432P4XX)
175 #define ROM_ADC14_disableSampleTimer \
176  ((bool (*)(void))ROM_ADC14TABLE[30])
177 #endif
178 
179 //*****************************************************************************
180 //
181 // Macros for calling ROM functions in the AES256 API.
182 //
183 //*****************************************************************************
184 #if defined(TARGET_IS_MSP432P4XX)
185 #define ROM_AES256_setCipherKey \
186  ((bool (*)(uint32_t moduleInstance, \
187  const uint8_t *cipherKey, \
188  uint_fast16_t keyLength))ROM_AES256TABLE[0])
189 #endif
190 #if defined(TARGET_IS_MSP432P4XX)
191 #define ROM_AES256_encryptData \
192  ((void (*)(uint32_t moduleInstance, \
193  const uint8_t *data, \
194  uint8_t *encryptedData))ROM_AES256TABLE[1])
195 #endif
196 #if defined(TARGET_IS_MSP432P4XX)
197 #define ROM_AES256_decryptData \
198  ((void (*)(uint32_t moduleInstance, \
199  const uint8_t *data, \
200  uint8_t *decryptedData))ROM_AES256TABLE[2])
201 #endif
202 #if defined(TARGET_IS_MSP432P4XX)
203 #define ROM_AES256_setDecipherKey \
204  ((bool (*)(uint32_t moduleInstance, \
205  const uint8_t *cipherKey, \
206  uint_fast16_t keyLength))ROM_AES256TABLE[3])
207 #endif
208 #if defined(TARGET_IS_MSP432P4XX)
209 #define ROM_AES256_reset \
210  ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[4])
211 #endif
212 #if defined(TARGET_IS_MSP432P4XX)
213 #define ROM_AES256_startEncryptData \
214  ((void (*)(uint32_t moduleInstance, \
215  const uint8_t *data))ROM_AES256TABLE[5])
216 #endif
217 #if defined(TARGET_IS_MSP432P4XX)
218 #define ROM_AES256_startDecryptData \
219  ((void (*)(uint32_t moduleInstance, \
220  const uint8_t *data))ROM_AES256TABLE[6])
221 #endif
222 #if defined(TARGET_IS_MSP432P4XX)
223 #define ROM_AES256_startSetDecipherKey \
224  ((bool (*)(uint32_t moduleInstance, \
225  const uint8_t *cipherKey, \
226  uint_fast16_t keyLength))ROM_AES256TABLE[7])
227 #endif
228 #if defined(TARGET_IS_MSP432P4XX)
229 #define ROM_AES256_getDataOut \
230  ((bool (*)(uint32_t moduleInstance, \
231  uint8_t *outputData))ROM_AES256TABLE[8])
232 #endif
233 #if defined(TARGET_IS_MSP432P4XX)
234 #define ROM_AES256_isBusy \
235  ((bool (*)(uint32_t moduleInstance))ROM_AES256TABLE[9])
236 #endif
237 #if defined(TARGET_IS_MSP432P4XX)
238 #define ROM_AES256_clearErrorFlag \
239  ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[10])
240 #endif
241 #if defined(TARGET_IS_MSP432P4XX)
242 #define ROM_AES256_getErrorFlagStatus \
243  ((uint32_t (*)(uint32_t moduleInstance))ROM_AES256TABLE[11])
244 #endif
245 #if defined(TARGET_IS_MSP432P4XX)
246 #define ROM_AES256_clearInterruptFlag \
247  ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[12])
248 #endif
249 #if defined(TARGET_IS_MSP432P4XX)
250 #define ROM_AES256_getInterruptStatus \
251  ((uint32_t (*)(uint32_t moduleInstance))ROM_AES256TABLE[13])
252 #endif
253 #if defined(TARGET_IS_MSP432P4XX)
254 #define ROM_AES256_enableInterrupt \
255  ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[14])
256 #endif
257 #if defined(TARGET_IS_MSP432P4XX)
258 #define ROM_AES256_disableInterrupt \
259  ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[15])
260 #endif
261 #if defined(TARGET_IS_MSP432P4XX)
262 #define ROM_AES256_getInterruptFlagStatus \
263  ((uint32_t (*)(uint32_t moduleInstance))ROM_AES256TABLE[18])
264 #endif
265 
266 //*****************************************************************************
267 //
268 // Macros for calling ROM functions in the Comp API.
269 //
270 //*****************************************************************************
271 #if defined(TARGET_IS_MSP432P4XX)
272 #define ROM_COMP_E_initModule \
273  ((bool (*)(uint32_t comparator, \
274  const COMP_E_Config *config))ROM_COMPTABLE[0])
275 #endif
276 #if defined(TARGET_IS_MSP432P4XX)
277 #define ROM_COMP_E_setReferenceVoltage \
278  ((void (*)(uint32_t comparator, \
279  uint_fast16_t supplyVoltageReferenceBase, \
280  uint_fast16_t lowerLimitSupplyVoltageFractionOf32, \
281  uint_fast16_t upperLimitSupplyVoltageFractionOf32))ROM_COMPTABLE[1])
282 #endif
283 #if defined(TARGET_IS_MSP432P4XX)
284 #define ROM_COMP_E_setReferenceAccuracy \
285  ((void (*)(uint32_t comparator, \
286  uint_fast16_t referenceAccuracy))ROM_COMPTABLE[2])
287 #endif
288 #if defined(TARGET_IS_MSP432P4XX)
289 #define ROM_COMP_E_setPowerMode \
290  ((void (*)(uint32_t comparator, \
291  uint_fast16_t powerMode))ROM_COMPTABLE[3])
292 #endif
293 #if defined(TARGET_IS_MSP432P4XX)
294 #define ROM_COMP_E_enableModule \
295  ((void (*)(uint32_t comparator))ROM_COMPTABLE[4])
296 #endif
297 #if defined(TARGET_IS_MSP432P4XX)
298 #define ROM_COMP_E_disableModule \
299  ((void (*)(uint32_t comparator))ROM_COMPTABLE[5])
300 #endif
301 #if defined(TARGET_IS_MSP432P4XX)
302 #define ROM_COMP_E_shortInputs \
303  ((void (*)(uint32_t comparator))ROM_COMPTABLE[6])
304 #endif
305 #if defined(TARGET_IS_MSP432P4XX)
306 #define ROM_COMP_E_unshortInputs \
307  ((void (*)(uint32_t comparator))ROM_COMPTABLE[7])
308 #endif
309 #if defined(TARGET_IS_MSP432P4XX)
310 #define ROM_COMP_E_disableInputBuffer \
311  ((void (*)(uint32_t comparator, \
312  uint_fast16_t inputPort))ROM_COMPTABLE[8])
313 #endif
314 #if defined(TARGET_IS_MSP432P4XX)
315 #define ROM_COMP_E_enableInputBuffer \
316  ((void (*)(uint32_t comparator, \
317  uint_fast16_t inputPort))ROM_COMPTABLE[9])
318 #endif
319 #if defined(TARGET_IS_MSP432P4XX)
320 #define ROM_COMP_E_swapIO \
321  ((void (*)(uint32_t comparator))ROM_COMPTABLE[10])
322 #endif
323 #if defined(TARGET_IS_MSP432P4XX)
324 #define ROM_COMP_E_outputValue \
325  ((uint8_t (*)(uint32_t comparator))ROM_COMPTABLE[11])
326 #endif
327 #if defined(TARGET_IS_MSP432P4XX)
328 #define ROM_COMP_E_enableInterrupt \
329  ((void (*)(uint32_t comparator, \
330  uint_fast16_t mask))ROM_COMPTABLE[12])
331 #endif
332 #if defined(TARGET_IS_MSP432P4XX)
333 #define ROM_COMP_E_disableInterrupt \
334  ((void (*)(uint32_t comparator, \
335  uint_fast16_t mask))ROM_COMPTABLE[13])
336 #endif
337 #if defined(TARGET_IS_MSP432P4XX)
338 #define ROM_COMP_E_clearInterruptFlag \
339  ((void (*)(uint32_t comparator, \
340  uint_fast16_t mask))ROM_COMPTABLE[14])
341 #endif
342 #if defined(TARGET_IS_MSP432P4XX)
343 #define ROM_COMP_E_getInterruptStatus \
344  ((uint_fast16_t (*)(uint32_t comparator))ROM_COMPTABLE[15])
345 #endif
346 #if defined(TARGET_IS_MSP432P4XX)
347 #define ROM_COMP_E_getEnabledInterruptStatus \
348  ((uint_fast16_t (*)(uint32_t comparator))ROM_COMPTABLE[16])
349 #endif
350 #if defined(TARGET_IS_MSP432P4XX)
351 #define ROM_COMP_E_setInterruptEdgeDirection \
352  ((void (*)(uint32_t comparator, \
353  uint_fast8_t edgeDirection))ROM_COMPTABLE[17])
354 #endif
355 #if defined(TARGET_IS_MSP432P4XX)
356 #define ROM_COMP_E_toggleInterruptEdgeDirection \
357  ((void (*)(uint32_t comparator))ROM_COMPTABLE[18])
358 #endif
359 
360 //*****************************************************************************
361 //
362 // Macros for calling ROM functions in the CRC32 API.
363 //
364 //*****************************************************************************
365 #if defined(TARGET_IS_MSP432P4XX)
366 #define ROM_CRC32_setSeed \
367  ((void (*)(uint32_t seed, \
368  uint_fast8_t crcType))ROM_CRC32TABLE[0])
369 #endif
370 #if defined(TARGET_IS_MSP432P4XX)
371 #define ROM_CRC32_set8BitData \
372  ((void (*)(uint8_t dataIn, \
373  uint_fast8_t crcType))ROM_CRC32TABLE[1])
374 #endif
375 #if defined(TARGET_IS_MSP432P4XX)
376 #define ROM_CRC32_set16BitData \
377  ((void (*)(uint16_t dataIn, \
378  uint_fast8_t crcType))ROM_CRC32TABLE[2])
379 #endif
380 #if defined(TARGET_IS_MSP432P4XX)
381 #define ROM_CRC32_set32BitData \
382  ((void (*)(uint32_t dataIn))ROM_CRC32TABLE[3])
383 #endif
384 #if defined(TARGET_IS_MSP432P4XX)
385 #define ROM_CRC32_set8BitDataReversed \
386  ((void (*)(uint8_t dataIn, \
387  uint_fast8_t crcType))ROM_CRC32TABLE[4])
388 #endif
389 #if defined(TARGET_IS_MSP432P4XX)
390 #define ROM_CRC32_set16BitDataReversed \
391  ((void (*)(uint16_t dataIn, \
392  uint_fast8_t crcType))ROM_CRC32TABLE[5])
393 #endif
394 #if defined(TARGET_IS_MSP432P4XX)
395 #define ROM_CRC32_set32BitDataReversed \
396  ((void (*)(uint32_t dataIn))ROM_CRC32TABLE[6])
397 #endif
398 #if defined(TARGET_IS_MSP432P4XX)
399 #define ROM_CRC32_getResult \
400  ((uint32_t (*)(uint_fast8_t crcType))ROM_CRC32TABLE[7])
401 #endif
402 #if defined(TARGET_IS_MSP432P4XX)
403 #define ROM_CRC32_getResultReversed \
404  ((uint32_t (*)(uint_fast8_t crcType))ROM_CRC32TABLE[8])
405 #endif
406 
407 //*****************************************************************************
408 //
409 // Macros for calling ROM functions in the CS API.
410 //
411 //*****************************************************************************
412 #if defined(TARGET_IS_MSP432P4XX)
413 #define ROM_CS_initClockSignal \
414  ((void (*)(uint32_t selectedClockSignal, \
415  uint32_t clockSource, \
416  uint32_t clockSourceDivider))ROM_CSTABLE[0])
417 #endif
418 #if defined(TARGET_IS_MSP432P4XX)
419 #define ROM_CS_setReferenceOscillatorFrequency \
420  ((void (*)(uint8_t referenceFrequency))ROM_CSTABLE[1])
421 #endif
422 #if defined(TARGET_IS_MSP432P4XX)
423 #define ROM_CS_enableClockRequest \
424  ((void (*)(uint32_t selectClock))ROM_CSTABLE[2])
425 #endif
426 #if defined(TARGET_IS_MSP432P4XX)
427 #define ROM_CS_disableClockRequest \
428  ((void (*)(uint32_t selectClock))ROM_CSTABLE[3])
429 #endif
430 #if defined(TARGET_IS_MSP432P4XX)
431 #define ROM_CS_setDCOCenteredFrequency \
432  ((void (*)(uint32_t dcoFreq))ROM_CSTABLE[4])
433 #endif
434 #if defined(TARGET_IS_MSP432P4XX)
435 #define ROM_CS_tuneDCOFrequency \
436  ((void (*)(int16_t tuneParameter))ROM_CSTABLE[5])
437 #endif
438 #if defined(TARGET_IS_MSP432P4XX)
439 #define ROM_CS_enableDCOExternalResistor \
440  ((void (*)(void))ROM_CSTABLE[6])
441 #endif
442 #if defined(TARGET_IS_MSP432P4XX)
443 #define ROM_CS_disableDCOExternalResistor \
444  ((void (*)(void))ROM_CSTABLE[7])
445 #endif
446 #if defined(TARGET_IS_MSP432P4XX)
447 #define ROM_CS_enableInterrupt \
448  ((void (*)(uint32_t flags))ROM_CSTABLE[8])
449 #endif
450 #if defined(TARGET_IS_MSP432P4XX)
451 #define ROM_CS_disableInterrupt \
452  ((void (*)(uint32_t flags))ROM_CSTABLE[9])
453 #endif
454 #if defined(TARGET_IS_MSP432P4XX)
455 #define ROM_CS_getEnabledInterruptStatus \
456  ((uint32_t (*)(void))ROM_CSTABLE[10])
457 #endif
458 #if defined(TARGET_IS_MSP432P4XX)
459 #define ROM_CS_getInterruptStatus \
460  ((uint32_t (*)(void))ROM_CSTABLE[11])
461 #endif
462 #if defined(TARGET_IS_MSP432P4XX)
463 #define ROM_CS_setDCOFrequency \
464  ((void (*)(uint32_t dcoFrequency))ROM_CSTABLE[12])
465 #endif
466 #if defined(TARGET_IS_MSP432P4XX)
467 #define ROM_CS_getDCOFrequency \
468  ((uint32_t (*)(void))ROM_CSTABLE[13])
469 #endif
470 #if defined(TARGET_IS_MSP432P4XX)
471 #define ROM_CS_enableFaultCounter \
472  ((void (*)(uint_fast8_t counterSelect))ROM_CSTABLE[14])
473 #endif
474 #if defined(TARGET_IS_MSP432P4XX)
475 #define ROM_CS_disableFaultCounter \
476  ((void (*)(uint_fast8_t counterSelect))ROM_CSTABLE[15])
477 #endif
478 #if defined(TARGET_IS_MSP432P4XX)
479 #define ROM_CS_resetFaultCounter \
480  ((void (*)(uint_fast8_t counterSelect))ROM_CSTABLE[16])
481 #endif
482 #if defined(TARGET_IS_MSP432P4XX)
483 #define ROM_CS_startFaultCounter \
484  ((void (*)(uint_fast8_t counterSelect, \
485  uint_fast8_t countValue))ROM_CSTABLE[17])
486 #endif
487 #if defined(TARGET_IS_MSP432P4XX)
488 #define ROM_CS_clearInterruptFlag \
489  ((void (*)(uint32_t flags))ROM_CSTABLE[20])
490 #endif
491 #if defined(TARGET_IS_MSP432P4XX)
492 #define ROM_CS_setDCOExternalResistorCalibration \
493  ((void (*)(uint_fast8_t uiCalData, \
494  uint_fast8_t freqRange))ROM_CSTABLE[31])
495 #endif
496 
497 //*****************************************************************************
498 //
499 // Macros for calling ROM functions in the DMA API.
500 //
501 //*****************************************************************************
502 #if defined(TARGET_IS_MSP432P4XX)
503 #define ROM_DMA_enableModule \
504  ((void (*)(void))ROM_DMATABLE[0])
505 #endif
506 #if defined(TARGET_IS_MSP432P4XX)
507 #define ROM_DMA_disableModule \
508  ((void (*)(void))ROM_DMATABLE[1])
509 #endif
510 #if defined(TARGET_IS_MSP432P4XX)
511 #define ROM_DMA_getErrorStatus \
512  ((uint32_t (*)(void))ROM_DMATABLE[2])
513 #endif
514 #if defined(TARGET_IS_MSP432P4XX)
515 #define ROM_DMA_clearErrorStatus \
516  ((void (*)(void))ROM_DMATABLE[3])
517 #endif
518 #if defined(TARGET_IS_MSP432P4XX)
519 #define ROM_DMA_enableChannel \
520  ((void (*)(uint32_t channelNum))ROM_DMATABLE[4])
521 #endif
522 #if defined(TARGET_IS_MSP432P4XX)
523 #define ROM_DMA_disableChannel \
524  ((void (*)(uint32_t channelNum))ROM_DMATABLE[5])
525 #endif
526 #if defined(TARGET_IS_MSP432P4XX)
527 #define ROM_DMA_isChannelEnabled \
528  ((bool (*)(uint32_t channelNum))ROM_DMATABLE[6])
529 #endif
530 #if defined(TARGET_IS_MSP432P4XX)
531 #define ROM_DMA_setControlBase \
532  ((void (*)(void *controlTable))ROM_DMATABLE[7])
533 #endif
534 #if defined(TARGET_IS_MSP432P4XX)
535 #define ROM_DMA_getControlBase \
536  ((void* (*)(void))ROM_DMATABLE[8])
537 #endif
538 #if defined(TARGET_IS_MSP432P4XX)
539 #define ROM_DMA_getControlAlternateBase \
540  ((void* (*)(void))ROM_DMATABLE[9])
541 #endif
542 #if defined(TARGET_IS_MSP432P4XX)
543 #define ROM_DMA_requestChannel \
544  ((void (*)(uint32_t channelNum))ROM_DMATABLE[10])
545 #endif
546 #if defined(TARGET_IS_MSP432P4XX)
547 #define ROM_DMA_enableChannelAttribute \
548  ((void (*)(uint32_t channelNum, \
549  uint32_t attr))ROM_DMATABLE[11])
550 #endif
551 #if defined(TARGET_IS_MSP432P4XX)
552 #define ROM_DMA_disableChannelAttribute \
553  ((void (*)(uint32_t channelNum, \
554  uint32_t attr))ROM_DMATABLE[12])
555 #endif
556 #if defined(TARGET_IS_MSP432P4XX)
557 #define ROM_DMA_getChannelAttribute \
558  ((uint32_t (*)(uint32_t channelNum))ROM_DMATABLE[13])
559 #endif
560 #if defined(TARGET_IS_MSP432P4XX)
561 #define ROM_DMA_setChannelControl \
562  ((void (*)(uint32_t channelStructIndex, \
563  uint32_t control))ROM_DMATABLE[14])
564 #endif
565 #if defined(TARGET_IS_MSP432P4XX)
566 #define ROM_DMA_setChannelTransfer \
567  ((void (*)(uint32_t channelStructIndex, \
568  uint32_t mode, \
569  void *srcAddr, \
570  void *dstAddr, \
571  uint32_t transferSize))ROM_DMATABLE[15])
572 #endif
573 #if defined(TARGET_IS_MSP432P4XX)
574 #define ROM_DMA_setChannelScatterGather \
575  ((void (*)(uint32_t channelNum, \
576  uint32_t taskCount, \
577  void *taskList, \
578  uint32_t isPeriphSG))ROM_DMATABLE[16])
579 #endif
580 #if defined(TARGET_IS_MSP432P4XX)
581 #define ROM_DMA_getChannelSize \
582  ((uint32_t (*)(uint32_t channelStructIndex))ROM_DMATABLE[17])
583 #endif
584 #if defined(TARGET_IS_MSP432P4XX)
585 #define ROM_DMA_getChannelMode \
586  ((uint32_t (*)(uint32_t channelStructIndex))ROM_DMATABLE[18])
587 #endif
588 #if defined(TARGET_IS_MSP432P4XX)
589 #define ROM_DMA_assignChannel \
590  ((void (*)(uint32_t mapping))ROM_DMATABLE[19])
591 #endif
592 #if defined(TARGET_IS_MSP432P4XX)
593 #define ROM_DMA_requestSoftwareTransfer \
594  ((void (*)(uint32_t channel))ROM_DMATABLE[20])
595 #endif
596 #if defined(TARGET_IS_MSP432P4XX)
597 #define ROM_DMA_assignInterrupt \
598  ((void (*)(uint32_t interruptNumber, \
599  uint32_t channel))ROM_DMATABLE[21])
600 #endif
601 #if defined(TARGET_IS_MSP432P4XX)
602 #define ROM_DMA_enableInterrupt \
603  ((void (*)(uint32_t interruptNumber))ROM_DMATABLE[22])
604 #endif
605 #if defined(TARGET_IS_MSP432P4XX)
606 #define ROM_DMA_disableInterrupt \
607  ((void (*)(uint32_t interruptNumber))ROM_DMATABLE[23])
608 #endif
609 #if defined(TARGET_IS_MSP432P4XX)
610 #define ROM_DMA_getInterruptStatus \
611  ((uint32_t (*)(void))ROM_DMATABLE[24])
612 #endif
613 #if defined(TARGET_IS_MSP432P4XX)
614 #define ROM_DMA_clearInterruptFlag \
615  ((void (*)(uint32_t intChannel))ROM_DMATABLE[25])
616 #endif
617 
618 //*****************************************************************************
619 //
620 // Macros for calling ROM functions in the Flash API.
621 //
622 //*****************************************************************************
623 #if defined(TARGET_IS_MSP432P4XX)
624 #define ROM_FlashCtl_enableReadBuffering \
625  ((void (*)(uint_fast8_t memoryBank, \
626  uint_fast8_t accessMethod))ROM_FLASHCTLTABLE[2])
627 #endif
628 #if defined(TARGET_IS_MSP432P4XX)
629 #define ROM_FlashCtl_disableReadBuffering \
630  ((void (*)(uint_fast8_t memoryBank, \
631  uint_fast8_t accessMethod))ROM_FLASHCTLTABLE[3])
632 #endif
633 #if defined(TARGET_IS_MSP432P4XX)
634 #define ROM_FlashCtl_unprotectSector \
635  ((bool (*)(uint_fast8_t memorySpace, \
636  uint32_t sectorMask))ROM_FLASHCTLTABLE[4])
637 #endif
638 #if defined(TARGET_IS_MSP432P4XX)
639 #define ROM_FlashCtl_protectSector \
640  ((bool (*)(uint_fast8_t memorySpace, \
641  uint32_t sectorMask))ROM_FLASHCTLTABLE[5])
642 #endif
643 #if defined(TARGET_IS_MSP432P4XX)
644 #define ROM_FlashCtl_isSectorProtected \
645  ((bool (*)(uint_fast8_t memorySpace, \
646  uint32_t sector))ROM_FLASHCTLTABLE[6])
647 #endif
648 #if defined(TARGET_IS_MSP432P4XX)
649 #define ROM_FlashCtl_verifyMemory \
650  ((bool (*)(void* verifyAddr, \
651  uint32_t length, \
652  uint_fast8_t pattern))ROM_FLASHCTLTABLE[7])
653 #endif
654 #if defined(TARGET_IS_MSP432P4XX)
655 #define ROM_FlashCtl_performMassErase \
656  ((bool (*)(void))ROM_FLASHCTLTABLE[8])
657 #endif
658 #if defined(TARGET_IS_MSP432P4XX)
659 #define ROM_FlashCtl_eraseSector \
660  ((bool (*)(uint32_t addr))ROM_FLASHCTLTABLE[9])
661 #endif
662 #if defined(TARGET_IS_MSP432P4XX)
663 #define ROM_FlashCtl_programMemory \
664  ((bool (*)(void* src, \
665  void* dest, \
666  uint32_t length))ROM_FLASHCTLTABLE[10])
667 #endif
668 #if defined(TARGET_IS_MSP432P4XX)
669 #define ROM_FlashCtl_setProgramVerification \
670  ((void (*)(uint32_t verificationSetting))ROM_FLASHCTLTABLE[11])
671 #endif
672 #if defined(TARGET_IS_MSP432P4XX)
673 #define ROM_FlashCtl_clearProgramVerification \
674  ((void (*)(uint32_t verificationSetting))ROM_FLASHCTLTABLE[12])
675 #endif
676 #if defined(TARGET_IS_MSP432P4XX)
677 #define ROM_FlashCtl_enableWordProgramming \
678  ((void (*)(uint32_t mode))ROM_FLASHCTLTABLE[13])
679 #endif
680 #if defined(TARGET_IS_MSP432P4XX)
681 #define ROM_FlashCtl_disableWordProgramming \
682  ((void (*)(void))ROM_FLASHCTLTABLE[14])
683 #endif
684 #if defined(TARGET_IS_MSP432P4XX)
685 #define ROM_FlashCtl_isWordProgrammingEnabled \
686  ((uint32_t (*)(void))ROM_FLASHCTLTABLE[15])
687 #endif
688 #if defined(TARGET_IS_MSP432P4XX)
689 #define ROM_FlashCtl_enableInterrupt \
690  ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[16])
691 #endif
692 #if defined(TARGET_IS_MSP432P4XX)
693 #define ROM_FlashCtl_disableInterrupt \
694  ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[17])
695 #endif
696 #if defined(TARGET_IS_MSP432P4XX)
697 #define ROM_FlashCtl_getEnabledInterruptStatus \
698  ((uint32_t (*)(void))ROM_FLASHCTLTABLE[18])
699 #endif
700 #if defined(TARGET_IS_MSP432P4XX)
701 #define ROM_FlashCtl_getInterruptStatus \
702  ((uint32_t (*)(void))ROM_FLASHCTLTABLE[19])
703 #endif
704 #if defined(TARGET_IS_MSP432P4XX)
705 #define ROM_FlashCtl_clearInterruptFlag \
706  ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[20])
707 #endif
708 #if defined(TARGET_IS_MSP432P4XX)
709 #define ROM_FlashCtl_setWaitState \
710  ((void (*)(uint32_t bank, \
711  uint32_t waitState))ROM_FLASHCTLTABLE[21])
712 #endif
713 #if defined(TARGET_IS_MSP432P4XX)
714 #define ROM_FlashCtl_getWaitState \
715  ((uint32_t (*)(uint32_t bank))ROM_FLASHCTLTABLE[22])
716 #endif
717 #if defined(TARGET_IS_MSP432P4XX)
718 #define ROM_FlashCtl_setReadMode \
719  ((bool (*)(uint32_t flashBank, \
720  uint32_t readMode))ROM_FLASHCTLTABLE[23])
721 #endif
722 #if defined(TARGET_IS_MSP432P4XX)
723 #define ROM_FlashCtl_getReadMode \
724  ((uint32_t (*)(uint32_t flashBank))ROM_FLASHCTLTABLE[24])
725 #endif
726 #if defined(TARGET_IS_MSP432P4XX)
727 #define ROM___FlashCtl_remaskData8Post \
728  ((uint8_t (*)(uint8_t data, \
729  uint32_t addr))ROM_FLASHCTLTABLE[27])
730 #endif
731 #if defined(TARGET_IS_MSP432P4XX)
732 #define ROM___FlashCtl_remaskData8Pre \
733  ((uint8_t (*)(uint8_t data, \
734  uint32_t addr))ROM_FLASHCTLTABLE[28])
735 #endif
736 #if defined(TARGET_IS_MSP432P4XX)
737 #define ROM___FlashCtl_remaskData32Pre \
738  ((uint32_t (*)(uint32_t data, \
739  uint32_t addr))ROM_FLASHCTLTABLE[29])
740 #endif
741 #if defined(TARGET_IS_MSP432P4XX)
742 #define ROM___FlashCtl_remaskData32Post \
743  ((uint32_t (*)(uint32_t data, \
744  uint32_t addr))ROM_FLASHCTLTABLE[30])
745 #endif
746 #if defined(TARGET_IS_MSP432P4XX)
747 #define ROM___FlashCtl_remaskBurstDataPre \
748  ((void (*)(uint32_t addr, \
749  uint32_t size))ROM_FLASHCTLTABLE[31])
750 #endif
751 #if defined(TARGET_IS_MSP432P4XX)
752 #define ROM___FlashCtl_remaskBurstDataPost \
753  ((void (*)(uint32_t addr, \
754  uint32_t size))ROM_FLASHCTLTABLE[32])
755 #endif
756 #if defined(TARGET_IS_MSP432P4XX)
757 #define ROM_FlashCtl_initiateSectorErase \
758  ((void (*)(uint32_t addr))ROM_FLASHCTLTABLE[33])
759 #endif
760 #if defined(TARGET_IS_MSP432P4XX)
761 #define ROM_FlashCtl_initiateMassErase \
762  ((void (*)(void))ROM_FLASHCTLTABLE[34])
763 #endif
764 
765 //*****************************************************************************
766 //
767 // Macros for calling ROM functions in the FPU API.
768 //
769 //*****************************************************************************
770 #if defined(TARGET_IS_MSP432P4XX)
771 #define ROM_FPU_enableModule \
772  ((void (*)(void))ROM_FPUTABLE[0])
773 #endif
774 #if defined(TARGET_IS_MSP432P4XX)
775 #define ROM_FPU_disableModule \
776  ((void (*)(void))ROM_FPUTABLE[1])
777 #endif
778 #if defined(TARGET_IS_MSP432P4XX)
779 #define ROM_FPU_enableStacking \
780  ((void (*)(void))ROM_FPUTABLE[2])
781 #endif
782 #if defined(TARGET_IS_MSP432P4XX)
783 #define ROM_FPU_enableLazyStacking \
784  ((void (*)(void))ROM_FPUTABLE[3])
785 #endif
786 #if defined(TARGET_IS_MSP432P4XX)
787 #define ROM_FPU_disableStacking \
788  ((void (*)(void))ROM_FPUTABLE[4])
789 #endif
790 #if defined(TARGET_IS_MSP432P4XX)
791 #define ROM_FPU_setHalfPrecisionMode \
792  ((void (*)(uint32_t mode))ROM_FPUTABLE[5])
793 #endif
794 #if defined(TARGET_IS_MSP432P4XX)
795 #define ROM_FPU_setNaNMode \
796  ((void (*)(uint32_t mode))ROM_FPUTABLE[6])
797 #endif
798 #if defined(TARGET_IS_MSP432P4XX)
799 #define ROM_FPU_setFlushToZeroMode \
800  ((void (*)(uint32_t mode))ROM_FPUTABLE[7])
801 #endif
802 #if defined(TARGET_IS_MSP432P4XX)
803 #define ROM_FPU_setRoundingMode \
804  ((void (*)(uint32_t mode))ROM_FPUTABLE[8])
805 #endif
806 
807 //*****************************************************************************
808 //
809 // Macros for calling ROM functions in the GPIO API.
810 //
811 //*****************************************************************************
812 #if defined(TARGET_IS_MSP432P4XX)
813 #define ROM_GPIO_setAsOutputPin \
814  ((void (*)(uint_fast8_t selectedPort, \
815  uint_fast16_t selectedPins))ROM_GPIOTABLE[0])
816 #endif
817 #if defined(TARGET_IS_MSP432P4XX)
818 #define ROM_GPIO_setOutputHighOnPin \
819  ((void (*)(uint_fast8_t selectedPort, \
820  uint_fast16_t selectedPins))ROM_GPIOTABLE[1])
821 #endif
822 #if defined(TARGET_IS_MSP432P4XX)
823 #define ROM_GPIO_setOutputLowOnPin \
824  ((void (*)(uint_fast8_t selectedPort, \
825  uint_fast16_t selectedPins))ROM_GPIOTABLE[2])
826 #endif
827 #if defined(TARGET_IS_MSP432P4XX)
828 #define ROM_GPIO_toggleOutputOnPin \
829  ((void (*)(uint_fast8_t selectedPort, \
830  uint_fast16_t selectedPins))ROM_GPIOTABLE[3])
831 #endif
832 #if defined(TARGET_IS_MSP432P4XX)
833 #define ROM_GPIO_setAsInputPinWithPullDownResistor \
834  ((void (*)(uint_fast8_t selectedPort, \
835  uint_fast16_t selectedPins))ROM_GPIOTABLE[4])
836 #endif
837 #if defined(TARGET_IS_MSP432P4XX)
838 #define ROM_GPIO_setAsInputPinWithPullUpResistor \
839  ((void (*)(uint_fast8_t selectedPort, \
840  uint_fast16_t selectedPins))ROM_GPIOTABLE[5])
841 #endif
842 #if defined(TARGET_IS_MSP432P4XX)
843 #define ROM_GPIO_setAsPeripheralModuleFunctionOutputPin \
844  ((void (*)( uint_fast8_t selectedPort, \
845  uint_fast16_t selectedPins, \
846  uint_fast8_t mode))ROM_GPIOTABLE[6])
847 #endif
848 #if defined(TARGET_IS_MSP432P4XX)
849 #define ROM_GPIO_setAsPeripheralModuleFunctionInputPin \
850  ((void (*)( uint_fast8_t selectedPort, \
851  uint_fast16_t selectedPins, \
852  uint_fast8_t mode))ROM_GPIOTABLE[7])
853 #endif
854 #if defined(TARGET_IS_MSP432P4XX)
855 #define ROM_GPIO_getInputPinValue \
856  ((uint8_t (*)(uint_fast8_t selectedPort, \
857  uint_fast16_t selectedPins))ROM_GPIOTABLE[8])
858 #endif
859 #if defined(TARGET_IS_MSP432P4XX)
860 #define ROM_GPIO_interruptEdgeSelect \
861  ((void (*)(uint_fast8_t selectedPort, \
862  uint_fast16_t selectedPins, \
863  uint_fast8_t edgeSelect))ROM_GPIOTABLE[9])
864 #endif
865 #if defined(TARGET_IS_MSP432P4XX)
866 #define ROM_GPIO_enableInterrupt \
867  ((void (*)(uint_fast8_t selectedPort, \
868  uint_fast16_t selectedPins))ROM_GPIOTABLE[10])
869 #endif
870 #if defined(TARGET_IS_MSP432P4XX)
871 #define ROM_GPIO_disableInterrupt \
872  ((void (*)(uint_fast8_t selectedPort, \
873  uint_fast16_t selectedPins))ROM_GPIOTABLE[11])
874 #endif
875 #if defined(TARGET_IS_MSP432P4XX)
876 #define ROM_GPIO_getInterruptStatus \
877  ((uint_fast16_t (*)(uint_fast8_t selectedPort, \
878  uint_fast16_t selectedPins))ROM_GPIOTABLE[12])
879 #endif
880 #if defined(TARGET_IS_MSP432P4XX)
881 #define ROM_GPIO_clearInterruptFlag \
882  ((void (*)(uint_fast8_t selectedPort, \
883  uint_fast16_t selectedPins))ROM_GPIOTABLE[13])
884 #endif
885 #if defined(TARGET_IS_MSP432P4XX)
886 #define ROM_GPIO_setAsInputPin \
887  ((void (*)(uint_fast8_t selectedPort, \
888  uint_fast16_t selectedPins))ROM_GPIOTABLE[14])
889 #endif
890 #if defined(TARGET_IS_MSP432P4XX)
891 #define ROM_GPIO_getEnabledInterruptStatus \
892  ((uint_fast16_t (*)(uint_fast8_t selectedPort))ROM_GPIOTABLE[15])
893 #endif
894 #if defined(TARGET_IS_MSP432P4XX)
895 #define ROM_GPIO_setDriveStrengthHigh \
896  ((void (*)(uint_fast8_t selectedPort, \
897  uint_fast8_t selectedPins))ROM_GPIOTABLE[16])
898 #endif
899 #if defined(TARGET_IS_MSP432P4XX)
900 #define ROM_GPIO_setDriveStrengthLow \
901  ((void (*)(uint_fast8_t selectedPort, \
902  uint_fast8_t selectedPins))ROM_GPIOTABLE[17])
903 #endif
904 
905 //*****************************************************************************
906 //
907 // Macros for calling ROM functions in the I2C API.
908 //
909 //*****************************************************************************
910 #if defined(TARGET_IS_MSP432P4XX)
911 #define ROM_I2C_initMaster \
912  ((void (*)(uint32_t moduleInstance, \
913  const eUSCI_I2C_MasterConfig *config))ROM_I2CTABLE[0])
914 #endif
915 #if defined(TARGET_IS_MSP432P4XX)
916 #define ROM_I2C_initSlave \
917  ((void (*)(uint32_t moduleInstance, \
918  uint_fast16_t slaveAddress, \
919  uint_fast8_t slaveAddressOffset, \
920  uint32_t slaveOwnAddressEnable))ROM_I2CTABLE[1])
921 #endif
922 #if defined(TARGET_IS_MSP432P4XX)
923 #define ROM_I2C_enableModule \
924  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[2])
925 #endif
926 #if defined(TARGET_IS_MSP432P4XX)
927 #define ROM_I2C_disableModule \
928  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[3])
929 #endif
930 #if defined(TARGET_IS_MSP432P4XX)
931 #define ROM_I2C_setSlaveAddress \
932  ((void (*)(uint32_t moduleInstance, \
933  uint_fast16_t slaveAddress))ROM_I2CTABLE[4])
934 #endif
935 #if defined(TARGET_IS_MSP432P4XX)
936 #define ROM_I2C_setMode \
937  ((void (*)(uint32_t moduleInstance, \
938  uint_fast8_t mode))ROM_I2CTABLE[5])
939 #endif
940 #if defined(TARGET_IS_MSP432P4XX)
941 #define ROM_I2C_slavePutData \
942  ((void (*)(uint32_t moduleInstance, \
943  uint8_t transmitData))ROM_I2CTABLE[6])
944 #endif
945 #if defined(TARGET_IS_MSP432P4XX)
946 #define ROM_I2C_slaveGetData \
947  ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[7])
948 #endif
949 #if defined(TARGET_IS_MSP432P4XX)
950 #define ROM_I2C_isBusBusy \
951  ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[8])
952 #endif
953 #if defined(TARGET_IS_MSP432P4XX)
954 #define ROM_I2C_masterSendSingleByte \
955  ((void (*)(uint32_t moduleInstance, \
956  uint8_t txData))ROM_I2CTABLE[9])
957 #endif
958 #if defined(TARGET_IS_MSP432P4XX)
959 #define ROM_I2C_masterSendSingleByteWithTimeout \
960  ((bool (*)(uint32_t moduleInstance, \
961  uint8_t txData, \
962  uint32_t timeout))ROM_I2CTABLE[10])
963 #endif
964 #if defined(TARGET_IS_MSP432P4XX)
965 #define ROM_I2C_masterSendMultiByteStart \
966  ((void (*)(uint32_t moduleInstance, \
967  uint8_t txData))ROM_I2CTABLE[11])
968 #endif
969 #if defined(TARGET_IS_MSP432P4XX)
970 #define ROM_I2C_masterSendMultiByteStartWithTimeout \
971  ((bool (*)(uint32_t moduleInstance, \
972  uint8_t txData, \
973  uint32_t timeout))ROM_I2CTABLE[12])
974 #endif
975 #if defined(TARGET_IS_MSP432P4XX)
976 #define ROM_I2C_masterSendMultiByteNext \
977  ((void (*)(uint32_t moduleInstance, \
978  uint8_t txData))ROM_I2CTABLE[13])
979 #endif
980 #if defined(TARGET_IS_MSP432P4XX)
981 #define ROM_I2C_masterSendMultiByteNextWithTimeout \
982  ((bool (*)(uint32_t moduleInstance, \
983  uint8_t txData, \
984  uint32_t timeout))ROM_I2CTABLE[14])
985 #endif
986 #if defined(TARGET_IS_MSP432P4XX)
987 #define ROM_I2C_masterSendMultiByteFinish \
988  ((void (*)(uint32_t moduleInstance, \
989  uint8_t txData))ROM_I2CTABLE[15])
990 #endif
991 #if defined(TARGET_IS_MSP432P4XX)
992 #define ROM_I2C_masterSendMultiByteFinishWithTimeout \
993  ((bool (*)(uint32_t moduleInstance, \
994  uint8_t txData, \
995  uint32_t timeout))ROM_I2CTABLE[16])
996 #endif
997 #if defined(TARGET_IS_MSP432P4XX)
998 #define ROM_I2C_masterSendMultiByteStop \
999  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[17])
1000 #endif
1001 #if defined(TARGET_IS_MSP432P4XX)
1002 #define ROM_I2C_masterSendMultiByteStopWithTimeout \
1003  ((bool (*)(uint32_t moduleInstance, \
1004  uint32_t timeout))ROM_I2CTABLE[18])
1005 #endif
1006 #if defined(TARGET_IS_MSP432P4XX)
1007 #define ROM_I2C_masterReceiveStart \
1008  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[19])
1009 #endif
1010 #if defined(TARGET_IS_MSP432P4XX)
1011 #define ROM_I2C_masterReceiveMultiByteNext \
1012  ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[20])
1013 #endif
1014 #if defined(TARGET_IS_MSP432P4XX)
1015 #define ROM_I2C_masterReceiveMultiByteFinish \
1016  ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[21])
1017 #endif
1018 #if defined(TARGET_IS_MSP432P4XX)
1019 #define ROM_I2C_masterReceiveMultiByteFinishWithTimeout \
1020  ((bool (*)(uint32_t moduleInstance, \
1021  uint8_t *txData, \
1022  uint32_t timeout))ROM_I2CTABLE[22])
1023 #endif
1024 #if defined(TARGET_IS_MSP432P4XX)
1025 #define ROM_I2C_masterReceiveMultiByteStop \
1026  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[23])
1027 #endif
1028 #if defined(TARGET_IS_MSP432P4XX)
1029 #define ROM_I2C_masterReceiveSingleByte \
1030  ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[24])
1031 #endif
1032 #if defined(TARGET_IS_MSP432P4XX)
1033 #define ROM_I2C_masterReceiveSingle \
1034  ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[25])
1035 #endif
1036 #if defined(TARGET_IS_MSP432P4XX)
1037 #define ROM_I2C_getReceiveBufferAddressForDMA \
1038  ((uint32_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[26])
1039 #endif
1040 #if defined(TARGET_IS_MSP432P4XX)
1041 #define ROM_I2C_getTransmitBufferAddressForDMA \
1042  ((uint32_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[27])
1043 #endif
1044 #if defined(TARGET_IS_MSP432P4XX)
1045 #define ROM_I2C_masterIsStopSent \
1046  ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[28])
1047 #endif
1048 #if defined(TARGET_IS_MSP432P4XX)
1049 #define ROM_I2C_masterIsStartSent \
1050  ((bool (*)(uint32_t moduleInstance))ROM_I2CTABLE[29])
1051 #endif
1052 #if defined(TARGET_IS_MSP432P4XX)
1053 #define ROM_I2C_masterSendStart \
1054  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[30])
1055 #endif
1056 #if defined(TARGET_IS_MSP432P4XX)
1057 #define ROM_I2C_enableMultiMasterMode \
1058  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[31])
1059 #endif
1060 #if defined(TARGET_IS_MSP432P4XX)
1061 #define ROM_I2C_disableMultiMasterMode \
1062  ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[32])
1063 #endif
1064 #if defined(TARGET_IS_MSP432P4XX)
1065 #define ROM_I2C_enableInterrupt \
1066  ((void (*)(uint32_t moduleInstance, \
1067  uint_fast16_t mask))ROM_I2CTABLE[33])
1068 #endif
1069 #if defined(TARGET_IS_MSP432P4XX)
1070 #define ROM_I2C_disableInterrupt \
1071  ((void (*)(uint32_t moduleInstance, \
1072  uint_fast16_t mask))ROM_I2CTABLE[34])
1073 #endif
1074 #if defined(TARGET_IS_MSP432P4XX)
1075 #define ROM_I2C_clearInterruptFlag \
1076  ((void (*)(uint32_t moduleInstance, \
1077  uint_fast16_t mask))ROM_I2CTABLE[35])
1078 #endif
1079 #if defined(TARGET_IS_MSP432P4XX)
1080 #define ROM_I2C_getInterruptStatus \
1081  ((uint_fast16_t (*)(uint32_t moduleInstance, \
1082  uint16_t mask))ROM_I2CTABLE[36])
1083 #endif
1084 #if defined(TARGET_IS_MSP432P4XX)
1085 #define ROM_I2C_getEnabledInterruptStatus \
1086  ((uint_fast16_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[37])
1087 #endif
1088 #if defined(TARGET_IS_MSP432P4XX)
1089 #define ROM_I2C_getMode \
1090  ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[38])
1091 #endif
1092 
1093 //*****************************************************************************
1094 //
1095 // Macros for calling ROM functions in the Interrupt API.
1096 //
1097 //*****************************************************************************
1098 #if defined(TARGET_IS_MSP432P4XX)
1099 #define ROM_Interrupt_enableMaster \
1100  ((bool (*)(void))ROM_INTTABLE[0])
1101 #endif
1102 #if defined(TARGET_IS_MSP432P4XX)
1103 #define ROM_Interrupt_disableMaster \
1104  ((bool (*)(void))ROM_INTTABLE[1])
1105 #endif
1106 #if defined(TARGET_IS_MSP432P4XX)
1107 #define ROM_Interrupt_setPriorityGrouping \
1108  ((void (*)(uint32_t bits))ROM_INTTABLE[2])
1109 #endif
1110 #if defined(TARGET_IS_MSP432P4XX)
1111 #define ROM_Interrupt_getPriorityGrouping \
1112  ((uint32_t (*)(void))ROM_INTTABLE[3])
1113 #endif
1114 #if defined(TARGET_IS_MSP432P4XX)
1115 #define ROM_Interrupt_setPriority \
1116  ((void (*)(uint32_t interruptNumber, \
1117  uint8_t priority))ROM_INTTABLE[4])
1118 #endif
1119 #if defined(TARGET_IS_MSP432P4XX)
1120 #define ROM_Interrupt_getPriority \
1121  ((uint8_t (*)(uint32_t interruptNumber))ROM_INTTABLE[5])
1122 #endif
1123 #if defined(TARGET_IS_MSP432P4XX)
1124 #define ROM_Interrupt_enableInterrupt \
1125  ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[6])
1126 #endif
1127 #if defined(TARGET_IS_MSP432P4XX)
1128 #define ROM_Interrupt_disableInterrupt \
1129  ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[7])
1130 #endif
1131 #if defined(TARGET_IS_MSP432P4XX)
1132 #define ROM_Interrupt_isEnabled \
1133  ((bool (*)(uint32_t interruptNumber))ROM_INTTABLE[8])
1134 #endif
1135 #if defined(TARGET_IS_MSP432P4XX)
1136 #define ROM_Interrupt_pendInterrupt \
1137  ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[9])
1138 #endif
1139 #if defined(TARGET_IS_MSP432P4XX)
1140 #define ROM_Interrupt_setPriorityMask \
1141  ((void (*)(uint8_t priorityMask))ROM_INTTABLE[10])
1142 #endif
1143 #if defined(TARGET_IS_MSP432P4XX)
1144 #define ROM_Interrupt_getPriorityMask \
1145  ((uint8_t (*)(void))ROM_INTTABLE[11])
1146 #endif
1147 #if defined(TARGET_IS_MSP432P4XX)
1148 #define ROM_Interrupt_setVectorTableAddress \
1149  ((void (*)(uint32_t addr))ROM_INTTABLE[12])
1150 #endif
1151 #if defined(TARGET_IS_MSP432P4XX)
1152 #define ROM_Interrupt_getVectorTableAddress \
1153  ((uint32_t (*)(void))ROM_INTTABLE[13])
1154 #endif
1155 #if defined(TARGET_IS_MSP432P4XX)
1156 #define ROM_Interrupt_enableSleepOnIsrExit \
1157  ((void (*)(void))ROM_INTTABLE[14])
1158 #endif
1159 #if defined(TARGET_IS_MSP432P4XX)
1160 #define ROM_Interrupt_disableSleepOnIsrExit \
1161  ((void (*)(void))ROM_INTTABLE[15])
1162 #endif
1163 #if defined(TARGET_IS_MSP432P4XX)
1164 #define ROM_Interrupt_unpendInterrupt \
1165  ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[18])
1166 #endif
1167 
1168 //*****************************************************************************
1169 //
1170 // Macros for calling ROM functions in the MPU API.
1171 //
1172 //*****************************************************************************
1173 #if defined(TARGET_IS_MSP432P4XX)
1174 #define ROM_MPU_enableModule \
1175  ((void (*)(uint32_t mpuConfig))ROM_MPUTABLE[0])
1176 #endif
1177 #if defined(TARGET_IS_MSP432P4XX)
1178 #define ROM_MPU_disableModule \
1179  ((void (*)(void))ROM_MPUTABLE[1])
1180 #endif
1181 #if defined(TARGET_IS_MSP432P4XX)
1182 #define ROM_MPU_getRegionCount \
1183  ((uint32_t (*)(void))ROM_MPUTABLE[2])
1184 #endif
1185 #if defined(TARGET_IS_MSP432P4XX)
1186 #define ROM_MPU_enableRegion \
1187  ((void (*)(uint32_t region))ROM_MPUTABLE[3])
1188 #endif
1189 #if defined(TARGET_IS_MSP432P4XX)
1190 #define ROM_MPU_disableRegion \
1191  ((void (*)(uint32_t region))ROM_MPUTABLE[4])
1192 #endif
1193 #if defined(TARGET_IS_MSP432P4XX)
1194 #define ROM_MPU_setRegion \
1195  ((void (*)(uint32_t region, \
1196  uint32_t addr, \
1197  uint32_t flags))ROM_MPUTABLE[5])
1198 #endif
1199 #if defined(TARGET_IS_MSP432P4XX)
1200 #define ROM_MPU_getRegion \
1201  ((void (*)(uint32_t region, \
1202  uint32_t *addr, \
1203  uint32_t *pflags))ROM_MPUTABLE[6])
1204 #endif
1205 #if defined(TARGET_IS_MSP432P4XX)
1206 #define ROM_MPU_enableInterrupt \
1207  ((void (*)(void))ROM_MPUTABLE[7])
1208 #endif
1209 #if defined(TARGET_IS_MSP432P4XX)
1210 #define ROM_MPU_disableInterrupt \
1211  ((void (*)(void))ROM_MPUTABLE[8])
1212 #endif
1213 
1214 //*****************************************************************************
1215 //
1216 // Macros for calling ROM functions in the PCM API.
1217 //
1218 //*****************************************************************************
1219 #if defined(TARGET_IS_MSP432P4XX)
1220 #define ROM_PCM_setCoreVoltageLevel \
1221  ((bool (*)(uint_fast8_t voltageLevel))ROM_PCMTABLE[0])
1222 #endif
1223 #if defined(TARGET_IS_MSP432P4XX)
1224 #define ROM_PCM_getCoreVoltageLevel \
1225  ((uint8_t (*)(void))ROM_PCMTABLE[1])
1226 #endif
1227 #if defined(TARGET_IS_MSP432P4XX)
1228 #define ROM_PCM_setCoreVoltageLevelWithTimeout \
1229  ((bool (*)(uint_fast8_t voltageLevel, \
1230  uint32_t timeOut))ROM_PCMTABLE[2])
1231 #endif
1232 #if defined(TARGET_IS_MSP432P4XX)
1233 #define ROM_PCM_setPowerMode \
1234  ((bool (*)(uint_fast8_t powerMode))ROM_PCMTABLE[3])
1235 #endif
1236 #if defined(TARGET_IS_MSP432P4XX)
1237 #define ROM_PCM_setPowerModeWithTimeout \
1238  ((bool (*)(uint_fast8_t powerMode, \
1239  uint32_t timeOut))ROM_PCMTABLE[4])
1240 #endif
1241 #if defined(TARGET_IS_MSP432P4XX)
1242 #define ROM_PCM_getPowerMode \
1243  ((uint8_t (*)(void))ROM_PCMTABLE[5])
1244 #endif
1245 #if defined(TARGET_IS_MSP432P4XX)
1246 #define ROM_PCM_setPowerState \
1247  ((bool (*)(uint_fast8_t powerState))ROM_PCMTABLE[6])
1248 #endif
1249 #if defined(TARGET_IS_MSP432P4XX)
1250 #define ROM_PCM_setPowerStateWithTimeout \
1251  ((bool (*)(uint_fast8_t powerState, \
1252  uint32_t timeout))ROM_PCMTABLE[7])
1253 #endif
1254 #if defined(TARGET_IS_MSP432P4XX)
1255 #define ROM_PCM_getPowerState \
1256  ((uint8_t (*)(void))ROM_PCMTABLE[8])
1257 #endif
1258 #if defined(TARGET_IS_MSP432P4XX)
1259 #define ROM_PCM_shutdownDevice \
1260  ((bool (*)(uint32_t shutdownMode))ROM_PCMTABLE[9])
1261 #endif
1262 #if defined(TARGET_IS_MSP432P4XX)
1263 #define ROM_PCM_gotoLPM0 \
1264  ((bool (*)(void))ROM_PCMTABLE[10])
1265 #endif
1266 #if defined(TARGET_IS_MSP432P4XX)
1267 #define ROM_PCM_gotoLPM3 \
1268  ((bool (*)(void))ROM_PCMTABLE[11])
1269 #endif
1270 #if defined(TARGET_IS_MSP432P4XX)
1271 #define ROM_PCM_enableInterrupt \
1272  ((void (*)(uint32_t flags))ROM_PCMTABLE[12])
1273 #endif
1274 #if defined(TARGET_IS_MSP432P4XX)
1275 #define ROM_PCM_disableInterrupt \
1276  ((void (*)(uint32_t flags))ROM_PCMTABLE[13])
1277 #endif
1278 #if defined(TARGET_IS_MSP432P4XX)
1279 #define ROM_PCM_getInterruptStatus \
1280  ((uint32_t (*)(void))ROM_PCMTABLE[14])
1281 #endif
1282 #if defined(TARGET_IS_MSP432P4XX)
1283 #define ROM_PCM_getEnabledInterruptStatus \
1284  ((uint32_t (*)(void))ROM_PCMTABLE[15])
1285 #endif
1286 #if defined(TARGET_IS_MSP432P4XX)
1287 #define ROM_PCM_clearInterruptFlag \
1288  ((void (*)(uint32_t flags))ROM_PCMTABLE[16])
1289 #endif
1290 #if defined(TARGET_IS_MSP432P4XX)
1291 #define ROM_PCM_enableRudeMode \
1292  ((void (*)(void))ROM_PCMTABLE[17])
1293 #endif
1294 #if defined(TARGET_IS_MSP432P4XX)
1295 #define ROM_PCM_disableRudeMode \
1296  ((void (*)(void))ROM_PCMTABLE[18])
1297 #endif
1298 #if defined(TARGET_IS_MSP432P4XX)
1299 #define ROM_PCM_gotoLPM0InterruptSafe \
1300  ((bool (*)(void))ROM_PCMTABLE[19])
1301 #endif
1302 #if defined(TARGET_IS_MSP432P4XX)
1303 #define ROM_PCM_gotoLPM3InterruptSafe \
1304  ((bool (*)(void))ROM_PCMTABLE[20])
1305 #endif
1306 #if defined(TARGET_IS_MSP432P4XX)
1307 #define ROM_PCM_setCoreVoltageLevelNonBlocking \
1308  ((bool (*)(uint_fast8_t voltageLevel))ROM_PCMTABLE[23])
1309 #endif
1310 #if defined(TARGET_IS_MSP432P4XX)
1311 #define ROM_PCM_setPowerModeNonBlocking \
1312  ((bool (*)(uint_fast8_t powerMode))ROM_PCMTABLE[24])
1313 #endif
1314 #if defined(TARGET_IS_MSP432P4XX)
1315 #define ROM_PCM_setPowerStateNonBlocking \
1316  ((bool (*)(uint_fast8_t powerState))ROM_PCMTABLE[25])
1317 #endif
1318 #if defined(TARGET_IS_MSP432P4XX)
1319 #define ROM_PCM_gotoLPM4 \
1320  ((bool (*)(void))ROM_PCMTABLE[26])
1321 #endif
1322 #if defined(TARGET_IS_MSP432P4XX)
1323 #define ROM_PCM_gotoLPM4InterruptSafe \
1324  ((bool (*)(void))ROM_PCMTABLE[27])
1325 #endif
1326 
1327 //*****************************************************************************
1328 //
1329 // Macros for calling ROM functions in the PMAP API.
1330 //
1331 //*****************************************************************************
1332 #if defined(TARGET_IS_MSP432P4XX)
1333 #define ROM_PMAP_configurePorts \
1334  ((void (*)(const uint8_t *portMapping, \
1335  uint8_t pxMAPy, \
1336  uint8_t numberOfPorts, \
1337  uint8_t portMapReconfigure))ROM_PMAPTABLE[0])
1338 #endif
1339 
1340 //*****************************************************************************
1341 //
1342 // Macros for calling ROM functions in the PSS API.
1343 //
1344 //*****************************************************************************
1345 #if defined(TARGET_IS_MSP432P4XX)
1346 #define ROM_PSS_enableHighSidePinToggle \
1347  ((void (*)(bool activeLow))ROM_PSSTABLE[0])
1348 #endif
1349 #if defined(TARGET_IS_MSP432P4XX)
1350 #define ROM_PSS_disableHighSidePinToggle \
1351  ((void (*)(void))ROM_PSSTABLE[1])
1352 #endif
1353 #if defined(TARGET_IS_MSP432P4XX)
1354 #define ROM_PSS_enableHighSide \
1355  ((void (*)(void))ROM_PSSTABLE[2])
1356 #endif
1357 #if defined(TARGET_IS_MSP432P4XX)
1358 #define ROM_PSS_disableHighSide \
1359  ((void (*)(void))ROM_PSSTABLE[3])
1360 #endif
1361 #if defined(TARGET_IS_MSP432P4XX)
1362 #define ROM_PSS_setHighSidePerformanceMode \
1363  ((void (*)(uint_fast8_t powerMode))ROM_PSSTABLE[6])
1364 #endif
1365 #if defined(TARGET_IS_MSP432P4XX)
1366 #define ROM_PSS_getHighSidePerformanceMode \
1367  ((uint_fast8_t (*)(void))ROM_PSSTABLE[7])
1368 #endif
1369 #if defined(TARGET_IS_MSP432P4XX)
1370 #define ROM_PSS_enableHighSideMonitor \
1371  ((void (*)(void))ROM_PSSTABLE[10])
1372 #endif
1373 #if defined(TARGET_IS_MSP432P4XX)
1374 #define ROM_PSS_disableHighSideMonitor \
1375  ((void (*)(void))ROM_PSSTABLE[11])
1376 #endif
1377 #if defined(TARGET_IS_MSP432P4XX)
1378 #define ROM_PSS_setHighSideVoltageTrigger \
1379  ((void (*)(uint_fast8_t triggerVoltage))ROM_PSSTABLE[12])
1380 #endif
1381 #if defined(TARGET_IS_MSP432P4XX)
1382 #define ROM_PSS_getHighSideVoltageTrigger \
1383  ((uint_fast8_t (*)(void))ROM_PSSTABLE[13])
1384 #endif
1385 #if defined(TARGET_IS_MSP432P4XX)
1386 #define ROM_PSS_enableInterrupt \
1387  ((void (*)(void))ROM_PSSTABLE[14])
1388 #endif
1389 #if defined(TARGET_IS_MSP432P4XX)
1390 #define ROM_PSS_disableInterrupt \
1391  ((void (*)(void))ROM_PSSTABLE[15])
1392 #endif
1393 #if defined(TARGET_IS_MSP432P4XX)
1394 #define ROM_PSS_getInterruptStatus \
1395  ((uint32_t (*)(void))ROM_PSSTABLE[16])
1396 #endif
1397 #if defined(TARGET_IS_MSP432P4XX)
1398 #define ROM_PSS_clearInterruptFlag \
1399  ((void (*)(void))ROM_PSSTABLE[17])
1400 #endif
1401 #if defined(TARGET_IS_MSP432P4XX)
1402 #define ROM_PSS_enableForcedDCDCOperation \
1403  ((void (*)(void))ROM_PSSTABLE[20])
1404 #endif
1405 #if defined(TARGET_IS_MSP432P4XX)
1406 #define ROM_PSS_disableForcedDCDCOperation \
1407  ((void (*)(void))ROM_PSSTABLE[21])
1408 #endif
1409 
1410 //*****************************************************************************
1411 //
1412 // Macros for calling ROM functions in the Ref API.
1413 //
1414 //*****************************************************************************
1415 #if defined(TARGET_IS_MSP432P4XX)
1416 #define ROM_REF_A_setReferenceVoltage \
1417  ((void (*)(uint_fast8_t referenceVoltageSelect))ROM_REFTABLE[0])
1418 #endif
1419 #if defined(TARGET_IS_MSP432P4XX)
1420 #define ROM_REF_A_disableTempSensor \
1421  ((void (*)(void))ROM_REFTABLE[1])
1422 #endif
1423 #if defined(TARGET_IS_MSP432P4XX)
1424 #define ROM_REF_A_enableTempSensor \
1425  ((void (*)(void))ROM_REFTABLE[2])
1426 #endif
1427 #if defined(TARGET_IS_MSP432P4XX)
1428 #define ROM_REF_A_enableReferenceVoltageOutput \
1429  ((void (*)(void))ROM_REFTABLE[3])
1430 #endif
1431 #if defined(TARGET_IS_MSP432P4XX)
1432 #define ROM_REF_A_disableReferenceVoltageOutput \
1433  ((void (*)(void))ROM_REFTABLE[4])
1434 #endif
1435 #if defined(TARGET_IS_MSP432P4XX)
1436 #define ROM_REF_A_enableReferenceVoltage \
1437  ((void (*)(void))ROM_REFTABLE[5])
1438 #endif
1439 #if defined(TARGET_IS_MSP432P4XX)
1440 #define ROM_REF_A_disableReferenceVoltage \
1441  ((void (*)(void))ROM_REFTABLE[6])
1442 #endif
1443 #if defined(TARGET_IS_MSP432P4XX)
1444 #define ROM_REF_A_getBandgapMode \
1445  ((uint_fast8_t (*)(void))ROM_REFTABLE[7])
1446 #endif
1447 #if defined(TARGET_IS_MSP432P4XX)
1448 #define ROM_REF_A_isBandgapActive \
1449  ((bool (*)(void))ROM_REFTABLE[8])
1450 #endif
1451 #if defined(TARGET_IS_MSP432P4XX)
1452 #define ROM_REF_A_isRefGenBusy \
1453  ((bool (*)(void))ROM_REFTABLE[9])
1454 #endif
1455 #if defined(TARGET_IS_MSP432P4XX)
1456 #define ROM_REF_A_isRefGenActive \
1457  ((bool (*)(void))ROM_REFTABLE[10])
1458 #endif
1459 #if defined(TARGET_IS_MSP432P4XX)
1460 #define ROM_REF_A_getBufferedBandgapVoltageStatus \
1461  ((bool (*)(void))ROM_REFTABLE[11])
1462 #endif
1463 #if defined(TARGET_IS_MSP432P4XX)
1464 #define ROM_REF_A_getVariableReferenceVoltageStatus \
1465  ((bool (*)(void))ROM_REFTABLE[12])
1466 #endif
1467 #if defined(TARGET_IS_MSP432P4XX)
1468 #define ROM_REF_A_setReferenceVoltageOneTimeTrigger \
1469  ((void (*)(void))ROM_REFTABLE[13])
1470 #endif
1471 #if defined(TARGET_IS_MSP432P4XX)
1472 #define ROM_REF_A_setBufferedBandgapVoltageOneTimeTrigger \
1473  ((void (*)(void))ROM_REFTABLE[14])
1474 #endif
1475 
1476 //*****************************************************************************
1477 //
1478 // Macros for calling ROM functions in the ResetCtl API.
1479 //
1480 //*****************************************************************************
1481 #if defined(TARGET_IS_MSP432P4XX)
1482 #define ROM_ResetCtl_initiateSoftReset \
1483  ((void (*)(void))ROM_RESETCTLTABLE[0])
1484 #endif
1485 #if defined(TARGET_IS_MSP432P4XX)
1486 #define ROM_ResetCtl_initiateSoftResetWithSource \
1487  ((void (*)(uint32_t source))ROM_RESETCTLTABLE[1])
1488 #endif
1489 #if defined(TARGET_IS_MSP432P4XX)
1490 #define ROM_ResetCtl_getSoftResetSource \
1491  ((uint32_t (*)(void))ROM_RESETCTLTABLE[2])
1492 #endif
1493 #if defined(TARGET_IS_MSP432P4XX)
1494 #define ROM_ResetCtl_clearSoftResetSource \
1495  ((void (*)(uint32_t mask))ROM_RESETCTLTABLE[3])
1496 #endif
1497 #if defined(TARGET_IS_MSP432P4XX)
1498 #define ROM_ResetCtl_initiateHardReset \
1499  ((void (*)(void))ROM_RESETCTLTABLE[4])
1500 #endif
1501 #if defined(TARGET_IS_MSP432P4XX)
1502 #define ROM_ResetCtl_initiateHardResetWithSource \
1503  ((void (*)(uint32_t source))ROM_RESETCTLTABLE[5])
1504 #endif
1505 #if defined(TARGET_IS_MSP432P4XX)
1506 #define ROM_ResetCtl_getHardResetSource \
1507  ((uint32_t (*)(void))ROM_RESETCTLTABLE[6])
1508 #endif
1509 #if defined(TARGET_IS_MSP432P4XX)
1510 #define ROM_ResetCtl_clearHardResetSource \
1511  ((void (*)(uint32_t mask))ROM_RESETCTLTABLE[7])
1512 #endif
1513 #if defined(TARGET_IS_MSP432P4XX)
1514 #define ROM_ResetCtl_getPSSSource \
1515  ((uint32_t (*)(void))ROM_RESETCTLTABLE[8])
1516 #endif
1517 #if defined(TARGET_IS_MSP432P4XX)
1518 #define ROM_ResetCtl_clearPSSFlags \
1519  ((void (*)(void))ROM_RESETCTLTABLE[9])
1520 #endif
1521 #if defined(TARGET_IS_MSP432P4XX)
1522 #define ROM_ResetCtl_getPCMSource \
1523  ((uint32_t (*)(void))ROM_RESETCTLTABLE[10])
1524 #endif
1525 #if defined(TARGET_IS_MSP432P4XX)
1526 #define ROM_ResetCtl_clearPCMFlags \
1527  ((void (*)(void))ROM_RESETCTLTABLE[11])
1528 #endif
1529 
1530 //*****************************************************************************
1531 //
1532 // Macros for calling ROM functions in the RTC API.
1533 //
1534 //*****************************************************************************
1535 #if defined(TARGET_IS_MSP432P4XX)
1536 #define ROM_RTC_C_startClock \
1537  ((void (*)(void))ROM_RTCTABLE[0])
1538 #endif
1539 #if defined(TARGET_IS_MSP432P4XX)
1540 #define ROM_RTC_C_holdClock \
1541  ((void (*)(void))ROM_RTCTABLE[1])
1542 #endif
1543 #if defined(TARGET_IS_MSP432P4XX)
1544 #define ROM_RTC_C_setCalibrationFrequency \
1545  ((void (*)(uint_fast16_t frequencySelect))ROM_RTCTABLE[2])
1546 #endif
1547 #if defined(TARGET_IS_MSP432P4XX)
1548 #define ROM_RTC_C_setCalibrationData \
1549  ((void (*)(uint_fast8_t offsetDirection, \
1550  uint_fast8_t offsetValue))ROM_RTCTABLE[3])
1551 #endif
1552 #if defined(TARGET_IS_MSP432P4XX)
1553 #define ROM_RTC_C_setTemperatureCompensation \
1554  ((bool (*)(uint_fast16_t offsetDirection, \
1555  uint_fast8_t offsetValue))ROM_RTCTABLE[4])
1556 #endif
1557 #if defined(TARGET_IS_MSP432P4XX)
1558 #define ROM_RTC_C_initCalendar \
1559  ((void (*)(const RTC_C_Calendar *calendarTime, \
1560  uint_fast16_t formatSelect))ROM_RTCTABLE[5])
1561 #endif
1562 #if defined(TARGET_IS_MSP432P4XX)
1563 #define ROM_RTC_C_getCalendarTime \
1564  ((RTC_C_Calendar (*)(void))ROM_RTCTABLE[6])
1565 #endif
1566 #if defined(TARGET_IS_MSP432P4XX)
1567 #define ROM_RTC_C_setCalendarAlarm \
1568  ((void (*)(uint_fast8_t minutesAlarm, \
1569  uint_fast8_t hoursAlarm, \
1570  uint_fast8_t dayOfWeekAlarm, \
1571  uint_fast8_t dayOfmonthAlarm))ROM_RTCTABLE[7])
1572 #endif
1573 #if defined(TARGET_IS_MSP432P4XX)
1574 #define ROM_RTC_C_setCalendarEvent \
1575  ((void (*)(uint_fast16_t eventSelect))ROM_RTCTABLE[8])
1576 #endif
1577 #if defined(TARGET_IS_MSP432P4XX)
1578 #define ROM_RTC_C_definePrescaleEvent \
1579  ((void (*)(uint_fast8_t prescaleSelect, \
1580  uint_fast8_t prescaleEventDivider))ROM_RTCTABLE[9])
1581 #endif
1582 #if defined(TARGET_IS_MSP432P4XX)
1583 #define ROM_RTC_C_getPrescaleValue \
1584  ((uint_fast8_t (*)(uint_fast8_t prescaleSelect))ROM_RTCTABLE[10])
1585 #endif
1586 #if defined(TARGET_IS_MSP432P4XX)
1587 #define ROM_RTC_C_setPrescaleValue \
1588  ((void (*)(uint_fast8_t prescaleSelect, \
1589  uint_fast8_t prescaleCounterValue))ROM_RTCTABLE[11])
1590 #endif
1591 #if defined(TARGET_IS_MSP432P4XX)
1592 #define ROM_RTC_C_convertBCDToBinary \
1593  ((uint16_t (*)(uint16_t valueToConvert))ROM_RTCTABLE[12])
1594 #endif
1595 #if defined(TARGET_IS_MSP432P4XX)
1596 #define ROM_RTC_C_convertBinaryToBCD \
1597  ((uint16_t (*)(uint16_t valueToConvert))ROM_RTCTABLE[13])
1598 #endif
1599 #if defined(TARGET_IS_MSP432P4XX)
1600 #define ROM_RTC_C_enableInterrupt \
1601  ((void (*)(uint8_t interruptMask))ROM_RTCTABLE[14])
1602 #endif
1603 #if defined(TARGET_IS_MSP432P4XX)
1604 #define ROM_RTC_C_disableInterrupt \
1605  ((void (*)(uint8_t interruptMask))ROM_RTCTABLE[15])
1606 #endif
1607 #if defined(TARGET_IS_MSP432P4XX)
1608 #define ROM_RTC_C_getInterruptStatus \
1609  ((uint_fast8_t (*)(void))ROM_RTCTABLE[16])
1610 #endif
1611 #if defined(TARGET_IS_MSP432P4XX)
1612 #define ROM_RTC_C_getEnabledInterruptStatus \
1613  ((uint_fast8_t (*)(void))ROM_RTCTABLE[17])
1614 #endif
1615 #if defined(TARGET_IS_MSP432P4XX)
1616 #define ROM_RTC_C_clearInterruptFlag \
1617  ((void (*)(uint_fast8_t interruptFlagMask))ROM_RTCTABLE[18])
1618 #endif
1619 
1620 //*****************************************************************************
1621 //
1622 // Macros for calling ROM functions in the SPI API.
1623 //
1624 //*****************************************************************************
1625 #if defined(TARGET_IS_MSP432P4XX)
1626 #define ROM_SPI_initMaster \
1627  ((bool (*)(uint32_t moduleInstance, \
1628  const eUSCI_SPI_MasterConfig *config))ROM_SPITABLE[0])
1629 #endif
1630 #if defined(TARGET_IS_MSP432P4XX)
1631 #define ROM_SPI_selectFourPinFunctionality \
1632  ((void (*)(uint32_t moduleInstance, \
1633  uint_fast8_t select4PinFunctionality))ROM_SPITABLE[1])
1634 #endif
1635 #if defined(TARGET_IS_MSP432P4XX)
1636 #define ROM_SPI_changeMasterClock \
1637  ((void (*)(uint32_t moduleInstance, \
1638  uint32_t clockSourceFrequency, \
1639  uint32_t desiredSpiClock))ROM_SPITABLE[2])
1640 #endif
1641 #if defined(TARGET_IS_MSP432P4XX)
1642 #define ROM_SPI_initSlave \
1643  ((bool (*)(uint32_t moduleInstance, \
1644  const eUSCI_SPI_SlaveConfig *config))ROM_SPITABLE[3])
1645 #endif
1646 #if defined(TARGET_IS_MSP432P4XX)
1647 #define ROM_SPI_changeClockPhasePolarity \
1648  ((void (*)(uint32_t moduleInstance, \
1649  uint_fast16_t clockPhase, \
1650  uint_fast16_t clockPolarity))ROM_SPITABLE[4])
1651 #endif
1652 #if defined(TARGET_IS_MSP432P4XX)
1653 #define ROM_SPI_transmitData \
1654  ((void (*)(uint32_t moduleInstance, \
1655  uint_fast8_t transmitData))ROM_SPITABLE[5])
1656 #endif
1657 #if defined(TARGET_IS_MSP432P4XX)
1658 #define ROM_SPI_receiveData \
1659  ((uint8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[6])
1660 #endif
1661 #if defined(TARGET_IS_MSP432P4XX)
1662 #define ROM_SPI_enableModule \
1663  ((void (*)(uint32_t moduleInstance))ROM_SPITABLE[7])
1664 #endif
1665 #if defined(TARGET_IS_MSP432P4XX)
1666 #define ROM_SPI_disableModule \
1667  ((void (*)(uint32_t moduleInstance))ROM_SPITABLE[8])
1668 #endif
1669 #if defined(TARGET_IS_MSP432P4XX)
1670 #define ROM_SPI_getReceiveBufferAddressForDMA \
1671  ((uint32_t (*)(uint32_t moduleInstance))ROM_SPITABLE[9])
1672 #endif
1673 #if defined(TARGET_IS_MSP432P4XX)
1674 #define ROM_SPI_getTransmitBufferAddressForDMA \
1675  ((uint32_t (*)(uint32_t moduleInstance))ROM_SPITABLE[10])
1676 #endif
1677 #if defined(TARGET_IS_MSP432P4XX)
1678 #define ROM_SPI_isBusy \
1679  ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[11])
1680 #endif
1681 #if defined(TARGET_IS_MSP432P4XX)
1682 #define ROM_SPI_enableInterrupt \
1683  ((void (*)(uint32_t moduleInstance, \
1684  uint_fast8_t mask))ROM_SPITABLE[12])
1685 #endif
1686 #if defined(TARGET_IS_MSP432P4XX)
1687 #define ROM_SPI_disableInterrupt \
1688  ((void (*)(uint32_t moduleInstance, \
1689  uint_fast8_t mask))ROM_SPITABLE[13])
1690 #endif
1691 #if defined(TARGET_IS_MSP432P4XX)
1692 #define ROM_SPI_getInterruptStatus \
1693  ((uint_fast8_t (*)(uint32_t moduleInstance, \
1694  uint16_t mask))ROM_SPITABLE[14])
1695 #endif
1696 #if defined(TARGET_IS_MSP432P4XX)
1697 #define ROM_SPI_getEnabledInterruptStatus \
1698  ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[15])
1699 #endif
1700 #if defined(TARGET_IS_MSP432P4XX)
1701 #define ROM_SPI_clearInterruptFlag \
1702  ((void (*)(uint32_t moduleInstance, \
1703  uint_fast8_t mask))ROM_SPITABLE[16])
1704 #endif
1705 
1706 //*****************************************************************************
1707 //
1708 // Macros for calling ROM functions in the SysCtl API.
1709 //
1710 //*****************************************************************************
1711 #if defined(TARGET_IS_MSP432P4XX)
1712 #define ROM_SysCtl_getSRAMSize \
1713  ((uint_least32_t (*)(void))ROM_SYSCTLTABLE[0])
1714 #endif
1715 #if defined(TARGET_IS_MSP432P4XX)
1716 #define ROM_SysCtl_getFlashSize \
1717  ((uint_least32_t (*)(void))ROM_SYSCTLTABLE[1])
1718 #endif
1719 #if defined(TARGET_IS_MSP432P4XX)
1720 #define ROM_SysCtl_rebootDevice \
1721  ((void (*)(void))ROM_SYSCTLTABLE[2])
1722 #endif
1723 #if defined(TARGET_IS_MSP432P4XX)
1724 #define ROM_SysCtl_enableSRAMBank \
1725  ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[3])
1726 #endif
1727 #if defined(TARGET_IS_MSP432P4XX)
1728 #define ROM_SysCtl_disableSRAMBank \
1729  ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[4])
1730 #endif
1731 #if defined(TARGET_IS_MSP432P4XX)
1732 #define ROM_SysCtl_enableSRAMBankRetention \
1733  ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[5])
1734 #endif
1735 #if defined(TARGET_IS_MSP432P4XX)
1736 #define ROM_SysCtl_disableSRAMBankRetention \
1737  ((void (*)(uint_fast8_t sramBank))ROM_SYSCTLTABLE[6])
1738 #endif
1739 #if defined(TARGET_IS_MSP432P4XX)
1740 #define ROM_SysCtl_enablePeripheralAtCPUHalt \
1741  ((void (*)(uint_fast16_t devices))ROM_SYSCTLTABLE[7])
1742 #endif
1743 #if defined(TARGET_IS_MSP432P4XX)
1744 #define ROM_SysCtl_disablePeripheralAtCPUHalt \
1745  ((void (*)(uint_fast16_t devices))ROM_SYSCTLTABLE[8])
1746 #endif
1747 #if defined(TARGET_IS_MSP432P4XX)
1748 #define ROM_SysCtl_setWDTTimeoutResetType \
1749  ((void (*)(uint_fast8_t resetType))ROM_SYSCTLTABLE[9])
1750 #endif
1751 #if defined(TARGET_IS_MSP432P4XX)
1752 #define ROM_SysCtl_setWDTPasswordViolationResetType \
1753  ((void (*)(uint_fast8_t resetType))ROM_SYSCTLTABLE[10])
1754 #endif
1755 #if defined(TARGET_IS_MSP432P4XX)
1756 #define ROM_SysCtl_disableNMISource \
1757  ((void (*)(uint_fast8_t flags))ROM_SYSCTLTABLE[11])
1758 #endif
1759 #if defined(TARGET_IS_MSP432P4XX)
1760 #define ROM_SysCtl_enableNMISource \
1761  ((void (*)(uint_fast8_t flags))ROM_SYSCTLTABLE[12])
1762 #endif
1763 #if defined(TARGET_IS_MSP432P4XX)
1764 #define ROM_SysCtl_getNMISourceStatus \
1765  ((uint_fast8_t (*)(void))ROM_SYSCTLTABLE[13])
1766 #endif
1767 #if defined(TARGET_IS_MSP432P4XX)
1768 #define ROM_SysCtl_getTempCalibrationConstant \
1769  ((uint_fast16_t (*)(uint32_t refVoltage, \
1770  uint32_t temperature))ROM_SYSCTLTABLE[14])
1771 #endif
1772 #if defined(TARGET_IS_MSP432P4XX)
1773 #define ROM_SysCtl_enableGlitchFilter \
1774  ((void (*)(void))ROM_SYSCTLTABLE[15])
1775 #endif
1776 #if defined(TARGET_IS_MSP432P4XX)
1777 #define ROM_SysCtl_disableGlitchFilter \
1778  ((void (*)(void))ROM_SYSCTLTABLE[16])
1779 #endif
1780 #if defined(TARGET_IS_MSP432P4XX)
1781 #define ROM_SysCtl_getTLVInfo \
1782  ((void (*)(uint_fast8_t tag, \
1783  uint_fast8_t instance, \
1784  uint_fast8_t *length, \
1785  uint32_t **data_address))ROM_SYSCTLTABLE[17])
1786 #endif
1787 
1788 //*****************************************************************************
1789 //
1790 // Macros for calling ROM functions in the SysTick API.
1791 //
1792 //*****************************************************************************
1793 #if defined(TARGET_IS_MSP432P4XX)
1794 #define ROM_SysTick_enableModule \
1795  ((void (*)(void))ROM_SYSTICKTABLE[0])
1796 #endif
1797 #if defined(TARGET_IS_MSP432P4XX)
1798 #define ROM_SysTick_disableModule \
1799  ((void (*)(void))ROM_SYSTICKTABLE[1])
1800 #endif
1801 #if defined(TARGET_IS_MSP432P4XX)
1802 #define ROM_SysTick_enableInterrupt \
1803  ((void (*)(void))ROM_SYSTICKTABLE[2])
1804 #endif
1805 #if defined(TARGET_IS_MSP432P4XX)
1806 #define ROM_SysTick_disableInterrupt \
1807  ((void (*)(void))ROM_SYSTICKTABLE[3])
1808 #endif
1809 #if defined(TARGET_IS_MSP432P4XX)
1810 #define ROM_SysTick_setPeriod \
1811  ((void (*)(uint32_t period))ROM_SYSTICKTABLE[4])
1812 #endif
1813 #if defined(TARGET_IS_MSP432P4XX)
1814 #define ROM_SysTick_getPeriod \
1815  ((uint32_t (*)(void))ROM_SYSTICKTABLE[5])
1816 #endif
1817 #if defined(TARGET_IS_MSP432P4XX)
1818 #define ROM_SysTick_getValue \
1819  ((uint32_t (*)(void))ROM_SYSTICKTABLE[6])
1820 #endif
1821 
1822 //*****************************************************************************
1823 //
1824 // Macros for calling ROM functions in the Timer_A API.
1825 //
1826 //*****************************************************************************
1827 #if defined(TARGET_IS_MSP432P4XX)
1828 #define ROM_Timer_A_startCounter \
1829  ((void (*)(uint32_t timer, \
1830  uint_fast16_t timerMode))ROM_TIMER_ATABLE[0])
1831 #endif
1832 #if defined(TARGET_IS_MSP432P4XX)
1833 #define ROM_Timer_A_configureContinuousMode \
1834  ((void (*)(uint32_t timer, \
1835  const Timer_A_ContinuousModeConfig *config))ROM_TIMER_ATABLE[1])
1836 #endif
1837 #if defined(TARGET_IS_MSP432P4XX)
1838 #define ROM_Timer_A_configureUpMode \
1839  ((void (*)(uint32_t timer, \
1840  const Timer_A_UpModeConfig *config))ROM_TIMER_ATABLE[2])
1841 #endif
1842 #if defined(TARGET_IS_MSP432P4XX)
1843 #define ROM_Timer_A_configureUpDownMode \
1844  ((void (*)(uint32_t timer, \
1845  const Timer_A_UpDownModeConfig *config))ROM_TIMER_ATABLE[3])
1846 #endif
1847 #if defined(TARGET_IS_MSP432P4XX)
1848 #define ROM_Timer_A_initCapture \
1849  ((void (*)(uint32_t timer, \
1850  const Timer_A_CaptureModeConfig *config))ROM_TIMER_ATABLE[4])
1851 #endif
1852 #if defined(TARGET_IS_MSP432P4XX)
1853 #define ROM_Timer_A_initCompare \
1854  ((void (*)(uint32_t timer, \
1855  const Timer_A_CompareModeConfig *config))ROM_TIMER_ATABLE[5])
1856 #endif
1857 #if defined(TARGET_IS_MSP432P4XX)
1858 #define ROM_Timer_A_clearTimer \
1859  ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[6])
1860 #endif
1861 #if defined(TARGET_IS_MSP432P4XX)
1862 #define ROM_Timer_A_getSynchronizedCaptureCompareInput \
1863  ((uint_fast8_t (*)(uint32_t timer, \
1864  uint_fast16_t captureCompareRegister, \
1865  uint_fast16_t synchronizedSetting))ROM_TIMER_ATABLE[7])
1866 #endif
1867 #if defined(TARGET_IS_MSP432P4XX)
1868 #define ROM_Timer_A_getOutputForOutputModeOutBitValue \
1869  ((uint_fast8_t (*)(uint32_t timer, \
1870  uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[8])
1871 #endif
1872 #if defined(TARGET_IS_MSP432P4XX)
1873 #define ROM_Timer_A_getCaptureCompareCount \
1874  ((uint_fast16_t (*)(uint32_t timer, \
1875  uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[9])
1876 #endif
1877 #if defined(TARGET_IS_MSP432P4XX)
1878 #define ROM_Timer_A_generatePWM \
1879  ((void (*)(uint32_t timer, \
1880  const Timer_A_PWMConfig *config))ROM_TIMER_ATABLE[11])
1881 #endif
1882 #if defined(TARGET_IS_MSP432P4XX)
1883 #define ROM_Timer_A_stopTimer \
1884  ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[12])
1885 #endif
1886 #if defined(TARGET_IS_MSP432P4XX)
1887 #define ROM_Timer_A_setCompareValue \
1888  ((void (*)(uint32_t timer, \
1889  uint_fast16_t compareRegister, \
1890  uint_fast16_t compareValue))ROM_TIMER_ATABLE[13])
1891 #endif
1892 #if defined(TARGET_IS_MSP432P4XX)
1893 #define ROM_Timer_A_clearInterruptFlag \
1894  ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[14])
1895 #endif
1896 #if defined(TARGET_IS_MSP432P4XX)
1897 #define ROM_Timer_A_clearCaptureCompareInterrupt \
1898  ((void (*)(uint32_t timer, \
1899  uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[15])
1900 #endif
1901 #if defined(TARGET_IS_MSP432P4XX)
1902 #define ROM_Timer_A_enableInterrupt \
1903  ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[16])
1904 #endif
1905 #if defined(TARGET_IS_MSP432P4XX)
1906 #define ROM_Timer_A_disableInterrupt \
1907  ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[17])
1908 #endif
1909 #if defined(TARGET_IS_MSP432P4XX)
1910 #define ROM_Timer_A_getInterruptStatus \
1911  ((uint32_t (*)(uint32_t timer))ROM_TIMER_ATABLE[18])
1912 #endif
1913 #if defined(TARGET_IS_MSP432P4XX)
1914 #define ROM_Timer_A_getEnabledInterruptStatus \
1915  ((uint32_t (*)(uint32_t timer))ROM_TIMER_ATABLE[19])
1916 #endif
1917 #if defined(TARGET_IS_MSP432P4XX)
1918 #define ROM_Timer_A_enableCaptureCompareInterrupt \
1919  ((void (*)(uint32_t timer, \
1920  uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[20])
1921 #endif
1922 #if defined(TARGET_IS_MSP432P4XX)
1923 #define ROM_Timer_A_disableCaptureCompareInterrupt \
1924  ((void (*)(uint32_t timer, \
1925  uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[21])
1926 #endif
1927 #if defined(TARGET_IS_MSP432P4XX)
1928 #define ROM_Timer_A_getCaptureCompareInterruptStatus \
1929  ((uint32_t (*)(uint32_t timer, \
1930  uint_fast16_t captureCompareRegister, \
1931  uint_fast16_t mask))ROM_TIMER_ATABLE[22])
1932 #endif
1933 #if defined(TARGET_IS_MSP432P4XX)
1934 #define ROM_Timer_A_getCaptureCompareEnabledInterruptStatus \
1935  ((uint32_t (*)(uint32_t timer, \
1936  uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[23])
1937 #endif
1938 #if defined(TARGET_IS_MSP432P4XX)
1939 #define ROM_Timer_A_getCounterValue \
1940  ((uint16_t (*)(uint32_t timer))ROM_TIMER_ATABLE[26])
1941 #endif
1942 
1943 //*****************************************************************************
1944 //
1945 // Macros for calling ROM functions in the Timer32 API.
1946 //
1947 //*****************************************************************************
1948 #if defined(TARGET_IS_MSP432P4XX)
1949 #define ROM_Timer32_initModule \
1950  ((void (*)(uint32_t timer, \
1951  uint32_t preScaler, \
1952  uint32_t resolution, \
1953  uint32_t mode))ROM_TIMER32TABLE[0])
1954 #endif
1955 #if defined(TARGET_IS_MSP432P4XX)
1956 #define ROM_Timer32_setCount \
1957  ((void (*)(uint32_t timer, \
1958  uint32_t count))ROM_TIMER32TABLE[1])
1959 #endif
1960 #if defined(TARGET_IS_MSP432P4XX)
1961 #define ROM_Timer32_setCountInBackground \
1962  ((void (*)(uint32_t timer, \
1963  uint32_t count))ROM_TIMER32TABLE[2])
1964 #endif
1965 #if defined(TARGET_IS_MSP432P4XX)
1966 #define ROM_Timer32_getValue \
1967  ((uint32_t (*)(uint32_t timer))ROM_TIMER32TABLE[3])
1968 #endif
1969 #if defined(TARGET_IS_MSP432P4XX)
1970 #define ROM_Timer32_startTimer \
1971  ((void (*)(uint32_t timer, \
1972  bool oneShot))ROM_TIMER32TABLE[4])
1973 #endif
1974 #if defined(TARGET_IS_MSP432P4XX)
1975 #define ROM_Timer32_haltTimer \
1976  ((void (*)(uint32_t timer))ROM_TIMER32TABLE[5])
1977 #endif
1978 #if defined(TARGET_IS_MSP432P4XX)
1979 #define ROM_Timer32_enableInterrupt \
1980  ((void (*)(uint32_t timer))ROM_TIMER32TABLE[6])
1981 #endif
1982 #if defined(TARGET_IS_MSP432P4XX)
1983 #define ROM_Timer32_disableInterrupt \
1984  ((void (*)(uint32_t timer))ROM_TIMER32TABLE[7])
1985 #endif
1986 #if defined(TARGET_IS_MSP432P4XX)
1987 #define ROM_Timer32_clearInterruptFlag \
1988  ((void (*)(uint32_t timer))ROM_TIMER32TABLE[8])
1989 #endif
1990 #if defined(TARGET_IS_MSP432P4XX)
1991 #define ROM_Timer32_getInterruptStatus \
1992  ((uint32_t (*)(uint32_t timer))ROM_TIMER32TABLE[9])
1993 #endif
1994 
1995 //*****************************************************************************
1996 //
1997 // Macros for calling ROM functions in the UART API.
1998 //
1999 //*****************************************************************************
2000 #if defined(TARGET_IS_MSP432P4XX)
2001 #define ROM_UART_initModule \
2002  ((bool (*)(uint32_t moduleInstance, \
2003  const eUSCI_UART_Config *config))ROM_UARTTABLE[0])
2004 #endif
2005 #if defined(TARGET_IS_MSP432P4XX)
2006 #define ROM_UART_transmitData \
2007  ((void (*)(uint32_t moduleInstance, \
2008  uint_fast8_t transmitData))ROM_UARTTABLE[1])
2009 #endif
2010 #if defined(TARGET_IS_MSP432P4XX)
2011 #define ROM_UART_enableModule \
2012  ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[2])
2013 #endif
2014 #if defined(TARGET_IS_MSP432P4XX)
2015 #define ROM_UART_disableModule \
2016  ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[3])
2017 #endif
2018 #if defined(TARGET_IS_MSP432P4XX)
2019 #define ROM_UART_queryStatusFlags \
2020  ((uint_fast8_t (*)(uint32_t moduleInstance, \
2021  uint_fast8_t mask))ROM_UARTTABLE[4])
2022 #endif
2023 #if defined(TARGET_IS_MSP432P4XX)
2024 #define ROM_UART_setDormant \
2025  ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[5])
2026 #endif
2027 #if defined(TARGET_IS_MSP432P4XX)
2028 #define ROM_UART_resetDormant \
2029  ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[6])
2030 #endif
2031 #if defined(TARGET_IS_MSP432P4XX)
2032 #define ROM_UART_transmitAddress \
2033  ((void (*)(uint32_t moduleInstance, \
2034  uint_fast8_t transmitAddress))ROM_UARTTABLE[7])
2035 #endif
2036 #if defined(TARGET_IS_MSP432P4XX)
2037 #define ROM_UART_transmitBreak \
2038  ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[8])
2039 #endif
2040 #if defined(TARGET_IS_MSP432P4XX)
2041 #define ROM_UART_getReceiveBufferAddressForDMA \
2042  ((uint32_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[9])
2043 #endif
2044 #if defined(TARGET_IS_MSP432P4XX)
2045 #define ROM_UART_getTransmitBufferAddressForDMA \
2046  ((uint32_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[10])
2047 #endif
2048 #if defined(TARGET_IS_MSP432P4XX)
2049 #define ROM_UART_selectDeglitchTime \
2050  ((void (*)(uint32_t moduleInstance, \
2051  uint32_t deglitchTime))ROM_UARTTABLE[11])
2052 #endif
2053 #if defined(TARGET_IS_MSP432P4XX)
2054 #define ROM_UART_enableInterrupt \
2055  ((void (*)(uint32_t moduleInstance, \
2056  uint_fast8_t mask))ROM_UARTTABLE[12])
2057 #endif
2058 #if defined(TARGET_IS_MSP432P4XX)
2059 #define ROM_UART_disableInterrupt \
2060  ((void (*)(uint32_t moduleInstance, \
2061  uint_fast8_t mask))ROM_UARTTABLE[13])
2062 #endif
2063 #if defined(TARGET_IS_MSP432P4XX)
2064 #define ROM_UART_getInterruptStatus \
2065  ((uint_fast8_t (*)(uint32_t moduleInstance, \
2066  uint8_t mask))ROM_UARTTABLE[14])
2067 #endif
2068 #if defined(TARGET_IS_MSP432P4XX)
2069 #define ROM_UART_clearInterruptFlag \
2070  ((void (*)(uint32_t moduleInstance, \
2071  uint_fast8_t mask))ROM_UARTTABLE[15])
2072 #endif
2073 #if defined(TARGET_IS_MSP432P4XX)
2074 #define ROM_UART_receiveData \
2075  ((uint8_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[16])
2076 #endif
2077 #if defined(TARGET_IS_MSP432P4XX)
2078 #define ROM_UART_getEnabledInterruptStatus \
2079  ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[17])
2080 #endif
2081 
2082 //*****************************************************************************
2083 //
2084 // Macros for calling ROM functions in the WDT API.
2085 //
2086 //*****************************************************************************
2087 #if defined(TARGET_IS_MSP432P4XX)
2088 #define ROM_WDT_A_holdTimer \
2089  ((void (*)(void))ROM_WDTTABLE[0])
2090 #endif
2091 #if defined(TARGET_IS_MSP432P4XX)
2092 #define ROM_WDT_A_startTimer \
2093  ((void (*)(void))ROM_WDTTABLE[1])
2094 #endif
2095 #if defined(TARGET_IS_MSP432P4XX)
2096 #define ROM_WDT_A_clearTimer \
2097  ((void (*)(void))ROM_WDTTABLE[2])
2098 #endif
2099 #if defined(TARGET_IS_MSP432P4XX)
2100 #define ROM_WDT_A_initWatchdogTimer \
2101  ((void (*)(uint_fast8_t clockSelect, \
2102  uint_fast8_t clockDivider))ROM_WDTTABLE[3])
2103 #endif
2104 #if defined(TARGET_IS_MSP432P4XX)
2105 #define ROM_WDT_A_initIntervalTimer \
2106  ((void (*)(uint_fast8_t clockSelect, \
2107  uint_fast8_t clockDivider))ROM_WDTTABLE[4])
2108 #endif
2109 #if defined(TARGET_IS_MSP432P4XX)
2110 #define ROM_WDT_A_setPasswordViolationReset \
2111  ((void (*)(uint_fast8_t resetType))ROM_WDTTABLE[7])
2112 #endif
2113 #if defined(TARGET_IS_MSP432P4XX)
2114 #define ROM_WDT_A_setTimeoutReset \
2115  ((void (*)(uint_fast8_t resetType))ROM_WDTTABLE[8])
2116 #endif
2117 
2118 #endif // __ROM_H__

Copyright 2016, Texas Instruments Incorporated