2 * -------------------------------------------
3 * MSP432 DriverLib - v3_10_00_09
4 * -------------------------------------------
6 * --COPYRIGHT--,BSD,BSD
7 * Copyright (c) 2014, Texas Instruments Incorporated
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
14 * * Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
17 * * Redistributions in binary form must reproduce the above copyright
18 * notice, this list of conditions and the following disclaimer in the
19 * documentation and/or other materials provided with the distribution.
21 * * Neither the name of Texas Instruments Incorporated nor the names of
22 * its contributors may be used to endorse or promote products derived
23 * from this software without specific prior written permission.
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
27 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
29 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
32 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
33 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
34 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
35 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 //*****************************************************************************
39 // rom.h - Macros to facilitate calling functions in the ROM.
41 // Copyright (c) 2013 Texas Instruments Incorporated. All rights reserved.
42 // TI Information - Selective Disclosure
44 //*****************************************************************************
50 //*****************************************************************************
52 // Pointers to the main API tables.
54 //*****************************************************************************
55 #define ROM_APITABLE ((unsigned long *)0x02000800)
56 #define ROM_VERSION (ROM_APITABLE[0])
57 #define ROM_ADC14TABLE ((unsigned long *)(ROM_APITABLE[1]))
58 #define ROM_AES256TABLE ((unsigned long *)(ROM_APITABLE[2]))
59 #define ROM_COMPTABLE ((unsigned long *)(ROM_APITABLE[3]))
60 #define ROM_CRC32TABLE ((unsigned long *)(ROM_APITABLE[4]))
61 #define ROM_CSTABLE ((unsigned long *)(ROM_APITABLE[5]))
62 #define ROM_DMATABLE ((unsigned long *)(ROM_APITABLE[6]))
63 #define ROM_FLASHCTLTABLE ((unsigned long *)(ROM_APITABLE[7]))
64 #define ROM_FPUTABLE ((unsigned long *)(ROM_APITABLE[8]))
65 #define ROM_GPIOTABLE ((unsigned long *)(ROM_APITABLE[9]))
66 #define ROM_I2CTABLE ((unsigned long *)(ROM_APITABLE[10]))
67 #define ROM_INTTABLE ((unsigned long *)(ROM_APITABLE[11]))
68 #define ROM_MPUTABLE ((unsigned long *)(ROM_APITABLE[12]))
69 #define ROM_PCMTABLE ((unsigned long *)(ROM_APITABLE[13]))
70 #define ROM_PMAPTABLE ((unsigned long *)(ROM_APITABLE[14]))
71 #define ROM_PSSTABLE ((unsigned long *)(ROM_APITABLE[15]))
72 #define ROM_REFTABLE ((unsigned long *)(ROM_APITABLE[16]))
73 #define ROM_RESETCTLTABLE ((unsigned long *)(ROM_APITABLE[17]))
74 #define ROM_RTCTABLE ((unsigned long *)(ROM_APITABLE[18]))
75 #define ROM_SPITABLE ((unsigned long *)(ROM_APITABLE[19]))
76 #define ROM_SYSCTLTABLE ((unsigned long *)(ROM_APITABLE[20]))
77 #define ROM_SYSTICKTABLE ((unsigned long *)(ROM_APITABLE[21]))
78 #define ROM_TIMER_ATABLE ((unsigned long *)(ROM_APITABLE[22]))
79 #define ROM_TIMER32TABLE ((unsigned long *)(ROM_APITABLE[23]))
80 #define ROM_UARTTABLE ((unsigned long *)(ROM_APITABLE[24]))
81 #define ROM_WDTTABLE ((unsigned long *)(ROM_APITABLE[25]))
83 //*****************************************************************************
85 // Macros for calling ROM functions in the ADC14 API.
87 //*****************************************************************************
88 #if defined(TARGET_IS_MSP432P4XX)
89 #define ROM_ADC14_enableModule \
90 ((void (*)(void))ROM_ADC14TABLE[0])
92 #if defined(TARGET_IS_MSP432P4XX)
93 #define ROM_ADC14_disableModule \
94 ((bool (*)(void))ROM_ADC14TABLE[1])
96 #if defined(TARGET_IS_MSP432P4XX)
97 #define ROM_ADC14_initModule \
98 ((bool (*)(uint32_t clockSource, \
99 uint32_t clockPredivider, \
100 uint32_t clockDivider, \
101 uint32_t internalChannelMask))ROM_ADC14TABLE[2])
103 #if defined(TARGET_IS_MSP432P4XX)
104 #define ROM_ADC14_setResolution \
105 ((void (*)(uint32_t resolution))ROM_ADC14TABLE[3])
107 #if defined(TARGET_IS_MSP432P4XX)
108 #define ROM_ADC14_getResolution \
109 ((uint_fast32_t (*)(void))ROM_ADC14TABLE[4])
111 #if defined(TARGET_IS_MSP432P4XX)
112 #define ROM_ADC14_setSampleHoldTrigger \
113 ((bool (*)(uint32_t source, \
114 bool invertSignal))ROM_ADC14TABLE[5])
116 #if defined(TARGET_IS_MSP432P4XX)
117 #define ROM_ADC14_setSampleHoldTime \
118 ((bool (*)(uint32_t firstPulseWidth, \
119 uint32_t secondPulseWidth))ROM_ADC14TABLE[6])
121 #if defined(TARGET_IS_MSP432P4XX)
122 #define ROM_ADC14_configureMultiSequenceMode \
123 ((bool (*)(uint32_t memoryStart, \
124 uint32_t memoryEnd, \
125 bool repeatMode))ROM_ADC14TABLE[7])
127 #if defined(TARGET_IS_MSP432P4XX)
128 #define ROM_ADC14_configureSingleSampleMode \
129 ((bool (*)(uint32_t memoryDestination, \
130 bool repeatMode))ROM_ADC14TABLE[8])
132 #if defined(TARGET_IS_MSP432P4XX)
133 #define ROM_ADC14_enableConversion \
134 ((bool (*)(void))ROM_ADC14TABLE[9])
136 #if defined(TARGET_IS_MSP432P4XX)
137 #define ROM_ADC14_disableConversion \
138 ((void (*)(void))ROM_ADC14TABLE[10])
140 #if defined(TARGET_IS_MSP432P4XX)
141 #define ROM_ADC14_isBusy \
142 ((bool (*)(void))ROM_ADC14TABLE[11])
144 #if defined(TARGET_IS_MSP432P4XX)
145 #define ROM_ADC14_configureConversionMemory \
146 ((bool (*)(uint32_t memorySelect, \
147 uint32_t refSelect, \
148 uint32_t channelSelect, \
149 bool differntialMode))ROM_ADC14TABLE[12])
151 #if defined(TARGET_IS_MSP432P4XX)
152 #define ROM_ADC14_enableComparatorWindow \
153 ((bool (*)(uint32_t memorySelect, \
154 uint32_t windowSelect))ROM_ADC14TABLE[13])
156 #if defined(TARGET_IS_MSP432P4XX)
157 #define ROM_ADC14_disableComparatorWindow \
158 ((bool (*)(uint32_t memorySelect))ROM_ADC14TABLE[14])
160 #if defined(TARGET_IS_MSP432P4XX)
161 #define ROM_ADC14_setComparatorWindowValue \
162 ((bool (*)(uint32_t window, \
164 int16_t high))ROM_ADC14TABLE[15])
166 #if defined(TARGET_IS_MSP432P4XX)
167 #define ROM_ADC14_setResultFormat \
168 ((bool (*)(uint32_t resultFormat))ROM_ADC14TABLE[16])
170 #if defined(TARGET_IS_MSP432P4XX)
171 #define ROM_ADC14_getResult \
172 ((uint_fast16_t (*)(uint32_t memorySelect))ROM_ADC14TABLE[17])
174 #if defined(TARGET_IS_MSP432P4XX)
175 #define ROM_ADC14_getMultiSequenceResult \
176 ((void (*)(uint16_t* res))ROM_ADC14TABLE[18])
178 #if defined(TARGET_IS_MSP432P4XX)
179 #define ROM_ADC14_getResultArray \
180 ((void (*)(uint32_t memoryStart, \
181 uint32_t memoryEnd, \
182 uint16_t* res))ROM_ADC14TABLE[19])
184 #if defined(TARGET_IS_MSP432P4XX)
185 #define ROM_ADC14_enableReferenceBurst \
186 ((bool (*)(void))ROM_ADC14TABLE[20])
188 #if defined(TARGET_IS_MSP432P4XX)
189 #define ROM_ADC14_disableReferenceBurst \
190 ((bool (*)(void))ROM_ADC14TABLE[21])
192 #if defined(TARGET_IS_MSP432P4XX)
193 #define ROM_ADC14_setPowerMode \
194 ((bool (*)(uint32_t powerMode))ROM_ADC14TABLE[22])
196 #if defined(TARGET_IS_MSP432P4XX)
197 #define ROM_ADC14_enableInterrupt \
198 ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[23])
200 #if defined(TARGET_IS_MSP432P4XX)
201 #define ROM_ADC14_disableInterrupt \
202 ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[24])
204 #if defined(TARGET_IS_MSP432P4XX)
205 #define ROM_ADC14_getInterruptStatus \
206 ((uint_fast64_t (*)(void))ROM_ADC14TABLE[25])
208 #if defined(TARGET_IS_MSP432P4XX)
209 #define ROM_ADC14_getEnabledInterruptStatus \
210 ((uint_fast64_t (*)(void))ROM_ADC14TABLE[26])
212 #if defined(TARGET_IS_MSP432P4XX)
213 #define ROM_ADC14_clearInterruptFlag \
214 ((void (*)(uint_fast64_t mask))ROM_ADC14TABLE[27])
216 #if defined(TARGET_IS_MSP432P4XX)
217 #define ROM_ADC14_toggleConversionTrigger \
218 ((bool (*)(void))ROM_ADC14TABLE[28])
220 #if defined(TARGET_IS_MSP432P4XX)
221 #define ROM_ADC14_enableSampleTimer \
222 ((bool (*)(uint32_t multiSampleConvert))ROM_ADC14TABLE[29])
224 #if defined(TARGET_IS_MSP432P4XX)
225 #define ROM_ADC14_disableSampleTimer \
226 ((bool (*)(void))ROM_ADC14TABLE[30])
229 //*****************************************************************************
231 // Macros for calling ROM functions in the AES256 API.
233 //*****************************************************************************
234 #if defined(TARGET_IS_MSP432P4XX)
235 #define ROM_AES256_setCipherKey \
236 ((bool (*)(uint32_t moduleInstance, \
237 const uint8_t *cipherKey, \
238 uint_fast16_t keyLength))ROM_AES256TABLE[0])
240 #if defined(TARGET_IS_MSP432P4XX)
241 #define ROM_AES256_encryptData \
242 ((void (*)(uint32_t moduleInstance, \
243 const uint8_t *data, \
244 uint8_t *encryptedData))ROM_AES256TABLE[1])
246 #if defined(TARGET_IS_MSP432P4XX)
247 #define ROM_AES256_decryptData \
248 ((void (*)(uint32_t moduleInstance, \
249 const uint8_t *data, \
250 uint8_t *decryptedData))ROM_AES256TABLE[2])
252 #if defined(TARGET_IS_MSP432P4XX)
253 #define ROM_AES256_setDecipherKey \
254 ((bool (*)(uint32_t moduleInstance, \
255 const uint8_t *cipherKey, \
256 uint_fast16_t keyLength))ROM_AES256TABLE[3])
258 #if defined(TARGET_IS_MSP432P4XX)
259 #define ROM_AES256_reset \
260 ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[4])
262 #if defined(TARGET_IS_MSP432P4XX)
263 #define ROM_AES256_startEncryptData \
264 ((void (*)(uint32_t moduleInstance, \
265 const uint8_t *data))ROM_AES256TABLE[5])
267 #if defined(TARGET_IS_MSP432P4XX)
268 #define ROM_AES256_startDecryptData \
269 ((void (*)(uint32_t moduleInstance, \
270 const uint8_t *data))ROM_AES256TABLE[6])
272 #if defined(TARGET_IS_MSP432P4XX)
273 #define ROM_AES256_startSetDecipherKey \
274 ((bool (*)(uint32_t moduleInstance, \
275 const uint8_t *cipherKey, \
276 uint_fast16_t keyLength))ROM_AES256TABLE[7])
278 #if defined(TARGET_IS_MSP432P4XX)
279 #define ROM_AES256_getDataOut \
280 ((bool (*)(uint32_t moduleInstance, \
281 uint8_t *outputData))ROM_AES256TABLE[8])
283 #if defined(TARGET_IS_MSP432P4XX)
284 #define ROM_AES256_isBusy \
285 ((bool (*)(uint32_t moduleInstance))ROM_AES256TABLE[9])
287 #if defined(TARGET_IS_MSP432P4XX)
288 #define ROM_AES256_clearErrorFlag \
289 ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[10])
291 #if defined(TARGET_IS_MSP432P4XX)
292 #define ROM_AES256_getErrorFlagStatus \
293 ((uint32_t (*)(uint32_t moduleInstance))ROM_AES256TABLE[11])
295 #if defined(TARGET_IS_MSP432P4XX)
296 #define ROM_AES256_clearInterruptFlag \
297 ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[12])
299 #if defined(TARGET_IS_MSP432P4XX)
300 #define ROM_AES256_enableInterrupt \
301 ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[14])
303 #if defined(TARGET_IS_MSP432P4XX)
304 #define ROM_AES256_disableInterrupt \
305 ((void (*)(uint32_t moduleInstance))ROM_AES256TABLE[15])
308 //*****************************************************************************
310 // Macros for calling ROM functions in the Comp API.
312 //*****************************************************************************
313 #if defined(TARGET_IS_MSP432P4XX)
314 #define ROM_COMP_E_initModule \
315 ((bool (*)(uint32_t comparator, \
316 const COMP_E_Config *config))ROM_COMPTABLE[0])
318 #if defined(TARGET_IS_MSP432P4XX)
319 #define ROM_COMP_E_setReferenceVoltage \
320 ((void (*)(uint32_t comparator, \
321 uint_fast16_t supplyVoltageReferenceBase, \
322 uint_fast16_t lowerLimitSupplyVoltageFractionOf32, \
323 uint_fast16_t upperLimitSupplyVoltageFractionOf32))ROM_COMPTABLE[1])
325 #if defined(TARGET_IS_MSP432P4XX)
326 #define ROM_COMP_E_setReferenceAccuracy \
327 ((void (*)(uint32_t comparator, \
328 uint_fast16_t referenceAccuracy))ROM_COMPTABLE[2])
330 #if defined(TARGET_IS_MSP432P4XX)
331 #define ROM_COMP_E_setPowerMode \
332 ((void (*)(uint32_t comparator, \
333 uint_fast16_t powerMode))ROM_COMPTABLE[3])
335 #if defined(TARGET_IS_MSP432P4XX)
336 #define ROM_COMP_E_enableModule \
337 ((void (*)(uint32_t comparator))ROM_COMPTABLE[4])
339 #if defined(TARGET_IS_MSP432P4XX)
340 #define ROM_COMP_E_disableModule \
341 ((void (*)(uint32_t comparator))ROM_COMPTABLE[5])
343 #if defined(TARGET_IS_MSP432P4XX)
344 #define ROM_COMP_E_shortInputs \
345 ((void (*)(uint32_t comparator))ROM_COMPTABLE[6])
347 #if defined(TARGET_IS_MSP432P4XX)
348 #define ROM_COMP_E_unshortInputs \
349 ((void (*)(uint32_t comparator))ROM_COMPTABLE[7])
351 #if defined(TARGET_IS_MSP432P4XX)
352 #define ROM_COMP_E_disableInputBuffer \
353 ((void (*)(uint32_t comparator, \
354 uint_fast16_t inputPort))ROM_COMPTABLE[8])
356 #if defined(TARGET_IS_MSP432P4XX)
357 #define ROM_COMP_E_enableInputBuffer \
358 ((void (*)(uint32_t comparator, \
359 uint_fast16_t inputPort))ROM_COMPTABLE[9])
361 #if defined(TARGET_IS_MSP432P4XX)
362 #define ROM_COMP_E_swapIO \
363 ((void (*)(uint32_t comparator))ROM_COMPTABLE[10])
365 #if defined(TARGET_IS_MSP432P4XX)
366 #define ROM_COMP_E_outputValue \
367 ((uint8_t (*)(uint32_t comparator))ROM_COMPTABLE[11])
369 #if defined(TARGET_IS_MSP432P4XX)
370 #define ROM_COMP_E_enableInterrupt \
371 ((void (*)(uint32_t comparator, \
372 uint_fast16_t mask))ROM_COMPTABLE[12])
374 #if defined(TARGET_IS_MSP432P4XX)
375 #define ROM_COMP_E_disableInterrupt \
376 ((void (*)(uint32_t comparator, \
377 uint_fast16_t mask))ROM_COMPTABLE[13])
379 #if defined(TARGET_IS_MSP432P4XX)
380 #define ROM_COMP_E_clearInterruptFlag \
381 ((void (*)(uint32_t comparator, \
382 uint_fast16_t mask))ROM_COMPTABLE[14])
384 #if defined(TARGET_IS_MSP432P4XX)
385 #define ROM_COMP_E_getInterruptStatus \
386 ((uint_fast16_t (*)(uint32_t comparator))ROM_COMPTABLE[15])
388 #if defined(TARGET_IS_MSP432P4XX)
389 #define ROM_COMP_E_getEnabledInterruptStatus \
390 ((uint_fast16_t (*)(uint32_t comparator))ROM_COMPTABLE[16])
392 #if defined(TARGET_IS_MSP432P4XX)
393 #define ROM_COMP_E_setInterruptEdgeDirection \
394 ((void (*)(uint32_t comparator, \
395 uint_fast8_t edgeDirection))ROM_COMPTABLE[17])
397 #if defined(TARGET_IS_MSP432P4XX)
398 #define ROM_COMP_E_toggleInterruptEdgeDirection \
399 ((void (*)(uint32_t comparator))ROM_COMPTABLE[18])
402 //*****************************************************************************
404 // Macros for calling ROM functions in the CRC32 API.
406 //*****************************************************************************
407 #if defined(TARGET_IS_MSP432P4XX)
408 #define ROM_CRC32_setSeed \
409 ((void (*)(uint32_t seed, \
410 uint_fast8_t crcType))ROM_CRC32TABLE[0])
412 #if defined(TARGET_IS_MSP432P4XX)
413 #define ROM_CRC32_set8BitData \
414 ((void (*)(uint8_t dataIn, \
415 uint_fast8_t crcType))ROM_CRC32TABLE[1])
417 #if defined(TARGET_IS_MSP432P4XX)
418 #define ROM_CRC32_set16BitData \
419 ((void (*)(uint16_t dataIn, \
420 uint_fast8_t crcType))ROM_CRC32TABLE[2])
422 #if defined(TARGET_IS_MSP432P4XX)
423 #define ROM_CRC32_set32BitData \
424 ((void (*)(uint32_t dataIn))ROM_CRC32TABLE[3])
426 #if defined(TARGET_IS_MSP432P4XX)
427 #define ROM_CRC32_set8BitDataReversed \
428 ((void (*)(uint8_t dataIn, \
429 uint_fast8_t crcType))ROM_CRC32TABLE[4])
431 #if defined(TARGET_IS_MSP432P4XX)
432 #define ROM_CRC32_set16BitDataReversed \
433 ((void (*)(uint16_t dataIn, \
434 uint_fast8_t crcType))ROM_CRC32TABLE[5])
436 #if defined(TARGET_IS_MSP432P4XX)
437 #define ROM_CRC32_set32BitDataReversed \
438 ((void (*)(uint32_t dataIn))ROM_CRC32TABLE[6])
440 #if defined(TARGET_IS_MSP432P4XX)
441 #define ROM_CRC32_getResult \
442 ((uint32_t (*)(uint_fast8_t crcType))ROM_CRC32TABLE[7])
444 #if defined(TARGET_IS_MSP432P4XX)
445 #define ROM_CRC32_getResultReversed \
446 ((uint32_t (*)(uint_fast8_t crcType))ROM_CRC32TABLE[8])
449 //*****************************************************************************
451 // Macros for calling ROM functions in the CS API.
453 //*****************************************************************************
454 #if defined(TARGET_IS_MSP432P4XX)
455 #define ROM_CS_enableClockRequest \
456 ((void (*)(uint32_t selectClock))ROM_CSTABLE[2])
458 #if defined(TARGET_IS_MSP432P4XX)
459 #define ROM_CS_disableClockRequest \
460 ((void (*)(uint32_t selectClock))ROM_CSTABLE[3])
462 #if defined(TARGET_IS_MSP432P4XX)
463 #define ROM_CS_enableDCOExternalResistor \
464 ((void (*)(void))ROM_CSTABLE[6])
466 #if defined(TARGET_IS_MSP432P4XX)
467 #define ROM_CS_disableDCOExternalResistor \
468 ((void (*)(void))ROM_CSTABLE[7])
470 #if defined(TARGET_IS_MSP432P4XX)
471 #define ROM_CS_getEnabledInterruptStatus \
472 ((uint32_t (*)(void))ROM_CSTABLE[10])
474 #if defined(TARGET_IS_MSP432P4XX)
475 #define ROM_CS_getInterruptStatus \
476 ((uint32_t (*)(void))ROM_CSTABLE[11])
479 //*****************************************************************************
481 // Macros for calling ROM functions in the DMA API.
483 //*****************************************************************************
484 #if defined(TARGET_IS_MSP432P4XX)
485 #define ROM_DMA_enableModule \
486 ((void (*)(void))ROM_DMATABLE[0])
488 #if defined(TARGET_IS_MSP432P4XX)
489 #define ROM_DMA_disableModule \
490 ((void (*)(void))ROM_DMATABLE[1])
492 #if defined(TARGET_IS_MSP432P4XX)
493 #define ROM_DMA_getErrorStatus \
494 ((uint32_t (*)(void))ROM_DMATABLE[2])
496 #if defined(TARGET_IS_MSP432P4XX)
497 #define ROM_DMA_clearErrorStatus \
498 ((void (*)(void))ROM_DMATABLE[3])
500 #if defined(TARGET_IS_MSP432P4XX)
501 #define ROM_DMA_enableChannel \
502 ((void (*)(uint32_t channelNum))ROM_DMATABLE[4])
504 #if defined(TARGET_IS_MSP432P4XX)
505 #define ROM_DMA_disableChannel \
506 ((void (*)(uint32_t channelNum))ROM_DMATABLE[5])
508 #if defined(TARGET_IS_MSP432P4XX)
509 #define ROM_DMA_isChannelEnabled \
510 ((bool (*)(uint32_t channelNum))ROM_DMATABLE[6])
512 #if defined(TARGET_IS_MSP432P4XX)
513 #define ROM_DMA_setControlBase \
514 ((void (*)(void *controlTable))ROM_DMATABLE[7])
516 #if defined(TARGET_IS_MSP432P4XX)
517 #define ROM_DMA_getControlBase \
518 ((void* (*)(void))ROM_DMATABLE[8])
520 #if defined(TARGET_IS_MSP432P4XX)
521 #define ROM_DMA_getControlAlternateBase \
522 ((void* (*)(void))ROM_DMATABLE[9])
524 #if defined(TARGET_IS_MSP432P4XX)
525 #define ROM_DMA_requestChannel \
526 ((void (*)(uint32_t channelNum))ROM_DMATABLE[10])
528 #if defined(TARGET_IS_MSP432P4XX)
529 #define ROM_DMA_enableChannelAttribute \
530 ((void (*)(uint32_t channelNum, \
531 uint32_t attr))ROM_DMATABLE[11])
533 #if defined(TARGET_IS_MSP432P4XX)
534 #define ROM_DMA_disableChannelAttribute \
535 ((void (*)(uint32_t channelNum, \
536 uint32_t attr))ROM_DMATABLE[12])
538 #if defined(TARGET_IS_MSP432P4XX)
539 #define ROM_DMA_getChannelAttribute \
540 ((uint32_t (*)(uint32_t channelNum))ROM_DMATABLE[13])
542 #if defined(TARGET_IS_MSP432P4XX)
543 #define ROM_DMA_setChannelControl \
544 ((void (*)(uint32_t channelStructIndex, \
545 uint32_t control))ROM_DMATABLE[14])
547 #if defined(TARGET_IS_MSP432P4XX)
548 #define ROM_DMA_setChannelTransfer \
549 ((void (*)(uint32_t channelStructIndex, \
553 uint32_t transferSize))ROM_DMATABLE[15])
555 #if defined(TARGET_IS_MSP432P4XX)
556 #define ROM_DMA_setChannelScatterGather \
557 ((void (*)(uint32_t channelNum, \
558 uint32_t taskCount, \
560 uint32_t isPeriphSG))ROM_DMATABLE[16])
562 #if defined(TARGET_IS_MSP432P4XX)
563 #define ROM_DMA_getChannelSize \
564 ((uint32_t (*)(uint32_t channelStructIndex))ROM_DMATABLE[17])
566 #if defined(TARGET_IS_MSP432P4XX)
567 #define ROM_DMA_getChannelMode \
568 ((uint32_t (*)(uint32_t channelStructIndex))ROM_DMATABLE[18])
570 #if defined(TARGET_IS_MSP432P4XX)
571 #define ROM_DMA_assignChannel \
572 ((void (*)(uint32_t mapping))ROM_DMATABLE[19])
574 #if defined(TARGET_IS_MSP432P4XX)
575 #define ROM_DMA_requestSoftwareTransfer \
576 ((void (*)(uint32_t channel))ROM_DMATABLE[20])
578 #if defined(TARGET_IS_MSP432P4XX)
579 #define ROM_DMA_assignInterrupt \
580 ((void (*)(uint32_t interruptNumber, \
581 uint32_t channel))ROM_DMATABLE[21])
583 #if defined(TARGET_IS_MSP432P4XX)
584 #define ROM_DMA_enableInterrupt \
585 ((void (*)(uint32_t interruptNumber))ROM_DMATABLE[22])
587 #if defined(TARGET_IS_MSP432P4XX)
588 #define ROM_DMA_disableInterrupt \
589 ((void (*)(uint32_t interruptNumber))ROM_DMATABLE[23])
591 #if defined(TARGET_IS_MSP432P4XX)
592 #define ROM_DMA_getInterruptStatus \
593 ((uint32_t (*)(void))ROM_DMATABLE[24])
595 #if defined(TARGET_IS_MSP432P4XX)
596 #define ROM_DMA_clearInterruptFlag \
597 ((void (*)(uint32_t intChannel))ROM_DMATABLE[25])
600 //*****************************************************************************
602 // Macros for calling ROM functions in the Flash API.
604 //*****************************************************************************
605 #if defined(TARGET_IS_MSP432P4XX)
606 #define ROM_FlashCtl_enableReadBuffering \
607 ((void (*)(uint_fast8_t memoryBank, \
608 uint_fast8_t accessMethod))ROM_FLASHCTLTABLE[2])
610 #if defined(TARGET_IS_MSP432P4XX)
611 #define ROM_FlashCtl_disableReadBuffering \
612 ((void (*)(uint_fast8_t memoryBank, \
613 uint_fast8_t accessMethod))ROM_FLASHCTLTABLE[3])
615 #if defined(TARGET_IS_MSP432P4XX)
616 #define ROM_FlashCtl_unprotectSector \
617 ((bool (*)(uint_fast8_t memorySpace, \
618 uint32_t sectorMask))ROM_FLASHCTLTABLE[4])
620 #if defined(TARGET_IS_MSP432P4XX)
621 #define ROM_FlashCtl_protectSector \
622 ((bool (*)(uint_fast8_t memorySpace, \
623 uint32_t sectorMask))ROM_FLASHCTLTABLE[5])
625 #if defined(TARGET_IS_MSP432P4XX)
626 #define ROM_FlashCtl_isSectorProtected \
627 ((bool (*)(uint_fast8_t memorySpace, \
628 uint32_t sector))ROM_FLASHCTLTABLE[6])
630 #if defined(TARGET_IS_MSP432P4XX)
631 #define ROM_FlashCtl_setProgramVerification \
632 ((void (*)(uint32_t verificationSetting))ROM_FLASHCTLTABLE[11])
634 #if defined(TARGET_IS_MSP432P4XX)
635 #define ROM_FlashCtl_clearProgramVerification \
636 ((void (*)(uint32_t verificationSetting))ROM_FLASHCTLTABLE[12])
638 #if defined(TARGET_IS_MSP432P4XX)
639 #define ROM_FlashCtl_enableWordProgramming \
640 ((void (*)(uint32_t mode))ROM_FLASHCTLTABLE[13])
642 #if defined(TARGET_IS_MSP432P4XX)
643 #define ROM_FlashCtl_disableWordProgramming \
644 ((void (*)(void))ROM_FLASHCTLTABLE[14])
646 #if defined(TARGET_IS_MSP432P4XX)
647 #define ROM_FlashCtl_isWordProgrammingEnabled \
648 ((uint32_t (*)(void))ROM_FLASHCTLTABLE[15])
650 #if defined(TARGET_IS_MSP432P4XX)
651 #define ROM_FlashCtl_enableInterrupt \
652 ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[16])
654 #if defined(TARGET_IS_MSP432P4XX)
655 #define ROM_FlashCtl_disableInterrupt \
656 ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[17])
658 #if defined(TARGET_IS_MSP432P4XX)
659 #define ROM_FlashCtl_getEnabledInterruptStatus \
660 ((uint32_t (*)(void))ROM_FLASHCTLTABLE[18])
662 #if defined(TARGET_IS_MSP432P4XX)
663 #define ROM_FlashCtl_getInterruptStatus \
664 ((uint32_t (*)(void))ROM_FLASHCTLTABLE[19])
666 #if defined(TARGET_IS_MSP432P4XX)
667 #define ROM_FlashCtl_clearInterruptFlag \
668 ((void (*)(uint32_t flags))ROM_FLASHCTLTABLE[20])
670 #if defined(TARGET_IS_MSP432P4XX)
671 #define ROM_FlashCtl_setWaitState \
672 ((void (*)(uint32_t bank, \
673 uint32_t waitState))ROM_FLASHCTLTABLE[21])
675 #if defined(TARGET_IS_MSP432P4XX)
676 #define ROM_FlashCtl_getWaitState \
677 ((uint32_t (*)(uint32_t bank))ROM_FLASHCTLTABLE[22])
679 #if defined(TARGET_IS_MSP432P4XX)
680 #define ROM_FlashCtl_setReadMode \
681 ((bool (*)(uint32_t flashBank, \
682 uint32_t readMode))ROM_FLASHCTLTABLE[23])
684 #if defined(TARGET_IS_MSP432P4XX)
685 #define ROM_FlashCtl_getReadMode \
686 ((uint32_t (*)(uint32_t flashBank))ROM_FLASHCTLTABLE[24])
689 //*****************************************************************************
691 // Macros for calling ROM functions in the FPU API.
693 //*****************************************************************************
694 #if defined(TARGET_IS_MSP432P4XX)
695 #define ROM_FPU_enableModule \
696 ((void (*)(void))ROM_FPUTABLE[0])
698 #if defined(TARGET_IS_MSP432P4XX)
699 #define ROM_FPU_disableModule \
700 ((void (*)(void))ROM_FPUTABLE[1])
702 #if defined(TARGET_IS_MSP432P4XX)
703 #define ROM_FPU_enableStacking \
704 ((void (*)(void))ROM_FPUTABLE[2])
706 #if defined(TARGET_IS_MSP432P4XX)
707 #define ROM_FPU_enableLazyStacking \
708 ((void (*)(void))ROM_FPUTABLE[3])
710 #if defined(TARGET_IS_MSP432P4XX)
711 #define ROM_FPU_disableStacking \
712 ((void (*)(void))ROM_FPUTABLE[4])
714 #if defined(TARGET_IS_MSP432P4XX)
715 #define ROM_FPU_setHalfPrecisionMode \
716 ((void (*)(uint32_t mode))ROM_FPUTABLE[5])
718 #if defined(TARGET_IS_MSP432P4XX)
719 #define ROM_FPU_setNaNMode \
720 ((void (*)(uint32_t mode))ROM_FPUTABLE[6])
722 #if defined(TARGET_IS_MSP432P4XX)
723 #define ROM_FPU_setFlushToZeroMode \
724 ((void (*)(uint32_t mode))ROM_FPUTABLE[7])
726 #if defined(TARGET_IS_MSP432P4XX)
727 #define ROM_FPU_setRoundingMode \
728 ((void (*)(uint32_t mode))ROM_FPUTABLE[8])
731 //*****************************************************************************
733 // Macros for calling ROM functions in the GPIO API.
735 //*****************************************************************************
738 //*****************************************************************************
740 // Macros for calling ROM functions in the I2C API.
742 //*****************************************************************************
743 #if defined(TARGET_IS_MSP432P4XX)
744 #define ROM_I2C_initMaster \
745 ((void (*)(uint32_t moduleInstance, \
746 const eUSCI_I2C_MasterConfig *config))ROM_I2CTABLE[0])
748 #if defined(TARGET_IS_MSP432P4XX)
749 #define ROM_I2C_enableModule \
750 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[2])
752 #if defined(TARGET_IS_MSP432P4XX)
753 #define ROM_I2C_disableModule \
754 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[3])
756 #if defined(TARGET_IS_MSP432P4XX)
757 #define ROM_I2C_setMode \
758 ((void (*)(uint32_t moduleInstance, \
759 uint_fast8_t mode))ROM_I2CTABLE[5])
761 #if defined(TARGET_IS_MSP432P4XX)
762 #define ROM_I2C_slavePutData \
763 ((void (*)(uint32_t moduleInstance, \
764 uint8_t transmitData))ROM_I2CTABLE[6])
766 #if defined(TARGET_IS_MSP432P4XX)
767 #define ROM_I2C_slaveGetData \
768 ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[7])
770 #if defined(TARGET_IS_MSP432P4XX)
771 #define ROM_I2C_isBusBusy \
772 ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[8])
774 #if defined(TARGET_IS_MSP432P4XX)
775 #define ROM_I2C_masterSendSingleByte \
776 ((void (*)(uint32_t moduleInstance, \
777 uint8_t txData))ROM_I2CTABLE[9])
779 #if defined(TARGET_IS_MSP432P4XX)
780 #define ROM_I2C_masterSendSingleByteWithTimeout \
781 ((bool (*)(uint32_t moduleInstance, \
783 uint32_t timeout))ROM_I2CTABLE[10])
785 #if defined(TARGET_IS_MSP432P4XX)
786 #define ROM_I2C_masterSendMultiByteStart \
787 ((void (*)(uint32_t moduleInstance, \
788 uint8_t txData))ROM_I2CTABLE[11])
790 #if defined(TARGET_IS_MSP432P4XX)
791 #define ROM_I2C_masterSendMultiByteStartWithTimeout \
792 ((bool (*)(uint32_t moduleInstance, \
794 uint32_t timeout))ROM_I2CTABLE[12])
796 #if defined(TARGET_IS_MSP432P4XX)
797 #define ROM_I2C_masterSendMultiByteNext \
798 ((void (*)(uint32_t moduleInstance, \
799 uint8_t txData))ROM_I2CTABLE[13])
801 #if defined(TARGET_IS_MSP432P4XX)
802 #define ROM_I2C_masterSendMultiByteNextWithTimeout \
803 ((bool (*)(uint32_t moduleInstance, \
805 uint32_t timeout))ROM_I2CTABLE[14])
807 #if defined(TARGET_IS_MSP432P4XX)
808 #define ROM_I2C_masterSendMultiByteFinish \
809 ((void (*)(uint32_t moduleInstance, \
810 uint8_t txData))ROM_I2CTABLE[15])
812 #if defined(TARGET_IS_MSP432P4XX)
813 #define ROM_I2C_masterSendMultiByteFinishWithTimeout \
814 ((bool (*)(uint32_t moduleInstance, \
816 uint32_t timeout))ROM_I2CTABLE[16])
818 #if defined(TARGET_IS_MSP432P4XX)
819 #define ROM_I2C_masterSendMultiByteStop \
820 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[17])
822 #if defined(TARGET_IS_MSP432P4XX)
823 #define ROM_I2C_masterSendMultiByteStopWithTimeout \
824 ((bool (*)(uint32_t moduleInstance, \
825 uint32_t timeout))ROM_I2CTABLE[18])
827 #if defined(TARGET_IS_MSP432P4XX)
828 #define ROM_I2C_masterReceiveStart \
829 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[19])
831 #if defined(TARGET_IS_MSP432P4XX)
832 #define ROM_I2C_masterReceiveMultiByteNext \
833 ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[20])
835 #if defined(TARGET_IS_MSP432P4XX)
836 #define ROM_I2C_masterReceiveMultiByteFinish \
837 ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[21])
839 #if defined(TARGET_IS_MSP432P4XX)
840 #define ROM_I2C_masterReceiveMultiByteFinishWithTimeout \
841 ((bool (*)(uint32_t moduleInstance, \
843 uint32_t timeout))ROM_I2CTABLE[22])
845 #if defined(TARGET_IS_MSP432P4XX)
846 #define ROM_I2C_masterReceiveMultiByteStop \
847 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[23])
849 #if defined(TARGET_IS_MSP432P4XX)
850 #define ROM_I2C_masterReceiveSingleByte \
851 ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[24])
853 #if defined(TARGET_IS_MSP432P4XX)
854 #define ROM_I2C_masterReceiveSingle \
855 ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[25])
857 #if defined(TARGET_IS_MSP432P4XX)
858 #define ROM_I2C_getReceiveBufferAddressForDMA \
859 ((uint32_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[26])
861 #if defined(TARGET_IS_MSP432P4XX)
862 #define ROM_I2C_getTransmitBufferAddressForDMA \
863 ((uint32_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[27])
865 #if defined(TARGET_IS_MSP432P4XX)
866 #define ROM_I2C_masterIsStopSent \
867 ((uint8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[28])
869 #if defined(TARGET_IS_MSP432P4XX)
870 #define ROM_I2C_masterIsStartSent \
871 ((bool (*)(uint32_t moduleInstance))ROM_I2CTABLE[29])
873 #if defined(TARGET_IS_MSP432P4XX)
874 #define ROM_I2C_masterSendStart \
875 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[30])
877 #if defined(TARGET_IS_MSP432P4XX)
878 #define ROM_I2C_enableMultiMasterMode \
879 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[31])
881 #if defined(TARGET_IS_MSP432P4XX)
882 #define ROM_I2C_disableMultiMasterMode \
883 ((void (*)(uint32_t moduleInstance))ROM_I2CTABLE[32])
885 #if defined(TARGET_IS_MSP432P4XX)
886 #define ROM_I2C_enableInterrupt \
887 ((void (*)(uint32_t moduleInstance, \
888 uint_fast16_t mask))ROM_I2CTABLE[33])
890 #if defined(TARGET_IS_MSP432P4XX)
891 #define ROM_I2C_disableInterrupt \
892 ((void (*)(uint32_t moduleInstance, \
893 uint_fast16_t mask))ROM_I2CTABLE[34])
895 #if defined(TARGET_IS_MSP432P4XX)
896 #define ROM_I2C_clearInterruptFlag \
897 ((void (*)(uint32_t moduleInstance, \
898 uint_fast16_t mask))ROM_I2CTABLE[35])
900 #if defined(TARGET_IS_MSP432P4XX)
901 #define ROM_I2C_getEnabledInterruptStatus \
902 ((uint_fast16_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[37])
904 #if defined(TARGET_IS_MSP432P4XX)
905 #define ROM_I2C_getMode \
906 ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_I2CTABLE[38])
909 //*****************************************************************************
911 // Macros for calling ROM functions in the Interrupt API.
913 //*****************************************************************************
914 #if defined(TARGET_IS_MSP432P4XX)
915 #define ROM_Interrupt_enableMaster \
916 ((bool (*)(void))ROM_INTTABLE[0])
918 #if defined(TARGET_IS_MSP432P4XX)
919 #define ROM_Interrupt_disableMaster \
920 ((bool (*)(void))ROM_INTTABLE[1])
922 #if defined(TARGET_IS_MSP432P4XX)
923 #define ROM_Interrupt_setPriorityGrouping \
924 ((void (*)(uint32_t bits))ROM_INTTABLE[2])
926 #if defined(TARGET_IS_MSP432P4XX)
927 #define ROM_Interrupt_getPriorityGrouping \
928 ((uint32_t (*)(void))ROM_INTTABLE[3])
930 #if defined(TARGET_IS_MSP432P4XX)
931 #define ROM_Interrupt_setPriority \
932 ((void (*)(uint32_t interruptNumber, \
933 uint8_t priority))ROM_INTTABLE[4])
935 #if defined(TARGET_IS_MSP432P4XX)
936 #define ROM_Interrupt_getPriority \
937 ((uint8_t (*)(uint32_t interruptNumber))ROM_INTTABLE[5])
939 #if defined(TARGET_IS_MSP432P4XX)
940 #define ROM_Interrupt_enableInterrupt \
941 ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[6])
943 #if defined(TARGET_IS_MSP432P4XX)
944 #define ROM_Interrupt_disableInterrupt \
945 ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[7])
947 #if defined(TARGET_IS_MSP432P4XX)
948 #define ROM_Interrupt_isEnabled \
949 ((bool (*)(uint32_t interruptNumber))ROM_INTTABLE[8])
951 #if defined(TARGET_IS_MSP432P4XX)
952 #define ROM_Interrupt_pendInterrupt \
953 ((void (*)(uint32_t interruptNumber))ROM_INTTABLE[9])
955 #if defined(TARGET_IS_MSP432P4XX)
956 #define ROM_Interrupt_setPriorityMask \
957 ((void (*)(uint8_t priorityMask))ROM_INTTABLE[10])
959 #if defined(TARGET_IS_MSP432P4XX)
960 #define ROM_Interrupt_getPriorityMask \
961 ((uint8_t (*)(void))ROM_INTTABLE[11])
963 #if defined(TARGET_IS_MSP432P4XX)
964 #define ROM_Interrupt_setVectorTableAddress \
965 ((void (*)(uint32_t addr))ROM_INTTABLE[12])
967 #if defined(TARGET_IS_MSP432P4XX)
968 #define ROM_Interrupt_getVectorTableAddress \
969 ((uint32_t (*)(void))ROM_INTTABLE[13])
971 #if defined(TARGET_IS_MSP432P4XX)
972 #define ROM_Interrupt_enableSleepOnIsrExit \
973 ((void (*)(void))ROM_INTTABLE[14])
975 #if defined(TARGET_IS_MSP432P4XX)
976 #define ROM_Interrupt_disableSleepOnIsrExit \
977 ((void (*)(void))ROM_INTTABLE[15])
980 //*****************************************************************************
982 // Macros for calling ROM functions in the MPU API.
984 //*****************************************************************************
985 #if defined(TARGET_IS_MSP432P4XX)
986 #define ROM_MPU_enableModule \
987 ((void (*)(uint32_t mpuConfig))ROM_MPUTABLE[0])
989 #if defined(TARGET_IS_MSP432P4XX)
990 #define ROM_MPU_disableModule \
991 ((void (*)(void))ROM_MPUTABLE[1])
993 #if defined(TARGET_IS_MSP432P4XX)
994 #define ROM_MPU_getRegionCount \
995 ((uint32_t (*)(void))ROM_MPUTABLE[2])
997 #if defined(TARGET_IS_MSP432P4XX)
998 #define ROM_MPU_enableRegion \
999 ((void (*)(uint32_t region))ROM_MPUTABLE[3])
1001 #if defined(TARGET_IS_MSP432P4XX)
1002 #define ROM_MPU_disableRegion \
1003 ((void (*)(uint32_t region))ROM_MPUTABLE[4])
1005 #if defined(TARGET_IS_MSP432P4XX)
1006 #define ROM_MPU_setRegion \
1007 ((void (*)(uint32_t region, \
1009 uint32_t flags))ROM_MPUTABLE[5])
1011 #if defined(TARGET_IS_MSP432P4XX)
1012 #define ROM_MPU_getRegion \
1013 ((void (*)(uint32_t region, \
1015 uint32_t *pflags))ROM_MPUTABLE[6])
1017 #if defined(TARGET_IS_MSP432P4XX)
1018 #define ROM_MPU_enableInterrupt \
1019 ((void (*)(void))ROM_MPUTABLE[7])
1021 #if defined(TARGET_IS_MSP432P4XX)
1022 #define ROM_MPU_disableInterrupt \
1023 ((void (*)(void))ROM_MPUTABLE[8])
1026 //*****************************************************************************
1028 // Macros for calling ROM functions in the PCM API.
1030 //*****************************************************************************
1031 #if defined(TARGET_IS_MSP432P4XX)
1032 #define ROM_PCM_setCoreVoltageLevel \
1033 ((bool (*)(uint_fast8_t voltageLevel))ROM_PCMTABLE[0])
1035 #if defined(TARGET_IS_MSP432P4XX)
1036 #define ROM_PCM_getCoreVoltageLevel \
1037 ((uint8_t (*)(void))ROM_PCMTABLE[1])
1039 #if defined(TARGET_IS_MSP432P4XX)
1040 #define ROM_PCM_setCoreVoltageLevelWithTimeout \
1041 ((bool (*)(uint_fast8_t voltageLevel, \
1042 uint32_t timeOut))ROM_PCMTABLE[2])
1044 #if defined(TARGET_IS_MSP432P4XX)
1045 #define ROM_PCM_setPowerMode \
1046 ((bool (*)(uint_fast8_t powerMode))ROM_PCMTABLE[3])
1048 #if defined(TARGET_IS_MSP432P4XX)
1049 #define ROM_PCM_setPowerModeWithTimeout \
1050 ((bool (*)(uint_fast8_t powerMode, \
1051 uint32_t timeOut))ROM_PCMTABLE[4])
1053 #if defined(TARGET_IS_MSP432P4XX)
1054 #define ROM_PCM_getPowerMode \
1055 ((uint8_t (*)(void))ROM_PCMTABLE[5])
1057 #if defined(TARGET_IS_MSP432P4XX)
1058 #define ROM_PCM_setPowerState \
1059 ((bool (*)(uint_fast8_t powerState))ROM_PCMTABLE[6])
1061 #if defined(TARGET_IS_MSP432P4XX)
1062 #define ROM_PCM_getPowerState \
1063 ((uint8_t (*)(void))ROM_PCMTABLE[8])
1065 #if defined(TARGET_IS_MSP432P4XX)
1066 #define ROM_PCM_gotoLPM0 \
1067 ((bool (*)(void))ROM_PCMTABLE[10])
1069 #if defined(TARGET_IS_MSP432P4XX)
1070 #define ROM_PCM_gotoLPM3 \
1071 ((bool (*)(void))ROM_PCMTABLE[11])
1073 #if defined(TARGET_IS_MSP432P4XX)
1074 #define ROM_PCM_enableInterrupt \
1075 ((void (*)(uint32_t flags))ROM_PCMTABLE[12])
1077 #if defined(TARGET_IS_MSP432P4XX)
1078 #define ROM_PCM_disableInterrupt \
1079 ((void (*)(uint32_t flags))ROM_PCMTABLE[13])
1081 #if defined(TARGET_IS_MSP432P4XX)
1082 #define ROM_PCM_getInterruptStatus \
1083 ((uint32_t (*)(void))ROM_PCMTABLE[14])
1085 #if defined(TARGET_IS_MSP432P4XX)
1086 #define ROM_PCM_getEnabledInterruptStatus \
1087 ((uint32_t (*)(void))ROM_PCMTABLE[15])
1089 #if defined(TARGET_IS_MSP432P4XX)
1090 #define ROM_PCM_clearInterruptFlag \
1091 ((void (*)(uint32_t flags))ROM_PCMTABLE[16])
1094 //*****************************************************************************
1096 // Macros for calling ROM functions in the PMAP API.
1098 //*****************************************************************************
1099 #if defined(TARGET_IS_MSP432P4XX)
1100 #define ROM_PMAP_configurePorts \
1101 ((void (*)(const uint8_t *portMapping, \
1103 uint8_t numberOfPorts, \
1104 uint8_t portMapReconfigure))ROM_PMAPTABLE[0])
1107 //*****************************************************************************
1109 // Macros for calling ROM functions in the PSS API.
1111 //*****************************************************************************
1112 #if defined(TARGET_IS_MSP432P4XX)
1113 #define ROM_PSS_enableHighSidePinToggle \
1114 ((void (*)(bool activeLow))ROM_PSSTABLE[0])
1116 #if defined(TARGET_IS_MSP432P4XX)
1117 #define ROM_PSS_disableHighSidePinToggle \
1118 ((void (*)(void))ROM_PSSTABLE[1])
1120 #if defined(TARGET_IS_MSP432P4XX)
1121 #define ROM_PSS_enableHighSide \
1122 ((void (*)(void))ROM_PSSTABLE[2])
1124 #if defined(TARGET_IS_MSP432P4XX)
1125 #define ROM_PSS_disableHighSide \
1126 ((void (*)(void))ROM_PSSTABLE[3])
1128 #if defined(TARGET_IS_MSP432P4XX)
1129 #define ROM_PSS_setHighSidePerformanceMode \
1130 ((void (*)(uint_fast8_t powerMode))ROM_PSSTABLE[6])
1132 #if defined(TARGET_IS_MSP432P4XX)
1133 #define ROM_PSS_getHighSidePerformanceMode \
1134 ((uint_fast8_t (*)(void))ROM_PSSTABLE[7])
1136 #if defined(TARGET_IS_MSP432P4XX)
1137 #define ROM_PSS_enableHighSideMonitor \
1138 ((void (*)(void))ROM_PSSTABLE[10])
1140 #if defined(TARGET_IS_MSP432P4XX)
1141 #define ROM_PSS_disableHighSideMonitor \
1142 ((void (*)(void))ROM_PSSTABLE[11])
1144 #if defined(TARGET_IS_MSP432P4XX)
1145 #define ROM_PSS_setHighSideVoltageTrigger \
1146 ((void (*)(uint_fast8_t triggerVoltage))ROM_PSSTABLE[12])
1148 #if defined(TARGET_IS_MSP432P4XX)
1149 #define ROM_PSS_getHighSideVoltageTrigger \
1150 ((uint_fast8_t (*)(void))ROM_PSSTABLE[13])
1152 #if defined(TARGET_IS_MSP432P4XX)
1153 #define ROM_PSS_enableInterrupt \
1154 ((void (*)(void))ROM_PSSTABLE[14])
1156 #if defined(TARGET_IS_MSP432P4XX)
1157 #define ROM_PSS_disableInterrupt \
1158 ((void (*)(void))ROM_PSSTABLE[15])
1160 #if defined(TARGET_IS_MSP432P4XX)
1161 #define ROM_PSS_getInterruptStatus \
1162 ((uint32_t (*)(void))ROM_PSSTABLE[16])
1164 #if defined(TARGET_IS_MSP432P4XX)
1165 #define ROM_PSS_clearInterruptFlag \
1166 ((void (*)(void))ROM_PSSTABLE[17])
1169 //*****************************************************************************
1171 // Macros for calling ROM functions in the Ref API.
1173 //*****************************************************************************
1174 #if defined(TARGET_IS_MSP432P4XX)
1175 #define ROM_REF_A_setReferenceVoltage \
1176 ((void (*)(uint_fast8_t referenceVoltageSelect))ROM_REFTABLE[0])
1178 #if defined(TARGET_IS_MSP432P4XX)
1179 #define ROM_REF_A_disableTempSensor \
1180 ((void (*)(void))ROM_REFTABLE[1])
1182 #if defined(TARGET_IS_MSP432P4XX)
1183 #define ROM_REF_A_enableTempSensor \
1184 ((void (*)(void))ROM_REFTABLE[2])
1186 #if defined(TARGET_IS_MSP432P4XX)
1187 #define ROM_REF_A_enableReferenceVoltageOutput \
1188 ((void (*)(void))ROM_REFTABLE[3])
1190 #if defined(TARGET_IS_MSP432P4XX)
1191 #define ROM_REF_A_disableReferenceVoltageOutput \
1192 ((void (*)(void))ROM_REFTABLE[4])
1194 #if defined(TARGET_IS_MSP432P4XX)
1195 #define ROM_REF_A_enableReferenceVoltage \
1196 ((void (*)(void))ROM_REFTABLE[5])
1198 #if defined(TARGET_IS_MSP432P4XX)
1199 #define ROM_REF_A_disableReferenceVoltage \
1200 ((void (*)(void))ROM_REFTABLE[6])
1202 #if defined(TARGET_IS_MSP432P4XX)
1203 #define ROM_REF_A_getBandgapMode \
1204 ((uint_fast8_t (*)(void))ROM_REFTABLE[7])
1206 #if defined(TARGET_IS_MSP432P4XX)
1207 #define ROM_REF_A_isBandgapActive \
1208 ((bool (*)(void))ROM_REFTABLE[8])
1210 #if defined(TARGET_IS_MSP432P4XX)
1211 #define ROM_REF_A_isRefGenBusy \
1212 ((bool (*)(void))ROM_REFTABLE[9])
1214 #if defined(TARGET_IS_MSP432P4XX)
1215 #define ROM_REF_A_isRefGenActive \
1216 ((bool (*)(void))ROM_REFTABLE[10])
1218 #if defined(TARGET_IS_MSP432P4XX)
1219 #define ROM_REF_A_getBufferedBandgapVoltageStatus \
1220 ((bool (*)(void))ROM_REFTABLE[11])
1222 #if defined(TARGET_IS_MSP432P4XX)
1223 #define ROM_REF_A_getVariableReferenceVoltageStatus \
1224 ((bool (*)(void))ROM_REFTABLE[12])
1226 #if defined(TARGET_IS_MSP432P4XX)
1227 #define ROM_REF_A_setReferenceVoltageOneTimeTrigger \
1228 ((void (*)(void))ROM_REFTABLE[13])
1230 #if defined(TARGET_IS_MSP432P4XX)
1231 #define ROM_REF_A_setBufferedBandgapVoltageOneTimeTrigger \
1232 ((void (*)(void))ROM_REFTABLE[14])
1235 //*****************************************************************************
1237 // Macros for calling ROM functions in the ResetCtl API.
1239 //*****************************************************************************
1240 #if defined(TARGET_IS_MSP432P4XX)
1241 #define ROM_ResetCtl_initiateSoftReset \
1242 ((void (*)(void))ROM_RESETCTLTABLE[0])
1244 #if defined(TARGET_IS_MSP432P4XX)
1245 #define ROM_ResetCtl_initiateSoftResetWithSource \
1246 ((void (*)(uint32_t source))ROM_RESETCTLTABLE[1])
1248 #if defined(TARGET_IS_MSP432P4XX)
1249 #define ROM_ResetCtl_getSoftResetSource \
1250 ((uint32_t (*)(void))ROM_RESETCTLTABLE[2])
1252 #if defined(TARGET_IS_MSP432P4XX)
1253 #define ROM_ResetCtl_clearSoftResetSource \
1254 ((void (*)(uint32_t mask))ROM_RESETCTLTABLE[3])
1256 #if defined(TARGET_IS_MSP432P4XX)
1257 #define ROM_ResetCtl_initiateHardReset \
1258 ((void (*)(void))ROM_RESETCTLTABLE[4])
1260 #if defined(TARGET_IS_MSP432P4XX)
1261 #define ROM_ResetCtl_initiateHardResetWithSource \
1262 ((void (*)(uint32_t source))ROM_RESETCTLTABLE[5])
1264 #if defined(TARGET_IS_MSP432P4XX)
1265 #define ROM_ResetCtl_getHardResetSource \
1266 ((uint32_t (*)(void))ROM_RESETCTLTABLE[6])
1268 #if defined(TARGET_IS_MSP432P4XX)
1269 #define ROM_ResetCtl_clearHardResetSource \
1270 ((void (*)(uint32_t mask))ROM_RESETCTLTABLE[7])
1272 #if defined(TARGET_IS_MSP432P4XX)
1273 #define ROM_ResetCtl_getPSSSource \
1274 ((uint32_t (*)(void))ROM_RESETCTLTABLE[8])
1276 #if defined(TARGET_IS_MSP432P4XX)
1277 #define ROM_ResetCtl_clearPSSFlags \
1278 ((void (*)(void))ROM_RESETCTLTABLE[9])
1280 #if defined(TARGET_IS_MSP432P4XX)
1281 #define ROM_ResetCtl_getPCMSource \
1282 ((uint32_t (*)(void))ROM_RESETCTLTABLE[10])
1284 #if defined(TARGET_IS_MSP432P4XX)
1285 #define ROM_ResetCtl_clearPCMFlags \
1286 ((void (*)(void))ROM_RESETCTLTABLE[11])
1289 //*****************************************************************************
1291 // Macros for calling ROM functions in the RTC API.
1293 //*****************************************************************************
1294 #if defined(TARGET_IS_MSP432P4XX)
1295 #define ROM_RTC_C_startClock \
1296 ((void (*)(void))ROM_RTCTABLE[0])
1298 #if defined(TARGET_IS_MSP432P4XX)
1299 #define ROM_RTC_C_holdClock \
1300 ((void (*)(void))ROM_RTCTABLE[1])
1302 #if defined(TARGET_IS_MSP432P4XX)
1303 #define ROM_RTC_C_setCalibrationFrequency \
1304 ((void (*)(uint_fast16_t frequencySelect))ROM_RTCTABLE[2])
1306 #if defined(TARGET_IS_MSP432P4XX)
1307 #define ROM_RTC_C_setCalibrationData \
1308 ((void (*)(uint_fast8_t offsetDirection, \
1309 uint_fast8_t offsetValue))ROM_RTCTABLE[3])
1311 #if defined(TARGET_IS_MSP432P4XX)
1312 #define ROM_RTC_C_setTemperatureCompensation \
1313 ((bool (*)(uint_fast16_t offsetDirection, \
1314 uint_fast8_t offsetValue))ROM_RTCTABLE[4])
1316 #if defined(TARGET_IS_MSP432P4XX)
1317 #define ROM_RTC_C_initCalendar \
1318 ((void (*)(const RTC_C_Calendar *calendarTime, \
1319 uint_fast16_t formatSelect))ROM_RTCTABLE[5])
1321 #if defined(TARGET_IS_MSP432P4XX)
1322 #define ROM_RTC_C_getCalendarTime \
1323 ((RTC_C_Calendar (*)(void))ROM_RTCTABLE[6])
1325 #if defined(TARGET_IS_MSP432P4XX)
1326 #define ROM_RTC_C_setCalendarAlarm \
1327 ((void (*)(uint_fast8_t minutesAlarm, \
1328 uint_fast8_t hoursAlarm, \
1329 uint_fast8_t dayOfWeekAlarm, \
1330 uint_fast8_t dayOfmonthAlarm))ROM_RTCTABLE[7])
1332 #if defined(TARGET_IS_MSP432P4XX)
1333 #define ROM_RTC_C_setCalendarEvent \
1334 ((void (*)(uint_fast16_t eventSelect))ROM_RTCTABLE[8])
1336 #if defined(TARGET_IS_MSP432P4XX)
1337 #define ROM_RTC_C_definePrescaleEvent \
1338 ((void (*)(uint_fast8_t prescaleSelect, \
1339 uint_fast8_t prescaleEventDivider))ROM_RTCTABLE[9])
1341 #if defined(TARGET_IS_MSP432P4XX)
1342 #define ROM_RTC_C_convertBCDToBinary \
1343 ((uint16_t (*)(uint16_t valueToConvert))ROM_RTCTABLE[12])
1345 #if defined(TARGET_IS_MSP432P4XX)
1346 #define ROM_RTC_C_convertBinaryToBCD \
1347 ((uint16_t (*)(uint16_t valueToConvert))ROM_RTCTABLE[13])
1349 #if defined(TARGET_IS_MSP432P4XX)
1350 #define ROM_RTC_C_enableInterrupt \
1351 ((void (*)(uint8_t interruptMask))ROM_RTCTABLE[14])
1353 #if defined(TARGET_IS_MSP432P4XX)
1354 #define ROM_RTC_C_disableInterrupt \
1355 ((void (*)(uint8_t interruptMask))ROM_RTCTABLE[15])
1357 #if defined(TARGET_IS_MSP432P4XX)
1358 #define ROM_RTC_C_getInterruptStatus \
1359 ((uint_fast8_t (*)(void))ROM_RTCTABLE[16])
1361 #if defined(TARGET_IS_MSP432P4XX)
1362 #define ROM_RTC_C_getEnabledInterruptStatus \
1363 ((uint_fast8_t (*)(void))ROM_RTCTABLE[17])
1365 #if defined(TARGET_IS_MSP432P4XX)
1366 #define ROM_RTC_C_clearInterruptFlag \
1367 ((void (*)(uint_fast8_t interruptFlagMask))ROM_RTCTABLE[18])
1370 //*****************************************************************************
1372 // Macros for calling ROM functions in the SPI API.
1374 //*****************************************************************************
1375 #if defined(TARGET_IS_MSP432P4XX)
1376 #define ROM_SPI_initMaster \
1377 ((bool (*)(uint32_t moduleInstance, \
1378 const eUSCI_SPI_MasterConfig *config))ROM_SPITABLE[0])
1380 #if defined(TARGET_IS_MSP432P4XX)
1381 #define ROM_SPI_selectFourPinFunctionality \
1382 ((void (*)(uint32_t moduleInstance, \
1383 uint_fast8_t select4PinFunctionality))ROM_SPITABLE[1])
1385 #if defined(TARGET_IS_MSP432P4XX)
1386 #define ROM_SPI_changeMasterClock \
1387 ((void (*)(uint32_t moduleInstance, \
1388 uint32_t clockSourceFrequency, \
1389 uint32_t desiredSpiClock))ROM_SPITABLE[2])
1391 #if defined(TARGET_IS_MSP432P4XX)
1392 #define ROM_SPI_initSlave \
1393 ((bool (*)(uint32_t moduleInstance, \
1394 const eUSCI_SPI_SlaveConfig *config))ROM_SPITABLE[3])
1396 #if defined(TARGET_IS_MSP432P4XX)
1397 #define ROM_SPI_changeClockPhasePolarity \
1398 ((void (*)(uint32_t moduleInstance, \
1399 uint_fast16_t clockPhase, \
1400 uint_fast16_t clockPolarity))ROM_SPITABLE[4])
1402 #if defined(TARGET_IS_MSP432P4XX)
1403 #define ROM_SPI_transmitData \
1404 ((void (*)(uint32_t moduleInstance, \
1405 uint_fast8_t transmitData))ROM_SPITABLE[5])
1407 #if defined(TARGET_IS_MSP432P4XX)
1408 #define ROM_SPI_receiveData \
1409 ((uint8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[6])
1411 #if defined(TARGET_IS_MSP432P4XX)
1412 #define ROM_SPI_enableModule \
1413 ((void (*)(uint32_t moduleInstance))ROM_SPITABLE[7])
1415 #if defined(TARGET_IS_MSP432P4XX)
1416 #define ROM_SPI_disableModule \
1417 ((void (*)(uint32_t moduleInstance))ROM_SPITABLE[8])
1419 #if defined(TARGET_IS_MSP432P4XX)
1420 #define ROM_SPI_getReceiveBufferAddressForDMA \
1421 ((uint32_t (*)(uint32_t moduleInstance))ROM_SPITABLE[9])
1423 #if defined(TARGET_IS_MSP432P4XX)
1424 #define ROM_SPI_getTransmitBufferAddressForDMA \
1425 ((uint32_t (*)(uint32_t moduleInstance))ROM_SPITABLE[10])
1427 #if defined(TARGET_IS_MSP432P4XX)
1428 #define ROM_SPI_isBusy \
1429 ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[11])
1431 #if defined(TARGET_IS_MSP432P4XX)
1432 #define ROM_SPI_enableInterrupt \
1433 ((void (*)(uint32_t moduleInstance, \
1434 uint_fast8_t mask))ROM_SPITABLE[12])
1436 #if defined(TARGET_IS_MSP432P4XX)
1437 #define ROM_SPI_disableInterrupt \
1438 ((void (*)(uint32_t moduleInstance, \
1439 uint_fast8_t mask))ROM_SPITABLE[13])
1441 #if defined(TARGET_IS_MSP432P4XX)
1442 #define ROM_SPI_getEnabledInterruptStatus \
1443 ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_SPITABLE[15])
1445 #if defined(TARGET_IS_MSP432P4XX)
1446 #define ROM_SPI_clearInterruptFlag \
1447 ((void (*)(uint32_t moduleInstance, \
1448 uint_fast8_t mask))ROM_SPITABLE[16])
1451 //*****************************************************************************
1453 // Macros for calling ROM functions in the SysCtl API.
1455 //*****************************************************************************
1456 #if defined(TARGET_IS_MSP432P4XX)
1457 #define ROM_SysCtl_getSRAMSize \
1458 ((uint_least32_t (*)(void))ROM_SYSCTLTABLE[0])
1460 #if defined(TARGET_IS_MSP432P4XX)
1461 #define ROM_SysCtl_getFlashSize \
1462 ((uint_least32_t (*)(void))ROM_SYSCTLTABLE[1])
1464 #if defined(TARGET_IS_MSP432P4XX)
1465 #define ROM_SysCtl_rebootDevice \
1466 ((void (*)(void))ROM_SYSCTLTABLE[2])
1468 #if defined(TARGET_IS_MSP432P4XX)
1469 #define ROM_SysCtl_enablePeripheralAtCPUHalt \
1470 ((void (*)(uint_fast16_t devices))ROM_SYSCTLTABLE[7])
1472 #if defined(TARGET_IS_MSP432P4XX)
1473 #define ROM_SysCtl_disablePeripheralAtCPUHalt \
1474 ((void (*)(uint_fast16_t devices))ROM_SYSCTLTABLE[8])
1476 #if defined(TARGET_IS_MSP432P4XX)
1477 #define ROM_SysCtl_setWDTTimeoutResetType \
1478 ((void (*)(uint_fast8_t resetType))ROM_SYSCTLTABLE[9])
1480 #if defined(TARGET_IS_MSP432P4XX)
1481 #define ROM_SysCtl_setWDTPasswordViolationResetType \
1482 ((void (*)(uint_fast8_t resetType))ROM_SYSCTLTABLE[10])
1484 #if defined(TARGET_IS_MSP432P4XX)
1485 #define ROM_SysCtl_disableNMISource \
1486 ((void (*)(uint_fast8_t flags))ROM_SYSCTLTABLE[11])
1488 #if defined(TARGET_IS_MSP432P4XX)
1489 #define ROM_SysCtl_enableNMISource \
1490 ((void (*)(uint_fast8_t flags))ROM_SYSCTLTABLE[12])
1492 #if defined(TARGET_IS_MSP432P4XX)
1493 #define ROM_SysCtl_getNMISourceStatus \
1494 ((uint_fast8_t (*)(void))ROM_SYSCTLTABLE[13])
1497 //*****************************************************************************
1499 // Macros for calling ROM functions in the SysTick API.
1501 //*****************************************************************************
1502 #if defined(TARGET_IS_MSP432P4XX)
1503 #define ROM_SysTick_enableModule \
1504 ((void (*)(void))ROM_SYSTICKTABLE[0])
1506 #if defined(TARGET_IS_MSP432P4XX)
1507 #define ROM_SysTick_disableModule \
1508 ((void (*)(void))ROM_SYSTICKTABLE[1])
1510 #if defined(TARGET_IS_MSP432P4XX)
1511 #define ROM_SysTick_enableInterrupt \
1512 ((void (*)(void))ROM_SYSTICKTABLE[2])
1514 #if defined(TARGET_IS_MSP432P4XX)
1515 #define ROM_SysTick_disableInterrupt \
1516 ((void (*)(void))ROM_SYSTICKTABLE[3])
1518 #if defined(TARGET_IS_MSP432P4XX)
1519 #define ROM_SysTick_setPeriod \
1520 ((void (*)(uint32_t period))ROM_SYSTICKTABLE[4])
1522 #if defined(TARGET_IS_MSP432P4XX)
1523 #define ROM_SysTick_getPeriod \
1524 ((uint32_t (*)(void))ROM_SYSTICKTABLE[5])
1526 #if defined(TARGET_IS_MSP432P4XX)
1527 #define ROM_SysTick_getValue \
1528 ((uint32_t (*)(void))ROM_SYSTICKTABLE[6])
1531 //*****************************************************************************
1533 // Macros for calling ROM functions in the Timer_A API.
1535 //*****************************************************************************
1536 #if defined(TARGET_IS_MSP432P4XX)
1537 #define ROM_Timer_A_startCounter \
1538 ((void (*)(uint32_t timer, \
1539 uint_fast16_t timerMode))ROM_TIMER_ATABLE[0])
1541 #if defined(TARGET_IS_MSP432P4XX)
1542 #define ROM_Timer_A_configureContinuousMode \
1543 ((void (*)(uint32_t timer, \
1544 const Timer_A_ContinuousModeConfig *config))ROM_TIMER_ATABLE[1])
1546 #if defined(TARGET_IS_MSP432P4XX)
1547 #define ROM_Timer_A_configureUpMode \
1548 ((void (*)(uint32_t timer, \
1549 const Timer_A_UpModeConfig *config))ROM_TIMER_ATABLE[2])
1551 #if defined(TARGET_IS_MSP432P4XX)
1552 #define ROM_Timer_A_configureUpDownMode \
1553 ((void (*)(uint32_t timer, \
1554 const Timer_A_UpDownModeConfig *config))ROM_TIMER_ATABLE[3])
1556 #if defined(TARGET_IS_MSP432P4XX)
1557 #define ROM_Timer_A_initCapture \
1558 ((void (*)(uint32_t timer, \
1559 const Timer_A_CaptureModeConfig *config))ROM_TIMER_ATABLE[4])
1561 #if defined(TARGET_IS_MSP432P4XX)
1562 #define ROM_Timer_A_initCompare \
1563 ((void (*)(uint32_t timer, \
1564 const Timer_A_CompareModeConfig *config))ROM_TIMER_ATABLE[5])
1566 #if defined(TARGET_IS_MSP432P4XX)
1567 #define ROM_Timer_A_clearTimer \
1568 ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[6])
1570 #if defined(TARGET_IS_MSP432P4XX)
1571 #define ROM_Timer_A_getSynchronizedCaptureCompareInput \
1572 ((uint_fast8_t (*)(uint32_t timer, \
1573 uint_fast16_t captureCompareRegister, \
1574 uint_fast16_t synchronizedSetting))ROM_TIMER_ATABLE[7])
1576 #if defined(TARGET_IS_MSP432P4XX)
1577 #define ROM_Timer_A_getOutputForOutputModeOutBitValue \
1578 ((uint_fast8_t (*)(uint32_t timer, \
1579 uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[8])
1581 #if defined(TARGET_IS_MSP432P4XX)
1582 #define ROM_Timer_A_getCaptureCompareCount \
1583 ((uint_fast16_t (*)(uint32_t timer, \
1584 uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[9])
1586 #if defined(TARGET_IS_MSP432P4XX)
1587 #define ROM_Timer_A_setOutputForOutputModeOutBitValue \
1588 ((void (*)(uint32_t timer, \
1589 uint_fast16_t captureCompareRegister, \
1590 uint_fast8_t outputModeOutBitValue))ROM_TIMER_ATABLE[10])
1592 #if defined(TARGET_IS_MSP432P4XX)
1593 #define ROM_Timer_A_generatePWM \
1594 ((void (*)(uint32_t timer, \
1595 const Timer_A_PWMConfig *config))ROM_TIMER_ATABLE[11])
1597 #if defined(TARGET_IS_MSP432P4XX)
1598 #define ROM_Timer_A_stopTimer \
1599 ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[12])
1601 #if defined(TARGET_IS_MSP432P4XX)
1602 #define ROM_Timer_A_setCompareValue \
1603 ((void (*)(uint32_t timer, \
1604 uint_fast16_t compareRegister, \
1605 uint_fast16_t compareValue))ROM_TIMER_ATABLE[13])
1607 #if defined(TARGET_IS_MSP432P4XX)
1608 #define ROM_Timer_A_clearInterruptFlag \
1609 ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[14])
1611 #if defined(TARGET_IS_MSP432P4XX)
1612 #define ROM_Timer_A_clearCaptureCompareInterrupt \
1613 ((void (*)(uint32_t timer, \
1614 uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[15])
1616 #if defined(TARGET_IS_MSP432P4XX)
1617 #define ROM_Timer_A_enableInterrupt \
1618 ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[16])
1620 #if defined(TARGET_IS_MSP432P4XX)
1621 #define ROM_Timer_A_disableInterrupt \
1622 ((void (*)(uint32_t timer))ROM_TIMER_ATABLE[17])
1624 #if defined(TARGET_IS_MSP432P4XX)
1625 #define ROM_Timer_A_getInterruptStatus \
1626 ((uint32_t (*)(uint32_t timer))ROM_TIMER_ATABLE[18])
1628 #if defined(TARGET_IS_MSP432P4XX)
1629 #define ROM_Timer_A_getEnabledInterruptStatus \
1630 ((uint32_t (*)(uint32_t timer))ROM_TIMER_ATABLE[19])
1632 #if defined(TARGET_IS_MSP432P4XX)
1633 #define ROM_Timer_A_enableCaptureCompareInterrupt \
1634 ((void (*)(uint32_t timer, \
1635 uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[20])
1637 #if defined(TARGET_IS_MSP432P4XX)
1638 #define ROM_Timer_A_disableCaptureCompareInterrupt \
1639 ((void (*)(uint32_t timer, \
1640 uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[21])
1642 #if defined(TARGET_IS_MSP432P4XX)
1643 #define ROM_Timer_A_getCaptureCompareInterruptStatus \
1644 ((uint32_t (*)(uint32_t timer, \
1645 uint_fast16_t captureCompareRegister, \
1646 uint_fast16_t mask))ROM_TIMER_ATABLE[22])
1648 #if defined(TARGET_IS_MSP432P4XX)
1649 #define ROM_Timer_A_getCaptureCompareEnabledInterruptStatus \
1650 ((uint32_t (*)(uint32_t timer, \
1651 uint_fast16_t captureCompareRegister))ROM_TIMER_ATABLE[23])
1654 //*****************************************************************************
1656 // Macros for calling ROM functions in the Timer32 API.
1658 //*****************************************************************************
1659 #if defined(TARGET_IS_MSP432P4XX)
1660 #define ROM_Timer32_initModule \
1661 ((void (*)(uint32_t timer, \
1662 uint32_t preScaler, \
1663 uint32_t resolution, \
1664 uint32_t mode))ROM_TIMER32TABLE[0])
1666 #if defined(TARGET_IS_MSP432P4XX)
1667 #define ROM_Timer32_setCount \
1668 ((void (*)(uint32_t timer, \
1669 uint32_t count))ROM_TIMER32TABLE[1])
1671 #if defined(TARGET_IS_MSP432P4XX)
1672 #define ROM_Timer32_setCountInBackground \
1673 ((void (*)(uint32_t timer, \
1674 uint32_t count))ROM_TIMER32TABLE[2])
1676 #if defined(TARGET_IS_MSP432P4XX)
1677 #define ROM_Timer32_getValue \
1678 ((uint32_t (*)(uint32_t timer))ROM_TIMER32TABLE[3])
1680 #if defined(TARGET_IS_MSP432P4XX)
1681 #define ROM_Timer32_startTimer \
1682 ((void (*)(uint32_t timer, \
1683 bool oneShot))ROM_TIMER32TABLE[4])
1685 #if defined(TARGET_IS_MSP432P4XX)
1686 #define ROM_Timer32_haltTimer \
1687 ((void (*)(uint32_t timer))ROM_TIMER32TABLE[5])
1689 #if defined(TARGET_IS_MSP432P4XX)
1690 #define ROM_Timer32_enableInterrupt \
1691 ((void (*)(uint32_t timer))ROM_TIMER32TABLE[6])
1693 #if defined(TARGET_IS_MSP432P4XX)
1694 #define ROM_Timer32_disableInterrupt \
1695 ((void (*)(uint32_t timer))ROM_TIMER32TABLE[7])
1697 #if defined(TARGET_IS_MSP432P4XX)
1698 #define ROM_Timer32_clearInterruptFlag \
1699 ((void (*)(uint32_t timer))ROM_TIMER32TABLE[8])
1701 #if defined(TARGET_IS_MSP432P4XX)
1702 #define ROM_Timer32_getInterruptStatus \
1703 ((uint32_t (*)(uint32_t timer))ROM_TIMER32TABLE[9])
1706 //*****************************************************************************
1708 // Macros for calling ROM functions in the UART API.
1710 //*****************************************************************************
1711 #if defined(TARGET_IS_MSP432P4XX)
1712 #define ROM_UART_initModule \
1713 ((bool (*)(uint32_t moduleInstance, \
1714 const eUSCI_UART_Config *config))ROM_UARTTABLE[0])
1716 #if defined(TARGET_IS_MSP432P4XX)
1717 #define ROM_UART_transmitData \
1718 ((void (*)(uint32_t moduleInstance, \
1719 uint_fast8_t transmitData))ROM_UARTTABLE[1])
1721 #if defined(TARGET_IS_MSP432P4XX)
1722 #define ROM_UART_enableModule \
1723 ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[2])
1725 #if defined(TARGET_IS_MSP432P4XX)
1726 #define ROM_UART_disableModule \
1727 ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[3])
1729 #if defined(TARGET_IS_MSP432P4XX)
1730 #define ROM_UART_queryStatusFlags \
1731 ((uint_fast8_t (*)(uint32_t moduleInstance, \
1732 uint_fast8_t mask))ROM_UARTTABLE[4])
1734 #if defined(TARGET_IS_MSP432P4XX)
1735 #define ROM_UART_setDormant \
1736 ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[5])
1738 #if defined(TARGET_IS_MSP432P4XX)
1739 #define ROM_UART_resetDormant \
1740 ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[6])
1742 #if defined(TARGET_IS_MSP432P4XX)
1743 #define ROM_UART_transmitAddress \
1744 ((void (*)(uint32_t moduleInstance, \
1745 uint_fast8_t transmitAddress))ROM_UARTTABLE[7])
1747 #if defined(TARGET_IS_MSP432P4XX)
1748 #define ROM_UART_transmitBreak \
1749 ((void (*)(uint32_t moduleInstance))ROM_UARTTABLE[8])
1751 #if defined(TARGET_IS_MSP432P4XX)
1752 #define ROM_UART_getReceiveBufferAddressForDMA \
1753 ((uint32_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[9])
1755 #if defined(TARGET_IS_MSP432P4XX)
1756 #define ROM_UART_getTransmitBufferAddressForDMA \
1757 ((uint32_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[10])
1759 #if defined(TARGET_IS_MSP432P4XX)
1760 #define ROM_UART_selectDeglitchTime \
1761 ((void (*)(uint32_t moduleInstance, \
1762 uint32_t deglitchTime))ROM_UARTTABLE[11])
1764 #if defined(TARGET_IS_MSP432P4XX)
1765 #define ROM_UART_enableInterrupt \
1766 ((void (*)(uint32_t moduleInstance, \
1767 uint_fast8_t mask))ROM_UARTTABLE[12])
1769 #if defined(TARGET_IS_MSP432P4XX)
1770 #define ROM_UART_disableInterrupt \
1771 ((void (*)(uint32_t moduleInstance, \
1772 uint_fast8_t mask))ROM_UARTTABLE[13])
1774 #if defined(TARGET_IS_MSP432P4XX)
1775 #define ROM_UART_clearInterruptFlag \
1776 ((void (*)(uint32_t moduleInstance, \
1777 uint_fast8_t mask))ROM_UARTTABLE[15])
1779 #if defined(TARGET_IS_MSP432P4XX)
1780 #define ROM_UART_receiveData \
1781 ((uint8_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[16])
1783 #if defined(TARGET_IS_MSP432P4XX)
1784 #define ROM_UART_getEnabledInterruptStatus \
1785 ((uint_fast8_t (*)(uint32_t moduleInstance))ROM_UARTTABLE[17])
1788 //*****************************************************************************
1790 // Macros for calling ROM functions in the WDT API.
1792 //*****************************************************************************
1793 #if defined(TARGET_IS_MSP432P4XX)
1794 #define ROM_WDT_A_holdTimer \
1795 ((void (*)(void))ROM_WDTTABLE[0])
1797 #if defined(TARGET_IS_MSP432P4XX)
1798 #define ROM_WDT_A_startTimer \
1799 ((void (*)(void))ROM_WDTTABLE[1])
1801 #if defined(TARGET_IS_MSP432P4XX)
1802 #define ROM_WDT_A_clearTimer \
1803 ((void (*)(void))ROM_WDTTABLE[2])
1805 #if defined(TARGET_IS_MSP432P4XX)
1806 #define ROM_WDT_A_initWatchdogTimer \
1807 ((void (*)(uint_fast8_t clockSelect, \
1808 uint_fast8_t clockDivider))ROM_WDTTABLE[3])
1810 #if defined(TARGET_IS_MSP432P4XX)
1811 #define ROM_WDT_A_initIntervalTimer \
1812 ((void (*)(uint_fast8_t clockSelect, \
1813 uint_fast8_t clockDivider))ROM_WDTTABLE[4])