MSP430 DriverLib for MSP430FR2xx_4xx Devices
2.91.13.01
rom_driverlib_fr2676.h
1
//*****************************************************************************
2
//
3
// rom_driverlib_fr2676.h
4
// Macros to facilitate calling functions in the ROM for
5
// MSP430FR2676, MSP430FR2675, MSP430FR2673, MSP430FR2672
6
//
7
// Copyright (c) 2018 Texas Instruments Incorporated. All rights reserved.
8
// TI Information - Selective Disclosure
9
//
10
//*****************************************************************************
11
12
#if defined(__TI_COMPILER_VERSION__)
13
#if __TI_COMPILER_VERSION__ >= 18001001
14
#define __cc_rom __attribute__((call_conv("cc_rom")))
15
#else
16
#error "The cc_rom attribute requires MSP TI COMPILER 18.1.1.LTS or more recent."
17
#endif // __TI_COMPILER_VERSION__ >=
18
#endif // (defined(__TI_COMPILER_VERSION__))18001001
19
20
#if __REGISTER_R4__ != __REGISTER_FREE__
21
#error "Incorrect setting for R4, expected it to be free."
22
#endif
23
24
#if __REGISTER_R5__ != __REGISTER_FREE__
25
#error "Incorrect setting for R5, expected it to be free."
26
#endif
27
28
// Suppress type conversion warning
29
#ifdef __TI_COMPILER_VERSION__
30
#pragma diag_suppress 173
31
#endif
32
33
#if (defined(__TI_COMPILER_VERSION__) && !defined(__LARGE_DATA_MODEL__)) || \
34
(defined(__IAR_SYSTEMS_ICC__) && (__DATA_MODEL__!=__DATA_MODEL_LARGE__))
35
#error "Only large data model supported for this ROM."
36
#endif
37
38
#ifndef __ROM_DRIVERLIB_H__
39
#define __ROM_DRIVERLIB_H__
40
41
#if (defined(__TI_COMPILER_VERSION__) && defined(__LARGE_CODE_MODEL__)) || \
42
(defined(__IAR_SYSTEMS_ICC__) && (__CODE_MODEL__==__CODE_MODEL_LARGE__))
43
//*****************************************************************************
44
//
45
// Pointer to the main API tables.
46
//
47
//*****************************************************************************
48
#ifndef ROM_TABLE
49
#define ROM_TABLE ((uint32_t *)ROMLIB_START)
50
#endif
51
#define ROM_DRIVERLIB_APITABLE ((uint32_t *)ROM_TABLE[1])
52
#define ROM_DRIVERLIB_VERSION ((uint32_t)ROM_DRIVERLIB_APITABLE[0])
53
#define ROM_CSTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[1]))
54
#define ROM_EUSCI_A_SPITABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[2]))
55
#define ROM_EUSCI_A_UARTTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[3]))
56
#define ROM_EUSCI_B_I2CTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[4]))
57
#define ROM_EUSCI_B_SPITABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[5]))
58
#define ROM_GPIOTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[6]))
59
#define ROM_PMMTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[7]))
60
#define ROM_SFRTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[8]))
61
#define ROM_SYSCTLTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[9]))
62
#define ROM_TIMER_BTABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[10]))
63
#define ROM_WDT_ATABLE ((uint32_t *)(ROM_DRIVERLIB_APITABLE[11]))
64
65
#define ROM_DRIVERLIB_getVersion() ((uint32_t)(ROM_DRIVERLIB_VERSION))
66
#ifndef ROM_getVersion
67
#define ROM_getVersion() ((uint32_t)(ROMLIB_START[0]))
68
#endif
69
//*****************************************************************************
70
//
71
// Macros for calling ROM functions in the CS API.
72
//
73
//*****************************************************************************
74
#define ROM_CS_initClockSignal \
75
((void (__cc_rom *)( uint8_t selectedClockSignal, \
76
uint16_t clockSource, \
77
uint16_t clockSourceDivider))ROM_CSTABLE[0])
78
#define ROM_CS_turnOnXT1LF \
79
((void (__cc_rom *)( uint16_t xt1Drive))ROM_CSTABLE[1])
80
#define ROM_CS_bypassXT1 \
81
((void (__cc_rom *)( void))ROM_CSTABLE[2])
82
#define ROM_CS_turnOnXT1LFWithTimeout \
83
((bool (__cc_rom *)( uint16_t xt1Drive, \
84
uint16_t timeout))ROM_CSTABLE[3])
85
#define ROM_CS_bypassXT1WithTimeout \
86
((bool (__cc_rom *)( uint16_t timeout))ROM_CSTABLE[4])
87
#define ROM_CS_turnOffXT1 \
88
((void (__cc_rom *)( void))ROM_CSTABLE[5])
89
#define ROM_CS_turnOnXT1HF \
90
((void (__cc_rom *)( uint16_t xt1Drive, \
91
uint16_t xt1HFFreq))ROM_CSTABLE[6])
92
#define ROM_CS_turnOnXT1HFWithTimeout \
93
((bool (__cc_rom *)( uint16_t xt1Drive, \
94
uint16_t xt1HFFreq, \
95
uint16_t timeout))ROM_CSTABLE[7])
96
#define ROM_CS_turnOnSMCLK \
97
((void (__cc_rom *)( void))ROM_CSTABLE[8])
98
#define ROM_CS_turnOffSMCLK \
99
((void (__cc_rom *)( void))ROM_CSTABLE[9])
100
#define ROM_CS_enableVLOAutoOff \
101
((void (__cc_rom *)( void))ROM_CSTABLE[10])
102
#define ROM_CS_disableVLOAutoOff \
103
((void (__cc_rom *)( void))ROM_CSTABLE[11])
104
#define ROM_CS_initFLLSettle \
105
((bool (__cc_rom *)( uint16_t fsystem, \
106
uint16_t ratio))ROM_CSTABLE[12])
107
/* Removed due to bug fix for MSPDVRLIB-185
108
#define ROM_CS_initFLL \
109
((bool (__cc_rom *)( uint16_t fsystem, \
110
uint16_t ratio))ROM_CSTABLE[13])
111
*/
112
/* Removed due to bug fix for MSPDVRLIB-185
113
#define ROM_CS_initFLLLoadTrim \
114
((bool (__cc_rom *)( uint16_t fsystem, \
115
uint16_t ratio, \
116
CS_initFLLParam *param))ROM_CSTABLE[14])
117
*/
118
#define ROM_CS_enableClockRequest \
119
((void (__cc_rom *)( uint8_t selectClock))ROM_CSTABLE[15])
120
#define ROM_CS_disableClockRequest \
121
((void (__cc_rom *)( uint8_t selectClock))ROM_CSTABLE[16])
122
#define ROM_CS_getFaultFlagStatus \
123
((uint8_t (__cc_rom *)( uint8_t mask))ROM_CSTABLE[17])
124
#define ROM_CS_clearFaultFlag \
125
((void (__cc_rom *)( uint8_t mask))ROM_CSTABLE[18])
126
#define ROM_CS_clearAllOscFlagsWithTimeout \
127
((uint16_t (__cc_rom *)( uint16_t timeout))ROM_CSTABLE[19])
128
#define ROM_CS_enableXT1AutomaticGainControl \
129
((void (__cc_rom *)( void))ROM_CSTABLE[20])
130
#define ROM_CS_disableXT1AutomaticGainControl \
131
((void (__cc_rom *)( void))ROM_CSTABLE[21])
132
#define ROM_CS_enableFLLUnlock \
133
((void (__cc_rom *)( void))ROM_CSTABLE[22])
134
#define ROM_CS_disableFLLUnlock \
135
((void (__cc_rom *)( void))ROM_CSTABLE[23])
136
#define ROM_CS_enableREFOLP \
137
((void (__cc_rom *)( void))ROM_CSTABLE[24])
138
#define ROM_CS_disableREFOLP \
139
((void (__cc_rom *)( void))ROM_CSTABLE[25])
140
#define ROM_CS_getREFOLP \
141
((bool (__cc_rom *)( void))ROM_CSTABLE[26])
142
#define ROM_CS_enableXT1FaultOff \
143
((void (__cc_rom *)( void))ROM_CSTABLE[27])
144
#define ROM_CS_disableXT1FaultOff \
145
((void (__cc_rom *)( void))ROM_CSTABLE[28])
146
#define ROM_CS_getXT1FaultOff \
147
((bool (__cc_rom *)( void))ROM_CSTABLE[29])
148
#define ROM_CS_getREFOReady \
149
((bool (__cc_rom *)( void))ROM_CSTABLE[30])
150
151
//*****************************************************************************
152
//
153
// Macros for calling ROM functions in the EUSCI_A_SPI API.
154
//
155
//*****************************************************************************
156
#define ROM_EUSCI_A_SPI_initMaster \
157
((void (__cc_rom *)( uint16_t baseAddress, \
158
EUSCI_A_SPI_initMasterParam *param))ROM_EUSCI_A_SPITABLE[0])
159
#define ROM_EUSCI_A_SPI_select4PinFunctionality \
160
((void (__cc_rom *)( uint16_t baseAddress, \
161
uint8_t select4PinFunctionality))ROM_EUSCI_A_SPITABLE[1])
162
#define ROM_EUSCI_A_SPI_changeMasterClock \
163
((void (__cc_rom *)( uint16_t baseAddress, \
164
EUSCI_A_SPI_changeMasterClockParam *param))ROM_EUSCI_A_SPITABLE[2])
165
#define ROM_EUSCI_A_SPI_initSlave \
166
((void (__cc_rom *)( uint16_t baseAddress, \
167
EUSCI_A_SPI_initSlaveParam *param))ROM_EUSCI_A_SPITABLE[3])
168
#define ROM_EUSCI_A_SPI_changeClockPhasePolarity \
169
((void (__cc_rom *)( uint16_t baseAddress, \
170
uint16_t clockPhase, \
171
uint16_t clockPolarity))ROM_EUSCI_A_SPITABLE[4])
172
#define ROM_EUSCI_A_SPI_transmitData \
173
((void (__cc_rom *)( uint16_t baseAddress, \
174
uint8_t transmitData))ROM_EUSCI_A_SPITABLE[5])
175
#define ROM_EUSCI_A_SPI_receiveData \
176
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_SPITABLE[6])
177
#define ROM_EUSCI_A_SPI_enableInterrupt \
178
((void (__cc_rom *)( uint16_t baseAddress, \
179
uint8_t mask))ROM_EUSCI_A_SPITABLE[7])
180
#define ROM_EUSCI_A_SPI_disableInterrupt \
181
((void (__cc_rom *)( uint16_t baseAddress, \
182
uint8_t mask))ROM_EUSCI_A_SPITABLE[8])
183
#define ROM_EUSCI_A_SPI_getInterruptStatus \
184
((uint8_t (__cc_rom *)( uint16_t baseAddress, \
185
uint8_t mask))ROM_EUSCI_A_SPITABLE[9])
186
#define ROM_EUSCI_A_SPI_clearInterrupt \
187
((void (__cc_rom *)( uint16_t baseAddress, \
188
uint8_t mask))ROM_EUSCI_A_SPITABLE[10])
189
#define ROM_EUSCI_A_SPI_enable \
190
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_SPITABLE[11])
191
#define ROM_EUSCI_A_SPI_disable \
192
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_SPITABLE[12])
193
#define ROM_EUSCI_A_SPI_getReceiveBufferAddress \
194
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_SPITABLE[13])
195
#define ROM_EUSCI_A_SPI_getTransmitBufferAddress \
196
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_SPITABLE[14])
197
#define ROM_EUSCI_A_SPI_isBusy \
198
((uint16_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_SPITABLE[15])
199
#define ROM_EUSCI_A_SPI_remapPins \
200
((void (__cc_rom *)( uint16_t baseAddress, \
201
uint8_t pinsSelect))ROM_EUSCI_A_SPITABLE[16])
202
203
//*****************************************************************************
204
//
205
// Macros for calling ROM functions in the EUSCI_A_UART API.
206
//
207
//*****************************************************************************
208
#define ROM_EUSCI_A_UART_init \
209
((bool (__cc_rom *)( uint16_t baseAddress, \
210
EUSCI_A_UART_initParam *param))ROM_EUSCI_A_UARTTABLE[0])
211
#define ROM_EUSCI_A_UART_transmitData \
212
((void (__cc_rom *)( uint16_t baseAddress, \
213
uint8_t transmitData))ROM_EUSCI_A_UARTTABLE[1])
214
#define ROM_EUSCI_A_UART_receiveData \
215
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[2])
216
#define ROM_EUSCI_A_UART_enableInterrupt \
217
((void (__cc_rom *)( uint16_t baseAddress, \
218
uint8_t mask))ROM_EUSCI_A_UARTTABLE[3])
219
#define ROM_EUSCI_A_UART_disableInterrupt \
220
((void (__cc_rom *)( uint16_t baseAddress, \
221
uint8_t mask))ROM_EUSCI_A_UARTTABLE[4])
222
#define ROM_EUSCI_A_UART_getInterruptStatus \
223
((uint8_t (__cc_rom *)( uint16_t baseAddress, \
224
uint8_t mask))ROM_EUSCI_A_UARTTABLE[5])
225
#define ROM_EUSCI_A_UART_clearInterrupt \
226
((void (__cc_rom *)( uint16_t baseAddress, \
227
uint8_t mask))ROM_EUSCI_A_UARTTABLE[6])
228
#define ROM_EUSCI_A_UART_enable \
229
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[7])
230
#define ROM_EUSCI_A_UART_disable \
231
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[8])
232
#define ROM_EUSCI_A_UART_queryStatusFlags \
233
((uint8_t (__cc_rom *)( uint16_t baseAddress, \
234
uint8_t mask))ROM_EUSCI_A_UARTTABLE[9])
235
#define ROM_EUSCI_A_UART_setDormant \
236
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[10])
237
#define ROM_EUSCI_A_UART_resetDormant \
238
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[11])
239
#define ROM_EUSCI_A_UART_transmitAddress \
240
((void (__cc_rom *)( uint16_t baseAddress, \
241
uint8_t transmitAddress))ROM_EUSCI_A_UARTTABLE[12])
242
#define ROM_EUSCI_A_UART_transmitBreak \
243
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[13])
244
#define ROM_EUSCI_A_UART_getReceiveBufferAddress \
245
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[14])
246
#define ROM_EUSCI_A_UART_getTransmitBufferAddress \
247
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_A_UARTTABLE[15])
248
#define ROM_EUSCI_A_UART_selectDeglitchTime \
249
((void (__cc_rom *)( uint16_t baseAddress, \
250
uint16_t deglitchTime))ROM_EUSCI_A_UARTTABLE[16])
251
#define ROM_EUSCI_A_UART_remapPins \
252
((void (__cc_rom *)( uint16_t baseAddress, \
253
uint8_t pinsSelect))ROM_EUSCI_A_UARTTABLE[17])
254
255
//*****************************************************************************
256
//
257
// Macros for calling ROM functions in the EUSCI_B_I2C API.
258
//
259
//*****************************************************************************
260
#define ROM_EUSCI_B_I2C_initMaster \
261
((void (__cc_rom *)( uint16_t baseAddress, \
262
EUSCI_B_I2C_initMasterParam *param))ROM_EUSCI_B_I2CTABLE[0])
263
#define ROM_EUSCI_B_I2C_initSlave \
264
((void (__cc_rom *)( uint16_t baseAddress, \
265
EUSCI_B_I2C_initSlaveParam *param))ROM_EUSCI_B_I2CTABLE[1])
266
#define ROM_EUSCI_B_I2C_enable \
267
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[2])
268
#define ROM_EUSCI_B_I2C_disable \
269
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[3])
270
#define ROM_EUSCI_B_I2C_setSlaveAddress \
271
((void (__cc_rom *)( uint16_t baseAddress, \
272
uint8_t slaveAddress))ROM_EUSCI_B_I2CTABLE[4])
273
#define ROM_EUSCI_B_I2C_setMode \
274
((void (__cc_rom *)( uint16_t baseAddress, \
275
uint8_t mode))ROM_EUSCI_B_I2CTABLE[5])
276
#define ROM_EUSCI_B_I2C_getMode \
277
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[6])
278
#define ROM_EUSCI_B_I2C_slavePutData \
279
((void (__cc_rom *)( uint16_t baseAddress, \
280
uint8_t transmitData))ROM_EUSCI_B_I2CTABLE[7])
281
#define ROM_EUSCI_B_I2C_slaveGetData \
282
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[8])
283
#define ROM_EUSCI_B_I2C_isBusBusy \
284
((uint16_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[9])
285
#define ROM_EUSCI_B_I2C_masterIsStopSent \
286
((uint16_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[10])
287
#define ROM_EUSCI_B_I2C_masterIsStartSent \
288
((uint16_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[11])
289
#define ROM_EUSCI_B_I2C_enableInterrupt \
290
((void (__cc_rom *)( uint16_t baseAddress, \
291
uint16_t mask))ROM_EUSCI_B_I2CTABLE[12])
292
#define ROM_EUSCI_B_I2C_disableInterrupt \
293
((void (__cc_rom *)( uint16_t baseAddress, \
294
uint16_t mask))ROM_EUSCI_B_I2CTABLE[13])
295
#define ROM_EUSCI_B_I2C_clearInterrupt \
296
((void (__cc_rom *)( uint16_t baseAddress, \
297
uint16_t mask))ROM_EUSCI_B_I2CTABLE[14])
298
#define ROM_EUSCI_B_I2C_getInterruptStatus \
299
((uint16_t (__cc_rom *)( uint16_t baseAddress, \
300
uint16_t mask))ROM_EUSCI_B_I2CTABLE[15])
301
#define ROM_EUSCI_B_I2C_masterSendSingleByte \
302
((void (__cc_rom *)( uint16_t baseAddress, \
303
uint8_t txData))ROM_EUSCI_B_I2CTABLE[16])
304
#define ROM_EUSCI_B_I2C_masterReceiveSingleByte \
305
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[17])
306
#define ROM_EUSCI_B_I2C_masterSendSingleByteWithTimeout \
307
((bool (__cc_rom *)( uint16_t baseAddress, \
308
uint8_t txData, \
309
uint32_t timeout))ROM_EUSCI_B_I2CTABLE[18])
310
#define ROM_EUSCI_B_I2C_masterSendMultiByteStart \
311
((void (__cc_rom *)( uint16_t baseAddress, \
312
uint8_t txData))ROM_EUSCI_B_I2CTABLE[19])
313
#define ROM_EUSCI_B_I2C_masterSendMultiByteStartWithTimeout \
314
((bool (__cc_rom *)( uint16_t baseAddress, \
315
uint8_t txData, \
316
uint32_t timeout))ROM_EUSCI_B_I2CTABLE[20])
317
#define ROM_EUSCI_B_I2C_masterSendMultiByteNext \
318
((void (__cc_rom *)( uint16_t baseAddress, \
319
uint8_t txData))ROM_EUSCI_B_I2CTABLE[21])
320
#define ROM_EUSCI_B_I2C_masterSendMultiByteNextWithTimeout \
321
((bool (__cc_rom *)( uint16_t baseAddress, \
322
uint8_t txData, \
323
uint32_t timeout))ROM_EUSCI_B_I2CTABLE[22])
324
#define ROM_EUSCI_B_I2C_masterSendMultiByteFinish \
325
((void (__cc_rom *)( uint16_t baseAddress, \
326
uint8_t txData))ROM_EUSCI_B_I2CTABLE[23])
327
#define ROM_EUSCI_B_I2C_masterSendMultiByteFinishWithTimeout \
328
((bool (__cc_rom *)( uint16_t baseAddress, \
329
uint8_t txData, \
330
uint32_t timeout))ROM_EUSCI_B_I2CTABLE[24])
331
#define ROM_EUSCI_B_I2C_masterSendStart \
332
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[25])
333
#define ROM_EUSCI_B_I2C_masterSendMultiByteStop \
334
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[26])
335
#define ROM_EUSCI_B_I2C_masterReceiveStart \
336
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[27])
337
#define ROM_EUSCI_B_I2C_masterReceiveMultiByteNext \
338
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[28])
339
#define ROM_EUSCI_B_I2C_masterReceiveMultiByteFinish \
340
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[29])
341
#define ROM_EUSCI_B_I2C_masterReceiveMultiByteFinishWithTimeout \
342
((bool (__cc_rom *)( uint16_t baseAddress, \
343
uint8_t *txData, \
344
uint32_t timeout))ROM_EUSCI_B_I2CTABLE[30])
345
#define ROM_EUSCI_B_I2C_masterReceiveMultiByteStop \
346
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[31])
347
#define ROM_EUSCI_B_I2C_enableMultiMasterMode \
348
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[32])
349
#define ROM_EUSCI_B_I2C_disableMultiMasterMode \
350
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[33])
351
#define ROM_EUSCI_B_I2C_masterReceiveSingle \
352
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[34])
353
#define ROM_EUSCI_B_I2C_getReceiveBufferAddress \
354
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[35])
355
#define ROM_EUSCI_B_I2C_getTransmitBufferAddress \
356
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_I2CTABLE[36])
357
#define ROM_EUSCI_B_I2C_remapPins \
358
((void (__cc_rom *)( uint16_t baseAddress, \
359
uint8_t pinsSelect))ROM_EUSCI_B_I2CTABLE[37])
360
#define ROM_EUSCI_B_I2C_setTimeout \
361
((void (__cc_rom *)( uint16_t baseAddress, \
362
uint16_t timeout))ROM_EUSCI_B_I2CTABLE[38])
363
364
//*****************************************************************************
365
//
366
// Macros for calling ROM functions in the EUSCI_B_SPI API.
367
//
368
//*****************************************************************************
369
#define ROM_EUSCI_B_SPI_initMaster \
370
((void (__cc_rom *)( uint16_t baseAddress, \
371
EUSCI_B_SPI_initMasterParam *param))ROM_EUSCI_B_SPITABLE[0])
372
#define ROM_EUSCI_B_SPI_select4PinFunctionality \
373
((void (__cc_rom *)( uint16_t baseAddress, \
374
uint8_t select4PinFunctionality))ROM_EUSCI_B_SPITABLE[1])
375
#define ROM_EUSCI_B_SPI_changeMasterClock \
376
((void (__cc_rom *)( uint16_t baseAddress, \
377
EUSCI_B_SPI_changeMasterClockParam *param))ROM_EUSCI_B_SPITABLE[2])
378
#define ROM_EUSCI_B_SPI_initSlave \
379
((void (__cc_rom *)( uint16_t baseAddress, \
380
EUSCI_B_SPI_initSlaveParam *param))ROM_EUSCI_B_SPITABLE[3])
381
#define ROM_EUSCI_B_SPI_changeClockPhasePolarity \
382
((void (__cc_rom *)( uint16_t baseAddress, \
383
uint16_t clockPhase, \
384
uint16_t clockPolarity))ROM_EUSCI_B_SPITABLE[4])
385
#define ROM_EUSCI_B_SPI_transmitData \
386
((void (__cc_rom *)( uint16_t baseAddress, \
387
uint8_t transmitData))ROM_EUSCI_B_SPITABLE[5])
388
#define ROM_EUSCI_B_SPI_receiveData \
389
((uint8_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_SPITABLE[6])
390
#define ROM_EUSCI_B_SPI_enableInterrupt \
391
((void (__cc_rom *)( uint16_t baseAddress, \
392
uint8_t mask))ROM_EUSCI_B_SPITABLE[7])
393
#define ROM_EUSCI_B_SPI_disableInterrupt \
394
((void (__cc_rom *)( uint16_t baseAddress, \
395
uint8_t mask))ROM_EUSCI_B_SPITABLE[8])
396
#define ROM_EUSCI_B_SPI_getInterruptStatus \
397
((uint8_t (__cc_rom *)( uint16_t baseAddress, \
398
uint8_t mask))ROM_EUSCI_B_SPITABLE[9])
399
#define ROM_EUSCI_B_SPI_clearInterrupt \
400
((void (__cc_rom *)( uint16_t baseAddress, \
401
uint8_t mask))ROM_EUSCI_B_SPITABLE[10])
402
#define ROM_EUSCI_B_SPI_enable \
403
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_SPITABLE[11])
404
#define ROM_EUSCI_B_SPI_disable \
405
((void (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_SPITABLE[12])
406
#define ROM_EUSCI_B_SPI_getReceiveBufferAddress \
407
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_SPITABLE[13])
408
#define ROM_EUSCI_B_SPI_getTransmitBufferAddress \
409
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_SPITABLE[14])
410
#define ROM_EUSCI_B_SPI_isBusy \
411
((uint16_t (__cc_rom *)( uint16_t baseAddress))ROM_EUSCI_B_SPITABLE[15])
412
#define ROM_EUSCI_B_SPI_remapPins \
413
((void (__cc_rom *)( uint16_t baseAddress, \
414
uint8_t pinsSelect))ROM_EUSCI_B_SPITABLE[16])
415
416
//*****************************************************************************
417
//
418
// Macros for calling ROM functions in the GPIO API.
419
//
420
//*****************************************************************************
421
#define ROM_GPIO_setAsOutputPin \
422
((void (__cc_rom *)( uint8_t selectedPort, \
423
uint16_t selectedPins))ROM_GPIOTABLE[0])
424
#define ROM_GPIO_setAsInputPin \
425
((void (__cc_rom *)( uint8_t selectedPort, \
426
uint16_t selectedPins))ROM_GPIOTABLE[1])
427
#define ROM_GPIO_setAsPeripheralModuleFunctionOutputPin \
428
((void (__cc_rom *)( uint8_t selectedPort, \
429
uint16_t selectedPins, \
430
uint8_t mode))ROM_GPIOTABLE[2])
431
#define ROM_GPIO_setAsPeripheralModuleFunctionInputPin \
432
((void (__cc_rom *)( uint8_t selectedPort, \
433
uint16_t selectedPins, \
434
uint8_t mode))ROM_GPIOTABLE[3])
435
#define ROM_GPIO_setOutputHighOnPin \
436
((void (__cc_rom *)( uint8_t selectedPort, \
437
uint16_t selectedPins))ROM_GPIOTABLE[4])
438
#define ROM_GPIO_setOutputLowOnPin \
439
((void (__cc_rom *)( uint8_t selectedPort, \
440
uint16_t selectedPins))ROM_GPIOTABLE[5])
441
#define ROM_GPIO_toggleOutputOnPin \
442
((void (__cc_rom *)( uint8_t selectedPort, \
443
uint16_t selectedPins))ROM_GPIOTABLE[6])
444
#define ROM_GPIO_setAsInputPinWithPullDownResistor \
445
((void (__cc_rom *)( uint8_t selectedPort, \
446
uint16_t selectedPins))ROM_GPIOTABLE[7])
447
#define ROM_GPIO_setAsInputPinWithPullUpResistor \
448
((void (__cc_rom *)( uint8_t selectedPort, \
449
uint16_t selectedPins))ROM_GPIOTABLE[8])
450
#define ROM_GPIO_getInputPinValue \
451
((uint8_t (__cc_rom *)( uint8_t selectedPort, \
452
uint16_t selectedPins))ROM_GPIOTABLE[9])
453
#define ROM_GPIO_enableInterrupt \
454
((void (__cc_rom *)( uint8_t selectedPort, \
455
uint16_t selectedPins))ROM_GPIOTABLE[10])
456
#define ROM_GPIO_disableInterrupt \
457
((void (__cc_rom *)( uint8_t selectedPort, \
458
uint16_t selectedPins))ROM_GPIOTABLE[11])
459
#define ROM_GPIO_getInterruptStatus \
460
((uint16_t (__cc_rom *)( uint8_t selectedPort, \
461
uint16_t selectedPins))ROM_GPIOTABLE[12])
462
#define ROM_GPIO_clearInterrupt \
463
((void (__cc_rom *)( uint8_t selectedPort, \
464
uint16_t selectedPins))ROM_GPIOTABLE[13])
465
#define ROM_GPIO_selectInterruptEdge \
466
((void (__cc_rom *)( uint8_t selectedPort, \
467
uint16_t selectedPins, \
468
uint8_t edgeSelect))ROM_GPIOTABLE[14])
469
470
//*****************************************************************************
471
//
472
// Macros for calling ROM functions in the PMM API.
473
//
474
//*****************************************************************************
475
#define ROM_PMM_enableSVSH \
476
((void (__cc_rom *)( void))ROM_PMMTABLE[0])
477
#define ROM_PMM_disableSVSH \
478
((void (__cc_rom *)( void))ROM_PMMTABLE[1])
479
#define ROM_PMM_turnOnRegulator \
480
((void (__cc_rom *)( void))ROM_PMMTABLE[2])
481
#define ROM_PMM_turnOffRegulator \
482
((void (__cc_rom *)( void))ROM_PMMTABLE[3])
483
#define ROM_PMM_trigPOR \
484
((void (__cc_rom *)( void))ROM_PMMTABLE[4])
485
#define ROM_PMM_trigBOR \
486
((void (__cc_rom *)( void))ROM_PMMTABLE[5])
487
#define ROM_PMM_clearInterrupt \
488
((void (__cc_rom *)( uint16_t mask))ROM_PMMTABLE[6])
489
#define ROM_PMM_getInterruptStatus \
490
((uint16_t (__cc_rom *)( uint16_t mask))ROM_PMMTABLE[7])
491
#define ROM_PMM_unlockLPM5 \
492
((void (__cc_rom *)( void))ROM_PMMTABLE[8])
493
#define ROM_PMM_getBandgapMode \
494
((uint16_t (__cc_rom *)( void))ROM_PMMTABLE[9])
495
#define ROM_PMM_isBandgapActive \
496
((uint16_t (__cc_rom *)( void))ROM_PMMTABLE[10])
497
#define ROM_PMM_isRefGenActive \
498
((uint16_t (__cc_rom *)( void))ROM_PMMTABLE[11])
499
#define ROM_PMM_getBufferedBandgapVoltageStatus \
500
((uint16_t (__cc_rom *)( void))ROM_PMMTABLE[12])
501
#define ROM_PMM_getVariableReferenceVoltageStatus \
502
((uint16_t (__cc_rom *)( void))ROM_PMMTABLE[13])
503
#define ROM_PMM_disableTempSensor \
504
((void (__cc_rom *)( void))ROM_PMMTABLE[14])
505
#define ROM_PMM_enableTempSensor \
506
((void (__cc_rom *)( void))ROM_PMMTABLE[15])
507
#define ROM_PMM_disableExternalReference \
508
((void (__cc_rom *)( void))ROM_PMMTABLE[16])
509
#define ROM_PMM_enableExternalReference \
510
((void (__cc_rom *)( void))ROM_PMMTABLE[17])
511
#define ROM_PMM_disableInternalReference \
512
((void (__cc_rom *)( void))ROM_PMMTABLE[18])
513
#define ROM_PMM_enableInternalReference \
514
((void (__cc_rom *)( void))ROM_PMMTABLE[19])
515
#define ROM_PMM_selectVoltageReference \
516
((void (__cc_rom *)( uint8_t refV))ROM_PMMTABLE[20])
517
#define ROM_PMM_setPowerMode \
518
((void (__cc_rom *)( uint8_t mode))ROM_PMMTABLE[21])
519
520
//*****************************************************************************
521
//
522
// Macros for calling ROM functions in the SFR API.
523
//
524
//*****************************************************************************
525
#define ROM_SFR_enableInterrupt \
526
((void (__cc_rom *)( uint8_t interruptMask))ROM_SFRTABLE[0])
527
#define ROM_SFR_disableInterrupt \
528
((void (__cc_rom *)( uint8_t interruptMask))ROM_SFRTABLE[1])
529
#define ROM_SFR_getInterruptStatus \
530
((uint8_t (__cc_rom *)( uint8_t interruptFlagMask))ROM_SFRTABLE[2])
531
#define ROM_SFR_clearInterrupt \
532
((void (__cc_rom *)( uint8_t interruptFlagMask))ROM_SFRTABLE[3])
533
#define ROM_SFR_setResetPinPullResistor \
534
((void (__cc_rom *)( uint16_t pullResistorSetup))ROM_SFRTABLE[4])
535
#define ROM_SFR_setNMIEdge \
536
((void (__cc_rom *)( uint16_t edgeDirection))ROM_SFRTABLE[5])
537
#define ROM_SFR_setResetNMIPinFunction \
538
((void (__cc_rom *)( uint8_t resetPinFunction))ROM_SFRTABLE[6])
539
540
//*****************************************************************************
541
//
542
// Macros for calling ROM functions in the SYSCTL API.
543
//
544
//*****************************************************************************
545
#define ROM_SysCtl_enableDedicatedJTAGPins \
546
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[0])
547
#define ROM_SysCtl_getBSLEntryIndication \
548
((uint8_t (__cc_rom *)( void))ROM_SYSCTLTABLE[1])
549
#define ROM_SysCtl_enablePMMAccessProtect \
550
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[2])
551
#define ROM_SysCtl_enableRAMBasedInterruptVectors \
552
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[3])
553
#define ROM_SysCtl_disableRAMBasedInterruptVectors \
554
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[4])
555
#define ROM_SysCtl_enableBSLProtect \
556
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[5])
557
#define ROM_SysCtl_disableBSLProtect \
558
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[6])
559
#define ROM_SysCtl_enableBSLMemory \
560
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[7])
561
#define ROM_SysCtl_disableBSLMemory \
562
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[8])
563
#define ROM_SysCtl_setRAMAssignedToBSL \
564
((void (__cc_rom *)( uint8_t BSLRAMAssignment))ROM_SYSCTLTABLE[9])
565
#define ROM_SysCtl_initJTAGMailbox \
566
((void (__cc_rom *)( uint8_t mailboxSizeSelect, \
567
uint8_t autoClearInboxFlagSelect))ROM_SYSCTLTABLE[10])
568
#define ROM_SysCtl_getJTAGMailboxFlagStatus \
569
((uint8_t (__cc_rom *)( uint8_t mailboxFlagMask))ROM_SYSCTLTABLE[11])
570
#define ROM_SysCtl_clearJTAGMailboxFlagStatus \
571
((void (__cc_rom *)( uint8_t mailboxFlagMask))ROM_SYSCTLTABLE[12])
572
#define ROM_SysCtl_getJTAGInboxMessage16Bit \
573
((uint16_t (__cc_rom *)( uint8_t inboxSelect))ROM_SYSCTLTABLE[13])
574
#define ROM_SysCtl_getJTAGInboxMessage32Bit \
575
((uint32_t (__cc_rom *)( void))ROM_SYSCTLTABLE[14])
576
#define ROM_SysCtl_setJTAGOutgoingMessage16Bit \
577
((void (__cc_rom *)( uint8_t outboxSelect, \
578
uint16_t outgoingMessage))ROM_SYSCTLTABLE[15])
579
#define ROM_SysCtl_setJTAGOutgoingMessage32Bit \
580
((void (__cc_rom *)( uint32_t outgoingMessage))ROM_SYSCTLTABLE[16])
581
#define ROM_SysCtl_protectFRAMWrite \
582
((void (__cc_rom *)( uint8_t writeProtect))ROM_SYSCTLTABLE[17])
583
#define ROM_SysCtl_enableFRAMWrite \
584
((void (__cc_rom *)( uint8_t writeEnable))ROM_SYSCTLTABLE[18])
585
#define ROM_SysCtl_setInfraredConfig \
586
((void (__cc_rom *)( uint8_t dataSource, \
587
uint8_t mode, \
588
uint8_t polarity))ROM_SYSCTLTABLE[19])
589
#define ROM_SysCtl_enableInfrared \
590
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[20])
591
#define ROM_SysCtl_disableInfrared \
592
((void (__cc_rom *)( void))ROM_SYSCTLTABLE[21])
593
#define ROM_SysCtl_getInfraredData \
594
((uint8_t (__cc_rom *)( void))ROM_SYSCTLTABLE[22])
595
#define ROM_SysCtl_setFRWPOA \
596
((void (__cc_rom *)( uint8_t offsetAddress))ROM_SYSCTLTABLE[23])
597
598
//*****************************************************************************
599
//
600
// Macros for calling ROM functions in the TIMER_B API.
601
//
602
//*****************************************************************************
603
#define ROM_Timer_B_startCounter \
604
((void (__cc_rom *)( uint16_t baseAddress, \
605
uint16_t timerMode))ROM_TIMER_BTABLE[0])
606
#define ROM_Timer_B_initContinuousMode \
607
((void (__cc_rom *)( uint16_t baseAddress, \
608
Timer_B_initContinuousModeParam *param))ROM_TIMER_BTABLE[1])
609
#define ROM_Timer_B_initUpMode \
610
((void (__cc_rom *)( uint16_t baseAddress, \
611
Timer_B_initUpModeParam *param))ROM_TIMER_BTABLE[2])
612
#define ROM_Timer_B_initUpDownMode \
613
((void (__cc_rom *)( uint16_t baseAddress, \
614
Timer_B_initUpDownModeParam *param))ROM_TIMER_BTABLE[3])
615
#define ROM_Timer_B_initCaptureMode \
616
((void (__cc_rom *)( uint16_t baseAddress, \
617
Timer_B_initCaptureModeParam *param))ROM_TIMER_BTABLE[4])
618
#define ROM_Timer_B_initCompareMode \
619
((void (__cc_rom *)( uint16_t baseAddress, \
620
Timer_B_initCompareModeParam *param))ROM_TIMER_BTABLE[5])
621
#define ROM_Timer_B_enableInterrupt \
622
((void (__cc_rom *)( uint16_t baseAddress))ROM_TIMER_BTABLE[6])
623
#define ROM_Timer_B_disableInterrupt \
624
((void (__cc_rom *)( uint16_t baseAddress))ROM_TIMER_BTABLE[7])
625
#define ROM_Timer_B_getInterruptStatus \
626
((uint32_t (__cc_rom *)( uint16_t baseAddress))ROM_TIMER_BTABLE[8])
627
#define ROM_Timer_B_enableCaptureCompareInterrupt \
628
((void (__cc_rom *)( uint16_t baseAddress, \
629
uint16_t captureCompareRegister))ROM_TIMER_BTABLE[9])
630
#define ROM_Timer_B_disableCaptureCompareInterrupt \
631
((void (__cc_rom *)( uint16_t baseAddress, \
632
uint16_t captureCompareRegister))ROM_TIMER_BTABLE[10])
633
#define ROM_Timer_B_getCaptureCompareInterruptStatus \
634
((uint32_t (__cc_rom *)( uint16_t baseAddress, \
635
uint16_t captureCompareRegister, \
636
uint16_t mask))ROM_TIMER_BTABLE[11])
637
#define ROM_Timer_B_clear \
638
((void (__cc_rom *)( uint16_t baseAddress))ROM_TIMER_BTABLE[12])
639
#define ROM_Timer_B_getSynchronizedCaptureCompareInput \
640
((uint8_t (__cc_rom *)( uint16_t baseAddress, \
641
uint16_t captureCompareRegister, \
642
uint16_t synchronized))ROM_TIMER_BTABLE[13])
643
#define ROM_Timer_B_getOutputForOutputModeOutBitValue \
644
((uint8_t (__cc_rom *)( uint16_t baseAddress, \
645
uint16_t captureCompareRegister))ROM_TIMER_BTABLE[14])
646
#define ROM_Timer_B_getCaptureCompareCount \
647
((uint16_t (__cc_rom *)( uint16_t baseAddress, \
648
uint16_t captureCompareRegister))ROM_TIMER_BTABLE[15])
649
#define ROM_Timer_B_setOutputForOutputModeOutBitValue \
650
((void (__cc_rom *)( uint16_t baseAddress, \
651
uint16_t captureCompareRegister, \
652
uint8_t outputModeOutBitValue))ROM_TIMER_BTABLE[16])
653
#define ROM_Timer_B_outputPWM \
654
((void (__cc_rom *)( uint16_t baseAddress, \
655
Timer_B_outputPWMParam *param))ROM_TIMER_BTABLE[17])
656
#define ROM_Timer_B_stop \
657
((void (__cc_rom *)( uint16_t baseAddress))ROM_TIMER_BTABLE[18])
658
#define ROM_Timer_B_setCompareValue \
659
((void (__cc_rom *)( uint16_t baseAddress, \
660
uint16_t compareRegister, \
661
uint16_t compareValue))ROM_TIMER_BTABLE[19])
662
#define ROM_Timer_B_clearTimerInterrupt \
663
((void (__cc_rom *)( uint16_t baseAddress))ROM_TIMER_BTABLE[20])
664
#define ROM_Timer_B_clearCaptureCompareInterrupt \
665
((void (__cc_rom *)( uint16_t baseAddress, \
666
uint16_t captureCompareRegister))ROM_TIMER_BTABLE[21])
667
#define ROM_Timer_B_selectCounterLength \
668
((void (__cc_rom *)( uint16_t baseAddress, \
669
uint16_t counterLength))ROM_TIMER_BTABLE[22])
670
#define ROM_Timer_B_selectLatchingGroup \
671
((void (__cc_rom *)( uint16_t baseAddress, \
672
uint16_t groupLatch))ROM_TIMER_BTABLE[23])
673
#define ROM_Timer_B_initCompareLatchLoadEvent \
674
((void (__cc_rom *)( uint16_t baseAddress, \
675
uint16_t compareRegister, \
676
uint16_t compareLatchLoadEvent))ROM_TIMER_BTABLE[24])
677
#define ROM_Timer_B_getCounterValue \
678
((uint16_t (__cc_rom *)( uint16_t baseAddress))ROM_TIMER_BTABLE[25])
679
#define ROM_Timer_B_setOutputMode \
680
((void (__cc_rom *)( uint16_t baseAddress, \
681
uint16_t compareRegister, \
682
uint16_t compareOutputMode))ROM_TIMER_BTABLE[26])
683
#define ROM_Timer_B_selectOutputHighImpedanceTrigger \
684
((void (__cc_rom *)( uint16_t baseAddress, \
685
uint8_t triggerSelect))ROM_TIMER_BTABLE[27])
686
#define ROM_Timer_B_remapPins \
687
((void (__cc_rom *)( uint16_t baseAddress, \
688
uint8_t pinsSelect))ROM_TIMER_BTABLE[28])
689
690
//*****************************************************************************
691
//
692
// Macros for calling ROM functions in the WDT_A API.
693
//
694
//*****************************************************************************
695
#define ROM_WDT_A_hold \
696
((void (__cc_rom *)( uint16_t baseAddress))ROM_WDT_ATABLE[0])
697
#define ROM_WDT_A_start \
698
((void (__cc_rom *)( uint16_t baseAddress))ROM_WDT_ATABLE[1])
699
#define ROM_WDT_A_resetTimer \
700
((void (__cc_rom *)( uint16_t baseAddress))ROM_WDT_ATABLE[2])
701
#define ROM_WDT_A_initWatchdogTimer \
702
((void (__cc_rom *)( uint16_t baseAddress, \
703
uint8_t clockSelect, \
704
uint8_t clockDivider))ROM_WDT_ATABLE[3])
705
#define ROM_WDT_A_initIntervalTimer \
706
((void (__cc_rom *)( uint16_t baseAddress, \
707
uint8_t clockSelect, \
708
uint8_t clockDivider))ROM_WDT_ATABLE[4])
709
710
711
#else
712
#error "Small code model is not supported because ROM lives above 64k memory."
713
#endif // large model only
714
#endif // __ROM_DRIVERLIB_H__
Copyright 2020, Texas Instruments Incorporated