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

Copyright 2018, Texas Instruments Incorporated