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

Copyright 2015, Texas Instruments Incorporated