2 * Copyright (c) 2014, Texas Instruments Incorporated
\r
3 * All rights reserved.
\r
5 * Redistribution and use in source and binary forms, with or without
\r
6 * modification, are permitted provided that the following conditions
\r
9 * * Redistributions of source code must retain the above copyright
\r
10 * notice, this list of conditions and the following disclaimer.
\r
12 * * Redistributions in binary form must reproduce the above copyright
\r
13 * notice, this list of conditions and the following disclaimer in the
\r
14 * documentation and/or other materials provided with the distribution.
\r
16 * * Neither the name of Texas Instruments Incorporated nor the names of
\r
17 * its contributors may be used to endorse or promote products derived
\r
18 * from this software without specific prior written permission.
\r
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
\r
21 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
\r
22 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
\r
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
\r
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
\r
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
\r
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
\r
27 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
\r
28 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
\r
29 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
\r
30 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\r
32 #ifndef __HW_MEMMAP__
\r
33 #define __HW_MEMMAP__
\r
35 #define __DRIVERLIB_MSP430FR5XX_6XX_FAMILY__
\r
36 //*****************************************************************************
\r
38 // Include device specific header file
\r
40 //*****************************************************************************
\r
41 #if defined (__MSP430FR6989__)
\r
42 #include <msp430fr6989.h>
\r
47 #if defined(__IAR_SYSTEMS_ICC__)
\r
48 #include "../deprecated/IAR/msp430fr5xx_6xxgeneric.h"
\r
49 #elif defined(__TI_COMPILER_VERSION__)
\r
50 #include "../deprecated/CCS/msp430fr5xx_6xxgeneric.h"
\r
51 #elif defined(__GNUC__)
\r
52 #include "msp430fr5xx_6xxgeneric.h"
\r
54 #include "msp430fr5xx_6xxgeneric.h"
\r
58 #include "stdbool.h"
\r
60 //*****************************************************************************
\r
62 // SUCCESS and FAILURE for API return value
\r
64 //*****************************************************************************
\r
65 #define STATUS_SUCCESS 0x01
\r
66 #define STATUS_FAIL 0x00
\r
68 //*****************************************************************************
\r
70 // The following are defines for the base address of the peripherals.
\r
72 //*****************************************************************************
\r
73 #ifdef __MSP430_HAS_ADC10_A__
\r
75 ADC10_A_BASE __MSP430_BASEADDRESS_ADC10_A__
\r
77 #ifdef __MSP430_HAS_ADC10_B__
\r
79 ADC10_B_BASE __MSP430_BASEADDRESS_ADC10_B__
\r
81 #ifdef __MSP430_HAS_ADC12_B__
\r
83 ADC12_B_BASE __MSP430_BASEADDRESS_ADC12_B__
\r
85 #ifdef __MSP430_HAS_ADC12_PLUS__
\r
87 ADC12_A_BASE __MSP430_BASEADDRESS_ADC12_PLUS__
\r
89 #ifdef __MSP430_HAS_AES256__
\r
91 AES256_BASE __MSP430_BASEADDRESS_AES256__
\r
93 #ifdef __MSP430_HAS_AES__
\r
95 AES_BASE __MSP430_BASEADDRESS_AES__
\r
97 #ifdef __MSP430_HAS_AUX_SUPPLY__
\r
99 AUX_SUPPLY_BASE __MSP430_BASEADDRESS_AUX_SUPPLY__
\r
101 #ifdef __MSP430_HAS_BACKUP_RAM__
\r
103 BAK_RAM_BASE __MSP430_BASEADDRESS_BACKUP_RAM__
\r
105 #ifdef __MSP430_HAS_BATTERY_CHARGER__
\r
107 BAK_BATT_BASE __MSP430_BASEADDRESS_BATTERY_CHARGER__
\r
109 #ifdef __MSP430_HAS_CAP_SENSE_IO_0__
\r
111 CAP_TOUCH_0_BASE __MSP430_BASEADDRESS_CAP_SENSE_IO_0__
\r
113 #ifdef __MSP430_HAS_CAP_SENSE_IO_1__
\r
115 CAP_TOUCH_1_BASE __MSP430_BASEADDRESS_CAP_SENSE_IO_1__
\r
117 #ifdef __MSP430_HAS_COMPB__
\r
119 COMP_B_BASE __MSP430_BASEADDRESS_COMPB__
\r
121 #ifdef __MSP430_HAS_COMPD__
\r
123 COMP_D_BASE __MSP430_BASEADDRESS_COMPD__
\r
125 #ifdef __MSP430_HAS_COMP_E__
\r
127 COMP_E_BASE __MSP430_BASEADDRESS_COMP_E__
\r
129 #ifdef __MSP430_HAS_COMPE__
\r
131 __MSP430_BASEADDRESS_COMP_E__ __MSP430_BASEADDRESS_COMPE__
\r
132 #ifndef COMP_E_VECTOR
\r
133 #ifdef COMP_B_VECTOR
\r
134 #define COMP_E_VECTOR COMP_B_VECTOR
\r
138 #ifndef COMP_B_VECTOR
\r
139 #ifdef COMP_E_VECTOR
\r
140 #define COMP_B_VECTOR COMP_E_VECTOR
\r
145 #ifdef __MSP430_HAS_COMP_E__
\r
147 __MSP430_BASEADDRESS_COMPE__ __MSP430_BASEADDRESS_COMP_E__
\r
148 #ifndef COMP_B_VECTOR
\r
149 #ifdef COMP_E_VECTOR
\r
150 #define COMP_B_VECTOR COMP_E_VECTOR
\r
153 #ifndef COMP_E_VECTOR
\r
154 #ifdef COMP_B_VECTOR
\r
155 #define COMP_E_VECTOR COMP_B_VECTOR
\r
159 #ifdef __MSP430_HAS_CRC__
\r
161 CRC_BASE __MSP430_BASEADDRESS_CRC__
\r
163 #ifdef __MSP430_HAS_CS__
\r
165 #ifndef __MSP430_BASEADDRESS_CS_A__
\r
166 #define __MSP430_BASEADDRESS_CS_A__ __MSP430_BASEADDRESS_CS__
\r
169 #ifdef __MSP430_HAS_CS_A__
\r
171 CS_BASE __MSP430_BASEADDRESS_CS_A__
\r
172 #ifndef __MSP430_BASEADDRESS_CS__
\r
173 #define __MSP430_BASEADDRESS_CS__ __MSP430_BASEADDRESS_CS_A__
\r
176 #ifdef __MSP430_HAS_DAC12_2__
\r
178 DAC12_A_BASE __MSP430_BASEADDRESS_DAC12_2__
\r
180 #ifdef __MSP430_HAS_DMAX_3__
\r
182 DMA_BASE __MSP430_BASEADDRESS_DMAX_3__
\r
184 #ifdef __MSP430_HAS_DMAX_6__
\r
186 DMA_BASE __MSP430_BASEADDRESS_DMAX_6__
\r
188 #ifdef __MSP430_HAS_EUSCI_A0__
\r
190 EUSCI_A0_BASE __MSP430_BASEADDRESS_EUSCI_A0__
\r
192 #ifdef __MSP430_HAS_EUSCI_A1__
\r
194 EUSCI_A1_BASE __MSP430_BASEADDRESS_EUSCI_A1__
\r
196 #ifdef __MSP430_HAS_EUSCI_A2__
\r
198 EUSCI_A2_BASE __MSP430_BASEADDRESS_EUSCI_A2__
\r
200 #ifdef __MSP430_HAS_EUSCI_A3__
\r
202 EUSCI_A3_BASE __MSP430_BASEADDRESS_EUSCI_A3__
\r
204 #ifdef __MSP430_HAS_EUSCI_B0__
\r
206 EUSCI_B0_BASE __MSP430_BASEADDRESS_EUSCI_B0__
\r
208 #ifdef __MSP430_HAS_EUSCI_B1__
\r
210 EUSCI_B1_BASE __MSP430_BASEADDRESS_EUSCI_B1__
\r
212 #ifdef __MSP430_HAS_FLASH__
\r
214 FLASH_BASE __MSP430_BASEADDRESS_FLASH__
\r
216 #ifdef __MSP430_HAS_FRAM_FR5XX__
\r
218 FRAM_BASE __MSP430_BASEADDRESS_FRAM_FR5XX__
\r
220 #ifdef __MSP430_HAS_FRAM__
\r
222 FRAM_BASE __MSP430_BASEADDRESS_FRAM__
\r
224 #ifdef __MSP430_HAS_LCD_B__
\r
226 LCD_B_BASE __MSP430_BASEADDRESS_LCD_B__
\r
228 #ifdef __MSP430_HAS_LCD_C__
\r
230 LCD_C_BASE __MSP430_BASEADDRESS_LCD_C__
\r
232 #ifdef __MSP430_HAS_MPU_A__
\r
234 MPU_BASE __MSP430_BASEADDRESS_MPU_A__
\r
235 #ifndef __MSP430_BASEADDRESS_MPU__
\r
236 #define __MSP430_BASEADDRESS_MPU__ __MSP430_BASEADDRESS_MPU_A__
\r
239 #ifdef __MSP430_HAS_MPU__
\r
241 #ifndef __MSP430_BASEADDRESS_MPU_A__
\r
242 #define __MSP430_BASEADDRESS_MPU_A__ __MSP430_BASEADDRESS_MPU__
\r
245 #ifdef __MSP430_HAS_MPY32__
\r
247 MPY32_BASE __MSP430_BASEADDRESS_MPY32__
\r
249 #ifdef __MSP430_HAS_PMM_FR5xx__
\r
251 PMM_BASE __MSP430_BASEADDRESS_PMM_FR5xx__
\r
253 #ifdef __MSP430_HAS_PMM_FRAM__
\r
255 PMM_BASE __MSP430_BASEADDRESS_PMM_FRAM__
\r
257 #ifdef __MSP430_HAS_PMM__
\r
259 PMM_BASE __MSP430_BASEADDRESS_PMM__
\r
261 #ifdef __MSP430_HAS_PORT10_R__
\r
263 P10_BASE __MSP430_BASEADDRESS_PORT10_R__
\r
265 #ifdef __MSP430_HAS_PORT11_R__
\r
267 P11_BASE __MSP430_BASEADDRESS_PORT11_R__
\r
269 #ifdef __MSP430_HAS_PORT1_MAPPING__
\r
271 P1MAP_BASE __MSP430_BASEADDRESS_PORT1_MAPPING__
\r
273 #ifdef __MSP430_HAS_PORT1_R__
\r
275 P1_BASE __MSP430_BASEADDRESS_PORT1_R__
\r
277 #ifdef __MSP430_HAS_PORT2_MAPPING__
\r
279 P2MAP_BASE __MSP430_BASEADDRESS_PORT2_MAPPING__
\r
281 #ifdef __MSP430_HAS_PORT2_R__
\r
283 P2_BASE __MSP430_BASEADDRESS_PORT2_R__
\r
285 #ifdef __MSP430_HAS_PORT3_MAPPING__
\r
287 P3MAP_BASE __MSP430_BASEADDRESS_PORT3_MAPPING__
\r
289 #ifdef __MSP430_HAS_PORT3_R__
\r
291 P3_BASE __MSP430_BASEADDRESS_PORT3_R__
\r
293 #ifdef __MSP430_HAS_PORT4_MAPPING__
\r
295 P4MAP_BASE __MSP430_BASEADDRESS_PORT4_MAPPING__
\r
297 #ifdef __MSP430_HAS_PORT4_R__
\r
299 P4_BASE __MSP430_BASEADDRESS_PORT4_R__
\r
301 #ifdef __MSP430_HAS_PORT5_R__
\r
303 P5_BASE __MSP430_BASEADDRESS_PORT5_R__
\r
305 #ifdef __MSP430_HAS_PORT6_R__
\r
307 P6_BASE __MSP430_BASEADDRESS_PORT6_R__
\r
309 #ifdef __MSP430_HAS_PORT7_R__
\r
311 P7_BASE __MSP430_BASEADDRESS_PORT7_R__
\r
313 #ifdef __MSP430_HAS_PORT8_R__
\r
315 P8_BASE __MSP430_BASEADDRESS_PORT8_R__
\r
317 #ifdef __MSP430_HAS_PORT9_R__
\r
319 P9_BASE __MSP430_BASEADDRESS_PORT9_R__
\r
321 #ifdef __MSP430_HAS_PORTA_R__
\r
323 PA_BASE __MSP430_BASEADDRESS_PORTA_R__
\r
325 #ifdef __MSP430_HAS_PORTB_R__
\r
327 PB_BASE __MSP430_BASEADDRESS_PORTB_R__
\r
329 #ifdef __MSP430_HAS_PORTC_R__
\r
331 PC_BASE __MSP430_BASEADDRESS_PORTC_R__
\r
333 #ifdef __MSP430_HAS_PORTD_R__
\r
335 PD_BASE __MSP430_BASEADDRESS_PORTD_R__
\r
337 #ifdef __MSP430_HAS_PORTE_R__
\r
339 PE_BASE __MSP430_BASEADDRESS_PORTE_R__
\r
341 #ifdef __MSP430_HAS_PORTF_R__
\r
343 PF_BASE __MSP430_BASEADDRESS_PORTF_R__
\r
345 #ifdef __MSP430_HAS_PORTJ_R__
\r
347 PJ_BASE __MSP430_BASEADDRESS_PORTJ_R__
\r
349 #ifdef __MSP430_HAS_PORT_MAPPING__
\r
351 PMAP_CTRL_BASE __MSP430_BASEADDRESS_PORT_MAPPING__
\r
353 #ifdef __MSP430_HAS_PU__
\r
355 LDOPWR_BASE __MSP430_BASEADDRESS_PU__
\r
357 #ifdef __MSP430_HAS_RC__
\r
359 RAM_BASE __MSP430_BASEADDRESS_RC__
\r
361 #ifdef __MSP430_HAS_REF_A__
\r
363 REF_A_BASE __MSP430_BASEADDRESS_REF_A__
\r
365 #ifdef __MSP430_HAS_REF__
\r
367 REF_BASE __MSP430_BASEADDRESS_REF__
\r
369 #ifdef __MSP430_HAS_RTC_B__
\r
371 RTC_B_BASE __MSP430_BASEADDRESS_RTC_B__
\r
373 #ifdef __MSP430_HAS_RTC_C__
\r
375 RTC_C_BASE __MSP430_BASEADDRESS_RTC_C__
\r
377 #ifdef __MSP430_HAS_RTC_D__
\r
379 RTC_D_BASE __MSP430_BASEADDRESS_RTC_D__
\r
381 #ifdef __MSP430_HAS_RTC__
\r
383 RTC_A_BASE __MSP430_BASEADDRESS_RTC__
\r
385 #ifdef __MSP430_HAS_SD24_B__
\r
387 SD24_BASE __MSP430_BASEADDRESS_SD24_B__
\r
389 #ifdef __MSP430_HAS_SFR__
\r
391 SFR_BASE __MSP430_BASEADDRESS_SFR__
\r
393 #ifdef __MSP430_HAS_SYS__
\r
395 SYS_BASE __MSP430_BASEADDRESS_SYS__
\r
397 #ifdef __MSP430_HAS_T0A3__
\r
399 TIMER_A0_BASE __MSP430_BASEADDRESS_T0A3__
\r
401 #ifdef __MSP430_HAS_T0A5__
\r
403 TIMER_A0_BASE __MSP430_BASEADDRESS_T0A5__
\r
405 #ifdef __MSP430_HAS_T0B3__
\r
407 TIMER_B0_BASE __MSP430_BASEADDRESS_T0B3__
\r
409 #ifdef __MSP430_HAS_T0B7__
\r
411 TIMER_B0_BASE __MSP430_BASEADDRESS_T0B7__
\r
413 #ifdef __MSP430_HAS_T0D3__
\r
415 TIMER_D0_BASE __MSP430_BASEADDRESS_T0D3__
\r
417 #ifdef __MSP430_HAS_T1A2__
\r
419 TIMER_A1_BASE __MSP430_BASEADDRESS_T1A2__
\r
421 #ifdef __MSP430_HAS_T1A3__
\r
423 TIMER_A1_BASE __MSP430_BASEADDRESS_T1A3__
\r
425 #ifdef __MSP430_HAS_T1B3__
\r
427 TIMER_B1_BASE __MSP430_BASEADDRESS_T1B3__
\r
429 #ifdef __MSP430_HAS_T1D3__
\r
431 TIMER_D1_BASE __MSP430_BASEADDRESS_T1D3__
\r
433 #ifdef __MSP430_HAS_T2A2__
\r
435 TIMER_A2_BASE __MSP430_BASEADDRESS_T2A2__
\r
437 #ifdef __MSP430_HAS_T2A3__
\r
439 TIMER_A2_BASE __MSP430_BASEADDRESS_T2A3__
\r
441 #ifdef __MSP430_HAS_T2B3__
\r
443 TIMER_B2_BASE __MSP430_BASEADDRESS_T2B3__
\r
445 #ifdef __MSP430_HAS_T3A2__
\r
447 TIMER_A3_BASE __MSP430_BASEADDRESS_T3A2__
\r
449 #ifdef __MSP430_HAS_TEV0__
\r
451 TEC0_BASE __MSP430_BASEADDRESS_TEV0__
\r
453 #ifdef __MSP430_HAS_TEV1__
\r
455 TEC1_BASE __MSP430_BASEADDRESS_TEV1__
\r
457 #ifdef __MSP430_HAS_UCS__
\r
459 UCS_BASE __MSP430_BASEADDRESS_UCS__
\r
461 #ifdef __MSP430_HAS_USB__
\r
463 USB_BASE __MSP430_BASEADDRESS_USB__
\r
465 #ifdef __MSP430_HAS_USCI_A0__
\r
467 USCI_A0_BASE __MSP430_BASEADDRESS_USCI_A0__
\r
469 #ifdef __MSP430_HAS_USCI_A1__
\r
471 USCI_A1_BASE __MSP430_BASEADDRESS_USCI_A1__
\r
473 #ifdef __MSP430_HAS_USCI_A2__
\r
475 USCI_A2_BASE __MSP430_BASEADDRESS_USCI_A2__
\r
477 #ifdef __MSP430_HAS_USCI_A3__
\r
479 USCI_A3_BASE __MSP430_BASEADDRESS_USCI_A3__
\r
481 #ifdef __MSP430_HAS_USCI_B0__
\r
483 USCI_B0_BASE __MSP430_BASEADDRESS_USCI_B0__
\r
485 #ifdef __MSP430_HAS_USCI_B1__
\r
487 USCI_B1_BASE __MSP430_BASEADDRESS_USCI_B1__
\r
489 #ifdef __MSP430_HAS_USCI_B2__
\r
491 USCI_B2_BASE __MSP430_BASEADDRESS_USCI_B2__
\r
493 #ifdef __MSP430_HAS_USCI_B3__
\r
495 USCI_B3_BASE __MSP430_BASEADDRESS_USCI_B3__
\r
497 #ifdef __MSP430_HAS_WDT_A__
\r
499 WDT_A_BASE __MSP430_BASEADDRESS_WDT_A__
\r
502 #endif // #ifndef __HW_MEMMAP__
\r