OSDN Git Service

V2.0
[fast-forth/master.git] / MSP430FR5x6x.inc
1 ; MSP430FR5x6x.inc : MSP430FR5xxx and MSP430FR6xxx declarations (MSP430FR57xx excluded)
2
3
4     .IF DEVICE = "MSP430FR5948"
5
6 ; ----------------------------------------------------------------------
7 ; MSP430FR5948 Peripheral File Map
8 ; ----------------------------------------------------------------------
9 SFR_SFR         .set 0100h           ; Special function
10 PMM_SFR         .set 0120h           ; PMM
11 FRAM_SFR        .set 0140h           ; FRAM control
12 CRC16_SFR       .set 0150h
13 WDT_A_SFR       .set 015Ch           ; Watchdog
14 CS_SFR          .set 0160h           ; Clock System
15 SYS_SFR         .set 0180h           ; SYS
16 REF_SFR         .set 01B0h           ; REF
17 PA_SFR          .set 0200h           ; PORT1/2
18 PB_SFR          .set 0220h           ; PORT3/4
19 PJ_SFR          .set 0320h           ; PORTJ
20 TA0_SFR         .set 0340h
21 TA1_SFR         .set 0380h
22 TB0_SFR         .set 03C0h
23 TA2_SFR         .set 0400h
24 CTIO0_SFR       .set 0430h           ; Capacitive Touch IO
25 TA3_SFR         .set 0440h
26 CTIO1_SFR       .set 0470h           ; Capacitive Touch IO
27 RTC_B_SFR       .set 04A0h
28 MPY_SFR         .set 04C0h
29 DMA_CTRL_SFR    .set 0500h
30 DMA_CHN0_SFR    .set 0510h
31 DMA_CHN1_SFR    .set 0520h
32 DMA_CHN2_SFR    .set 0530h
33 MPU_SFR         .set 05A0h           ; memory protect unit
34 eUSCI_A0_SFR    .set 05C0h           ; eUSCI_A0
35 eUSCI_A1_SFR    .set 05E0h           ; eUSCI_A1
36 eUSCI_B0_SFR    .set 0640h           ; eUSCI_B0
37 ADC12_B_SFR     .set 0800h
38 COMP_E_SFR      .set 08C0h
39 AES_SFR         .set 09C0h
40
41 ; ----------------------------------------------
42 ; MSP430FR5948 MEMORY MAP
43 ; ----------------------------------------------
44 ; 0000-0FFF = peripherals (4 KB)
45 ; 1000-17FF = ROM bootstrap loader BSL0..3 (4x512 B)
46 ; 1800-187F = FRAM info D (128 B)
47 ; 1880-18FF = FRAM info C (128 B)
48 ; 1900-197F = FRAM info B (128 B)
49 ; 1980-19FF = FRAM info A (128 B)
50 ; 1A00-1AFF = FRAM TLV device descriptor info (256 B)
51 ; 1B00-1BFF = unused (256 B)
52 ; 1C00-23FF = RAM (2KB)
53 ; 23FF-43FF = unused (8kB)
54 ; 4400-FF7F = FRAM code memory (FRAM) (MSP430FR59x8/9)
55 ; 8000-FF7F = FRAM code memory (FRAM) (MSP430FR59x7/8/9)
56 ; FF80-FFFF = FRAM interrupt vectors and signatures (FRAM)
57
58 ; ----------------------------------------------
59 PAGESIZE        .equ 512         ; MPU unit
60 ; ----------------------------------------------
61 ; BSL                         
62 ; ----------------------------------------------
63 BSL             .equ 1000h
64 ; ----------------------------------------------
65 ; FRAM                          ; INFO B, A, TLV
66 ; ----------------------------------------------
67 INFOSTART       .equ 01800h
68 INFODSTART      .equ 01800h
69 INFODEND        .equ 0187Fh
70 INFOCSTART      .equ 01880h
71 INFOCEND        .equ 018FFh
72 INFOBSTART      .equ 01900h
73 INFOBEND        .equ 0197Fh
74 INFOASTART      .equ 01980h
75 INFOAEND        .equ 019FFh
76 TLVSTART        .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
77 TLVEND          .equ 01AFFh      ;
78 ; ----------------------------------------------
79 ; RAM
80 ; ----------------------------------------------
81 RAMSTART        .equ 01C00h
82 RAMEND          .equ 023FFh
83 ; ----------------------------------------------
84 ; FRAM
85 ; ----------------------------------------------
86 PROGRAMSTART    .equ 04400h      ; Code space start
87 FRAMEND         .equ 0FFFFh      ; 48 k FRAM
88 SIGNATURES      .equ 0FF80h      ; JTAG/BSL signatures
89 JTAG_SIG1       .equ 0FF80h      ; if 0, enable JTAG/SBW
90 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG1=0xAAAA, length of password string @ JTAG_PASSWORD
91 BSL_SIG1        .equ 0FF84h      ;
92 BSL_SIG2        .equ 0FF86h      ;
93 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits max
94 IPE_SIG_VALID   .equ 0FF88h      ; one word
95 IPE_STR_PTR_SRC .equ 0FF8Ah      ; one word
96 INTVECT         .equ 0FFCCh      ; FFCC-FFFF
97 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
98 ; ----------------------------------------------
99 ;    .org    SIGNATURES
100 ;;Start of JTAG and BSL signatures
101 ;        .word   0           ; JTAG signature 1
102 ;        .word   0           ; JTAG signature 2
103 ;        .word   0;5555h     ; BSL signature 1; disable BSL
104 ;        .word   0           ; BSL signature 2
105
106 ; ----------------------------------------------
107 ; Interrupt Vectors and signatures - MSP430FR5948
108 ; ----------------------------------------------
109
110     .org    INTVECT         ; FFCC-FFFF 25 vectors + reset
111          .word  reset       ; $FFCC  -  AES
112          .word  reset       ; $FFCE  -  RTC_B
113          .word  reset       ; $FFD0  -  I/O Port 4
114          .word  reset       ; $FFD2  -  I/O Port 3
115          .word  reset       ; $FFD4  -  TB2_1
116          .word  reset       ; $FFD6  -  TB2_0
117          .word  reset       ; $FFD8  -  I/O Port P2
118          .word  reset       ; $FFDA  -  TB1_1
119          .word  reset       ; $FFDC  -  TB1_0
120          .word  reset       ; $FFDE  -  I/O Port P1
121
122
123 ;    .org BSL_PASSWORD      ;Start of BSL PASSWORD
124          .word  reset       ; $FFE0  -  TA1_1
125          .word  reset       ; $FFE2  -  TA1_0
126          .word  reset       ; $FFE4  -  DMA
127          .word  reset       ; $FFE6  -  eUSCI_A1
128          .word  reset       ; $FFE8  -  TA0_1
129          .word  reset       ; $FFEA  -  TA0_0
130          .word  reset       ; $FFEC  -  ADC12_B
131          .word  reset       ; $FFEE  -  eUSCI_B0
132 TERMVEC .word  TERMINAL_INT ; $FFF0  -  eUSCI_A0
133          .word  reset       ; $FFF2  -  Watchdog
134          .word  reset       ; $FFF4  -  TB0_1
135          .word  reset       ; $FFF6  -  TB0_0
136          .word  reset       ; $FFF8  -  COMP_D
137          .word  reset       ; $FFFA  -  userNMI
138          .word  reset       ; $FFFC  -  sysNMI
139 RST_ADR  .word  reset       ; $FFFE  -  reset
140
141
142 ; ----------------------------------------------------------------------
143 ; POWER ON RESET AND INITIALIZATION : RTC REGISTERS
144 ; ----------------------------------------------------------------------
145 RTC_B   ; declare RTC type
146 RTCCTL01      .equ RTC_B_SFR + 00h
147 RTCCTL0       .equ RTC_B_SFR + 00h
148 RTCCTL1       .equ RTC_B_SFR + 01h
149 RTCCTL23      .equ RTC_B_SFR + 02h
150 RTCPS0CTL     .equ RTC_B_SFR + 08h
151 RTCPS1CTL     .equ RTC_B_SFR + 0Ah
152 RTCPS         .equ RTC_B_SFR + 0Ch
153 RTCIV         .equ RTC_B_SFR + 0Eh
154 RTCSEC        .equ RTC_B_SFR + 10h
155 RTCMIN        .equ RTC_B_SFR + 11h
156 RTCHOUR       .equ RTC_B_SFR + 12h
157 RTCDOW        .equ RTC_B_SFR + 13h
158 RTCDAY        .equ RTC_B_SFR + 14h
159 RTCMON        .equ RTC_B_SFR + 15h
160 RTCYEAR       .equ RTC_B_SFR + 16h
161
162 RTCHOLD       .equ 40h
163 RTCRDY        .equ 10h
164
165
166     .ENDIF ; MSP430FR5948
167
168
169
170     .IF DEVICE = "MSP430FR5969"
171
172 ; ----------------------------------------------------------------------
173 ; MSP430FR5969 Peripheral File Map
174 ; ----------------------------------------------------------------------
175 SFR_SFR         .set 0100h           ; Special function
176 PMM_SFR         .set 0120h           ; PMM
177 FRAM_SFR        .set 0140h           ; FRAM control
178 CRC16_SFR       .set 0150h
179 WDT_A_SFR       .set 015Ch           ; Watchdog
180 CS_SFR          .set 0160h           ; Clock System
181 SYS_SFR         .set 0180h           ; SYS
182 REF_SFR         .set 01B0h           ; REF
183 PA_SFR          .set 0200h           ; PORT1/2
184 PB_SFR          .set 0220h           ; PORT3/4
185 PJ_SFR          .set 0320h           ; PORTJ
186 TA0_SFR         .set 0340h
187 TA1_SFR         .set 0380h
188 TB0_SFR         .set 03C0h
189 TA2_SFR         .set 0400h
190 CTIO0_SFR       .set 0430h           ; Capacitive Touch IO
191 TA3_SFR         .set 0440h
192 CTIO1_SFR       .set 0470h           ; Capacitive Touch IO
193 RTC_B_SFR       .set 04A0h
194 MPY_SFR         .set 04C0h
195 DMA_CTRL_SFR    .set 0500h
196 DMA_CHN0_SFR    .set 0510h
197 DMA_CHN1_SFR    .set 0520h
198 DMA_CHN2_SFR    .set 0530h
199 MPU_SFR         .set 05A0h           ; memory protect unit
200 eUSCI_A0_SFR    .set 05C0h           ; eUSCI_A0
201 eUSCI_A1_SFR    .set 05E0h           ; eUSCI_A1
202 eUSCI_B0_SFR    .set 0640h           ; eUSCI_B0
203 ADC12_B_SFR     .set 0800h
204 COMP_E_SFR      .set 08C0h
205 AES_SFR         .set 09C0h
206
207 ; ----------------------------------------------
208 ; MSP430FR5969 MEMORY MAP
209 ; ----------------------------------------------
210 ; 0000-0FFF = peripherals (4 KB)
211 ; 1000-17FF = ROM bootstrap loader BSL0..3 (4x512 B)
212 ; 1800-187F = FRAM info D (128 B)
213 ; 1880-18FF = FRAM info C (128 B)
214 ; 1900-197F = FRAM info B (128 B)
215 ; 1980-19FF = FRAM info A (128 B)
216 ; 1A00-1AFF = FRAM TLV device descriptor info (256 B)
217 ; 1B00-1BFF = unused (256 B)
218 ; 1C00-23FF = RAM (2KB)
219 ; 23FF-43FF = unused (8kB)
220 ; 4400-FF7F = FRAM code memory (FRAM) (MSP430FR59x8/9)
221 ; 8000-FF7F = FRAM code memory (FRAM) (MSP430FR59x7/8/9)
222 ; FF80-FFFF = FRAM interrupt vectors and signatures (FRAM)
223 ; 10000-13FFF = FRAM (MSP430FR59x9)
224
225 ; ----------------------------------------------
226 PAGESIZE        .equ 512         ; MPU unit
227 ; ----------------------------------------------
228 ; BSL                         
229 ; ----------------------------------------------
230 BSL             .equ 1000h
231 ; ----------------------------------------------
232 ; FRAM                          ; INFO B, A, TLV
233 ; ----------------------------------------------
234 INFOSTART       .equ 01800h
235 INFODSTART      .equ 01800h
236 INFODEND        .equ 0187Fh
237 INFOCSTART      .equ 01880h
238 INFOCEND        .equ 018FFh
239 INFOBSTART      .equ 01900h
240 INFOBEND        .equ 0197Fh
241 INFOASTART      .equ 01980h
242 INFOAEND        .equ 019FFh
243 TLVSTART        .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
244 TLVEND          .equ 01AFFh      ;
245 ; ----------------------------------------------
246 ; RAM
247 ; ----------------------------------------------
248 RAMSTART        .equ 01C00h
249 RAMEND          .equ 023FFh
250 ; ----------------------------------------------
251 ; FRAM
252 ; ----------------------------------------------
253 PROGRAMSTART    .equ 04400h      ; Code space start
254 FRAMEND         .equ 0FFFFh      ; 48 k FRAM
255 SIGNATURES      .equ 0FF80h      ; JTAG/BSL signatures
256 JTAG_SIG1       .equ 0FF80h      ; if 0, enable JTAG/SBW
257 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG1=0xAAAA, length of password string @ JTAG_PASSWORD
258 BSL_SIG1        .equ 0FF84h      ;
259 BSL_SIG2        .equ 0FF86h      ;
260 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits max
261 IPE_SIG_VALID   .equ 0FF88h      ; one word
262 IPE_STR_PTR_SRC .equ 0FF8Ah      ; one word
263 INTVECT         .equ 0FFCCh      ; FFCC-FFFF
264 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
265 ; ----------------------------------------------
266 ;    .org    SIGNATURES
267 ;;Start of JTAG and BSL signatures
268 ;        .word   0           ; JTAG signature 1
269 ;        .word   0           ; JTAG signature 2
270 ;        .word   0;5555h       ; BSL signature 1, disable BSL
271 ;        .word   0           ; BSL signature 2
272
273 ;    .org JTAG_PASSWORD     ;Start of JTAG PASSWORD
274
275     .org    INTVECT         ; FFCC-FFFF 25 vectors + reset
276          .word  reset       ; $FFCC  -  AES
277          .word  reset       ; $FFCE  -  RTC_B
278          .word  reset       ; $FFD0  -  I/O Port 4
279          .word  reset       ; $FFD2  -  I/O Port 3
280          .word  reset       ; $FFD4  -  TB2_1
281          .word  reset       ; $FFD6  -  TB2_0
282          .word  reset       ; $FFD8  -  I/O Port P2
283          .word  reset       ; $FFDA  -  TB1_1
284          .word  reset       ; $FFDC  -  TB1_0
285          .word  reset       ; $FFDE  -  I/O Port P1
286
287
288 ;    .org BSL_PASSWORD      ;Start of BSL PASSWORD
289          .word  reset       ; $FFE0  -  TA1_1
290          .word  reset       ; $FFE2  -  TA1_0
291          .word  reset       ; $FFE4  -  DMA
292          .word  reset       ; $FFE6  -  eUSCI_A1
293          .word  reset       ; $FFE8  -  TA0_1
294          .word  reset       ; $FFEA  -  TA0_0
295          .word  reset       ; $FFEC  -  ADC12_B
296          .word  reset       ; $FFEE  -  eUSCI_B0
297 TERMVEC .word  TERMINAL_INT ; $FFF0  -  eUSCI_A0
298          .word  reset       ; $FFF2  -  Watchdog
299          .word  reset       ; $FFF4  -  TB0_1
300          .word  reset       ; $FFF6  -  TB0_0
301          .word  reset       ; $FFF8  -  COMP_D
302          .word  reset       ; $FFFA  -  userNMI
303          .word  reset       ; $FFFC  -  sysNMI
304 RST_ADR  .word  reset       ; $FFFE  -  reset
305
306 ; ----------------------------------------------------------------------
307 ; POWER ON RESET AND INITIALIZATION : RTC REGISTERS
308 ; ----------------------------------------------------------------------
309 RTC_B   ; declare RTC type
310 RTCCTL01      .equ RTC_B_SFR + 00h
311 RTCCTL0       .equ RTC_B_SFR + 00h
312 RTCCTL1       .equ RTC_B_SFR + 01h
313 RTCCTL23      .equ RTC_B_SFR + 02h
314 RTCPS0CTL     .equ RTC_B_SFR + 08h
315 RTCPS1CTL     .equ RTC_B_SFR + 0Ah
316 RTCPS         .equ RTC_B_SFR + 0Ch
317 RTCIV         .equ RTC_B_SFR + 0Eh
318 RTCSEC        .equ RTC_B_SFR + 10h
319 RTCMIN        .equ RTC_B_SFR + 11h
320 RTCHOUR       .equ RTC_B_SFR + 12h
321 RTCDOW        .equ RTC_B_SFR + 13h
322 RTCDAY        .equ RTC_B_SFR + 14h
323 RTCMON        .equ RTC_B_SFR + 15h
324 RTCYEAR       .equ RTC_B_SFR + 16h
325
326 RTCHOLD       .equ 40h
327 RTCRDY        .equ 10h
328
329     .ENDIF ; MSP430FR5969
330
331
332
333
334
335
336     .IF DEVICE = "MSP430FR5994"
337
338 ; ----------------------------------------------------------------------
339 ; MSP430FR5994 Peripheral File Map
340 ; ----------------------------------------------------------------------
341 SFR_SFR         .set 0100h           ; Special function
342 PMM_SFR         .set 0120h           ; PMM
343 FRAM_SFR        .set 0140h           ; FRAM control
344 CRC16_SFR       .set 0150h
345 RAM_SFR         .set 0158h
346 WDT_A_SFR       .set 015Ch           ; Watchdog
347 CS_SFR          .set 0160h           ; Clock System
348 SYS_SFR         .set 0180h           ; SYS
349 REF_SFR         .set 01B0h           ; REF
350 PA_SFR          .set 0200h           ; PORT1/2
351 PB_SFR          .set 0220h           ; PORT3/4
352 PC_SFR          .set 0240h           ; PORT3/4
353 PD_SFR          .set 0260h           ; PORT3/4
354 PJ_SFR          .set 0320h           ; PORTJ
355 TA0_SFR         .set 0340h
356 TA1_SFR         .set 0380h
357 TB0_SFR         .set 03C0h
358 TA2_SFR         .set 0400h
359 CTIO0_SFR       .set 0430h           ; Capacitive Touch IO
360 TA3_SFR         .set 0440h
361 CTIO1_SFR       .set 0470h           ; Capacitive Touch IO
362 RTC_C_SFR       .set 04A0h
363 MPY_SFR         .set 04C0h
364 DMA_CTRL_SFR    .set 0500h
365 DMA_CHN0_SFR    .set 0510h
366 DMA_CHN1_SFR    .set 0520h
367 DMA_CHN2_SFR    .set 0530h
368 DMA_CHN3_SFR    .set 0540h
369 DMA_CHN4_SFR    .set 0550h
370 DMA_CHN5_SFR    .set 0560h
371 MPU_SFR         .set 05A0h           ; memory protect unit
372 eUSCI_A0_SFR    .set 05C0h           ; eUSCI_A0
373 eUSCI_A1_SFR    .set 05E0h           ; eUSCI_A1
374 eUSCI_A2_SFR    .set 0600h           ; eUSCI_A1
375 eUSCI_A3_SFR    .set 0620h           ; eUSCI_A1
376 eUSCI_B0_SFR    .set 0640h           ; eUSCI_B0
377 eUSCI_B1_SFR    .set 0680h           ; eUSCI_B0
378 eUSCI_B2_SFR    .set 06C0h           ; eUSCI_B0
379 eUSCI_B3_SFR    .set 0700h           ; eUSCI_B0
380 TA4_SFR         .set 07C0h
381 ADC12_B_SFR     .set 0800h
382 COMP_E_SFR      .set 08C0h
383 CRC32_SFR       .set 0980h
384 AES_SFR         .set 09C0h
385 LEA_SFR         .set 0A80h
386
387 ; ----------------------------------------------
388 ; MSP430FR5994 MEMORY MAP
389 ; ----------------------------------------------
390 ; 000A-001F = tiny RAM
391 ; 0020-0FFF = peripherals (4 KB)
392 ; 1000-17FF = ROM bootstrap loader BSL0..3 (4x512 B)
393 ; 1800-187F = FRAM info D (128 B)
394 ; 1880-18FF = FRAM info C (128 B)
395 ; 1900-197F = FRAM info B (128 B)
396 ; 1980-19FF = FRAM info A (128 B)
397 ; 1A00-1AFF = FRAM TLV device descriptor info (256 B)
398 ; 1B00-1BFF = unused (256 B)
399 ; 1C00-2BFF = RAM (4KB)
400 ; 2C00-3BFF = sharedRAM (4kB)
401 ; 4400-FF7F = FRAM code memory (FRAM) (MSP430FR59x8/9)
402 ; 8000-FF7F = FRAM code memory (FRAM) (MSP430FR59x7/8/9)
403 ; FF80-FFFF = FRAM interrupt vectors and signatures (FRAM)
404
405 ; ----------------------------------------------
406 PAGESIZE        .equ 512         ; MPU unit
407 ; ----------------------------------------------
408 ; BSL                         
409 ; ----------------------------------------------
410 BSL             .equ 1000h
411 ; ----------------------------------------------
412 ; FRAM                          ; INFO B, A, TLV
413 ; ----------------------------------------------
414 INFOSTART       .equ 01800h
415 INFODSTART      .equ 01800h
416 INFODEND        .equ 0187Fh
417 INFOCSTART      .equ 01880h
418 INFOCEND        .equ 018FFh
419 INFOBSTART      .equ 01900h
420 INFOBEND        .equ 0197Fh
421 INFOASTART      .equ 01980h
422 INFOAEND        .equ 019FFh
423 TLVSTART        .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
424 TLVEND          .equ 01AFFh      ;
425 ; ----------------------------------------------
426 ; RAM
427 ; ----------------------------------------------
428 TinyRAM         .equ 00Ah
429 TinyRAMEnd      .equ 01Fh
430 RAMSTART        .equ 01C00h
431 RAMEND          .equ 02BFFh
432 SharedRAMSTART  .equ 02C00h
433 SharedRAMEND    .equ 03BFFh
434 ; ----------------------------------------------
435 ; FRAM
436 ; ----------------------------------------------
437 PROGRAMSTART    .equ 04000h      ; Code space start
438 FRAMEND         .equ 043FFFh     ; 256 k FRAM
439 SIGNATURES      .equ 0FF80h      ; JTAG/BSL signatures
440 JTAG_SIG1       .equ 0FF80h      ; if 0, enable JTAG/SBW
441 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG1=0xAAAA, length of password string @ JTAG_PASSWORD
442 BSL_SIG1        .equ 0FF84h      ;
443 BSL_SIG2        .equ 0FF86h      ;
444 JTAG_PASSWORD   .equ 0FF88h      ; 256 bits max
445 IPE_SIG_VALID   .equ 0FF88h      ; one word
446 IPE_STR_PTR_SRC .equ 0FF8Ah      ; one word
447 INTVECT         .equ 0FFB4h      ; FFB4-FFFF
448 BSL_PASSWORD    .equ 0FFE0h      ; 256 bits
449 ; ----------------------------------------------
450 ;    .org    SIGNATURES
451 ;;Start of JTAG and BSL signatures
452 ;        .word   0           ; JTAG signature 1
453 ;        .word   0           ; JTAG signature 2
454 ;        .word   0;5555h       ; BSL signature 1, disable BSL
455 ;        .word   0           ; BSL signature 2
456
457 ;    .org JTAG_PASSWORD     ;Start of JTAG PASSWORD
458
459     .org    INTVECT         ; FFB4-FFFF 37 vectors + reset
460         .word reset         ; 0FFB4h - LEA_Vec        
461         .word reset         ; 0FFB6h - P8_Vec         
462         .word reset         ; 0FFB8h - P7_Vec         
463         .word reset         ; 0FFBAh - eUSCI_B3_Vec   
464         .word reset         ; 0FFBCh - eUSCI_B2_Vec   
465         .word reset         ; 0FFBEh - eUSCI_B1_Vec   
466         .word reset         ; 0FFC0h - eUSCI_A3_Vec   
467         .word reset         ; 0FFC2h - eUSCI_A2_Vec   
468         .word reset         ; 0FFC4h - P6_Vec         
469         .word reset         ; 0FFC6h - P5_Vec         
470         .word reset         ; 0FFC8h - TA4_x_Vec      
471         .word reset         ; 0FFCAh - TA4_0_Vec      
472         .word reset         ; 0FFCCh - AES_Vec        
473         .word reset         ; 0FFCEh - RTC_C_Vec      
474         .word reset         ; 0FFD0h - P4_Vec=        
475         .word reset         ; 0FFD2h - P3_Vec=        
476         .word reset         ; 0FFD4h - TA3_x_Vec      
477         .word reset         ; 0FFD6h - TA3_0_Vec      
478         .word reset         ; 0FFD8h - P2_Vec         
479         .word reset         ; 0FFDAh - TA2_x_Vec      
480         .word reset         ; 0FFDCh - TA2_0_Vec      
481         .word reset         ; 0FFDEh - P1_Vec=        
482 ;    .org BSL_PASSWORD      ;Start of BSL PASSWORD
483         .word reset         ; 0FFE0h - TA1_x_Vec      
484         .word reset         ; 0FFE2h - TA1_0_Vec      
485         .word reset         ; 0FFE4h - DMA_Vec        
486         .word reset         ; 0FFE6h - eUSCI_A1_Vec   
487         .word reset         ; 0FFE8h - TA0_x_Vec      
488         .word reset         ; 0FFEAh - TA0_0_Vec      
489         .word reset         ; 0FFECh - ADC12_B_Vec    
490         .word reset         ; 0FFEEh - eUSCI_B0_Vec   
491 TERMVEC .word TERMINAL_INT  ; 0FFF0h - eUSCI_A0_Vec   
492         .word reset         ; 0FFF2h - WDT_Vec        
493         .word reset         ; 0FFF4h - TB0_x_Vec      
494         .word reset         ; 0FFF6h - TB0_0_Vec      
495         .word reset         ; 0FFF8h - COMP_E_Vec     
496         .word reset         ; 0FFFAh - U_NMI_Vec      
497         .word reset         ; 0FFFCh - S_NMI_Vec      
498 RST_ADR .word reset         ; 0FFFEh - RST_Vec        
499
500
501 ; ----------------------------------------------------------------------
502 ; POWER ON RESET AND INITIALIZATION : PORT5/6
503 ; ----------------------------------------------------------------------
504
505 PCIN        .equ PC_SFR + 00h    ; Port C Input
506 PCOUT       .equ PC_SFR + 02h    ; Port C Output
507 PCDIR       .equ PC_SFR + 04h    ; Port C Direction
508 PCREN       .equ PC_SFR + 06h    ; Port C Resistor Enable
509 PCSEL0      .equ PC_SFR + 0Ah    ; Port C Selection 0
510 PCSEL1      .equ PC_SFR + 0Ch    ; Port C Selection 1
511 PCSELC      .equ PC_SFR + 16h    ; Port C Complement Selection
512 PCIES       .equ PC_SFR + 18h    ; Port C Interrupt Edge Select
513 PCIE        .equ PC_SFR + 1Ah    ; Port C Interrupt Enable
514 PCIFG       .equ PC_SFR + 1Ch    ; Port C Interrupt Flag
515
516 P5IN        .equ PC_SFR + 00h    ; Port 5 Input
517 P5OUT       .equ PC_SFR + 02h    ; Port 5 Output
518 P5DIR       .equ PC_SFR + 04h    ; Port 5 Direction
519 P5REN       .equ PC_SFR + 06h    ; Port 5 Resistor Enable
520 P5SEL0      .equ PC_SFR + 0Ah    ; Port 5 Selection 0
521 P5SEL1      .equ PC_SFR + 0Ch    ; Port 5 Selection 1
522 P5IV        .equ PC_SFR + 0Eh    ; Port 5 Interrupt Vector word 
523 P5SELC      .set PC_SFR + 16h    ; Port 5 Complement Selection
524 P5IES       .equ PC_SFR + 18h    ; Port 5 Interrupt Edge Select
525 P5IE        .equ PC_SFR + 1Ah    ; Port 5 Interrupt Enable
526 P5IFG       .equ PC_SFR + 1Ch    ; Port 5 Interrupt Flag
527
528 P6IN        .equ PC_SFR + 01h    ; Port 6 Input
529 P6OUT       .equ PC_SFR + 03h    ; Port 6 Output
530 P6DIR       .equ PC_SFR + 05h    ; Port 6 Direction
531 P6REN       .equ PC_SFR + 07h    ; Port 6 Resistor Enable
532 P6SEL0      .equ PC_SFR + 0Bh    ; Port 6 Selection 0
533 P6SEL1      .equ PC_SFR + 0Dh    ; Port 6 Selection 1
534 P6SELC      .set PC_SFR + 17h    ; Port 6 Complement Selection
535 P6IES       .equ PC_SFR + 19h    ; Port 6 Interrupt Edge Select
536 P6IE        .equ PC_SFR + 1Bh    ; Port 6 Interrupt Enable
537 P6IFG       .equ PC_SFR + 1Dh    ; Port 6 Interrupt Flag
538 P6IV        .equ PC_SFR + 1Eh    ; Port 6 Interrupt Vector word 
539
540 ; ----------------------------------------------------------------------
541 ; POWER ON RESET AND INITIALIZATION : PORT7/8
542 ; ----------------------------------------------------------------------
543
544 PDIN        .equ PD_SFR + 00h    ; Port D Input
545 PDOUT       .equ PD_SFR + 02h    ; Port D Output
546 PDDIR       .equ PD_SFR + 04h    ; Port D Direction
547 PDREN       .equ PD_SFR + 06h    ; Port D Resistor Enable
548 PDSEL0      .equ PD_SFR + 0Ah    ; Port D Selection 0
549 PDSEL1      .equ PD_SFR + 0Ch    ; Port D Selection 1
550 PDSELC      .equ PD_SFR + 16h    ; Port D Complement Selection
551 PDIES       .equ PD_SFR + 18h    ; Port D Interrupt Edge Select
552 PDIE        .equ PD_SFR + 1Ah    ; Port D Interrupt Enable
553 PDIFG       .equ PD_SFR + 1Ch    ; Port D Interrupt Flag
554
555 P7IN        .equ PD_SFR + 00h    ; Port 7 Input
556 P7OUT       .equ PD_SFR + 02h    ; Port 7 Output
557 P7DIR       .equ PD_SFR + 04h    ; Port 7 Direction
558 P7REN       .equ PD_SFR + 06h    ; Port 7 Resistor Enable
559 P7SEL0      .equ PD_SFR + 0Ah    ; Port 7 Selection 0
560 P7SEL1      .equ PD_SFR + 0Ch    ; Port 7 Selection 1
561 P7IV        .equ PD_SFR + 0Eh    ; Port 7 Interrupt Vector word 
562 P7SELC      .set PD_SFR + 16h    ; Port 7 Complement Selection
563 P7IES       .equ PD_SFR + 18h    ; Port 7 Interrupt Edge Select
564 P7IE        .equ PD_SFR + 1Ah    ; Port 7 Interrupt Enable
565 P7IFG       .equ PD_SFR + 1Ch    ; Port 7 Interrupt Flag
566
567 P8IN        .equ PD_SFR + 01h    ; Port 8 Input
568 P8OUT       .equ PD_SFR + 03h    ; Port 8 Output
569 P8DIR       .equ PD_SFR + 05h    ; Port 8 Direction
570 P8REN       .equ PD_SFR + 07h    ; Port 8 Resistor Enable
571 P8SEL0      .equ PD_SFR + 0Bh    ; Port 8 Selection 0
572 P8SEL1      .equ PD_SFR + 0Dh    ; Port 8 Selection 1
573 P8SELC      .set PD_SFR + 16h    ; Port 8 Complement Selection
574 P8IES       .equ PD_SFR + 19h    ; Port 8 Interrupt Edge Select
575 P8IE        .equ PD_SFR + 1Bh    ; Port 8 Interrupt Enable
576 P8IFG       .equ PD_SFR + 1Dh    ; Port 8 Interrupt Flag
577 P8IV        .equ PD_SFR + 1Eh    ; Port 8 Interrupt Vector word 
578
579 ; ----------------------------------------------------------------------
580 ; POWER ON RESET AND INITIALIZATION : RTC REGISTERS
581 ; ----------------------------------------------------------------------
582 RTC_C   ; declare RTC type
583 RTCCTL0_L     .set RTC_C_SFR + 00h
584 RTCCTL0_H     .set RTC_C_SFR + 01h
585 RTCCTL1       .set RTC_C_SFR + 02h
586 RTCCTL3       .set RTC_C_SFR + 03h
587 RTCOCAL       .set RTC_C_SFR + 04h
588 RTCTCMP       .set RTC_C_SFR + 06h
589 RTCPS0CTL     .set RTC_C_SFR + 08h
590 RTCPS1CTL     .set RTC_C_SFR + 0Ah
591 RTCPS         .set RTC_C_SFR + 0Ch
592 RTCIV         .set RTC_C_SFR + 0Eh
593 RTCSEC        .set RTC_C_SFR + 10h
594 RTCMIN        .set RTC_C_SFR + 11h
595 RTCHOUR       .set RTC_C_SFR + 12h
596 RTCDOW        .set RTC_C_SFR + 13h
597 RTCDAY        .set RTC_C_SFR + 14h
598 RTCMON        .set RTC_C_SFR + 15h
599 RTCYEAR       .set RTC_C_SFR + 16h
600
601
602 RTCHOLD       .set 40h
603 RTCRDY        .set 10h
604
605     .ENDIF ; MSP_EXP430FR5994
606
607
608
609
610     .IF DEVICE = "MSP430FR6989"
611
612 ; ----------------------------------------------------------------------
613 ; EXP430FR6989 Peripheral File Map
614 ; ----------------------------------------------------------------------
615 SFR_SFR         .set 0100h           ; Special function
616 PMM_SFR         .set 0120h           ; PMM
617 FRAM_SFR        .set 0140h           ; FRAM control
618 CRC16_SFR       .set 0150h
619 RAMC_SFR        .set 0158h           ; RAM controller
620 WDT_A_SFR       .set 015Ch           ; Watchdog
621 CS_SFR          .set 0160h           ; Clock System
622 SYS_SFR         .set 0180h           ; SYS
623 REF_SFR         .set 01B0h           ; shared REF
624 PA_SFR          .set 0200h           ; PORT1/2
625 PB_SFR          .set 0220h           ; PORT3/4
626 PC_SFR          .set 0240h           ; PORT5/6
627 PD_SFR          .set 0260h           ; PORT7/8
628 PE_SFR          .set 0280h           ; PORT9/10
629 PJ_SFR          .set 0320h           ; PORTJ
630 TA0_SFR         .set 0340h
631 TA1_SFR         .set 0380h
632 TB0_SFR         .set 03C0h
633 TA2_SFR         .set 0400h
634 CTIO0_SFR       .set 0430h           ; Capacitive Touch IO
635 TA3_SFR         .set 0440h
636 CTIO1_SFR       .set 0470h           ; Capacitive Touch IO
637 RTC_C_SFR       .set 04A0h
638 MPY_SFR         .set 04C0h
639 DMA_CTRL_SFR    .set 0500h
640 DMA_CHN0_SFR    .set 0510h
641 DMA_CHN1_SFR    .set 0520h
642 DMA_CHN2_SFR    .set 0530h
643 MPU_SFR         .set 05A0h           ; memory protect unit
644 eUSCI_A0_SFR    .set 05C0h           ; eUSCI_A0
645 eUSCI_A1_SFR    .set 05E0h           ; eUSCI_A1
646 eUSCI_B0_SFR    .set 0640h           ; eUSCI_B0
647 eUSCI_B1_SFR    .set 0680h           ; eUSCI_B1
648 ADC12_B_SFR     .set 0800h
649 COMP_E_SFR      .set 08C0h
650 CRC32_SFR       .set 0980h
651 AES_SFR         .set 09C0h
652 LCD_SFR         .set 0A00h
653 ESI_SFR         .set 0D00h
654 ESI_RAM         .set 0E00h          ; 128 bytes
655
656 ; ----------------------------------------------
657 ; MSP430FR6989 MEMORY MAP
658 ; ----------------------------------------------
659
660 ; 0020-0FFF = peripherals (4 KB)
661 ; 1000-17FF = BootStrap Loader BSL0..3 (ROM 4x512 B)
662 ; 1800-187F = info D (FRAM 128 B)
663 ; 1880-18FF = info C (FRAM 128 B)
664 ; 1900-197F = info B (FRAM 128 B)
665 ; 1980-19FF = info A (FRAM 128 B)
666 ; 1A00-1AFF = TLV device descriptor info (FRAM 256 B)
667 ; 1B00-1BFF = Boot memory (ROM 256 B)
668 ; 1C00-23FF = RAM (2 KB)
669 ; 2000-43FF = unused
670 ; 4400-FF7F = code memory (FRAM 47999 B)
671 ; FF80-FFFF = interrupt vectors (FRAM 128 B)
672 ; 10000-23FFF = FRAM
673 ; ----------------------------------------------
674 PAGESIZE       .equ 512         ; MPU unit
675 ; ----------------------------------------------
676 ; FRAM                          ; INFO{D,C,B,A},TLV
677 ; ----------------------------------------------
678 INFOSTART      .equ 01800h
679 INFODSTART     .equ 01800h
680 INFODEND       .equ 0187Fh
681 INFOCSTART     .equ 01880h
682 INFOCEND       .equ 018FFh
683 INFOBSTART     .equ 01900h
684 INFOBEND       .equ 0197Fh
685 INFOASTART     .equ 01980h
686 INFOAEND       .equ 019FFh
687 TLVSTAT        .equ 01A00h      ; Device Descriptor Info (Tag-Lenght-Value)
688 TLVEND         .equ 01AFFh      ;
689 ; ----------------------------------------------
690 ; RAM
691 ; ----------------------------------------------
692 RAMSTART       .equ 01C00h
693 RAMEND         .equ 023FFh
694 ; ----------------------------------------------
695 ; FRAM
696 ; ----------------------------------------------
697 PROGRAMSTART   .equ 04400h      ; Code space start
698 SIGNATURES     .equ 0FF80h      ; JTAG, BSL and IP Encapsulation signatures 1 and 2
699 JTAG_SIG1       .equ 0FF80h      ; if 0, enable JTAG/SBW
700 JTAG_SIG2       .equ 0FF82h      ; if JTAG_SIG1=0xAAAA, length of password string @ JTAG_PASSWORD
701 BSL_SIG1        .equ 0FF84h      ;
702 BSL_SIG2        .equ 0FF86h      ;
703 JTAG_PASSWORD  .equ 0FF86h      ; up to 0FFC5h : 256 bits
704 INTVECT        .equ 0FFC6h      ; FFC6-FFFF
705 BSL_PASSWORD   .equ 0FFE0h      ; up to 0FFFFh : 256 bits
706 ; ----------------------------------------------
707 ; ----------------------------------------------
708 ; Interrupt Vectors and signatures - MSP430FR6989
709 ; ----------------------------------------------
710
711 ;    .org    SIGNATURES
712 ;;Start of JTAG and BSL signatures
713 ;        .word   0           ; JTAG signature 1
714 ;        .word   0           ; JTAG signature 2
715 ;        .word   0;5555h       ; BSL signature 1, disable BSL
716 ;        .word   0           ; BSL signature 2
717
718 ;   .org JTAG_PASSWORD      ;Start of JTAG PASSWORD
719
720     .org    INTVECT         ; FFC6-FFFF 28 vectors + reset
721         .word  reset        ; $FFC6  -  AES
722         .word  reset        ; $FFC8  -  RTC_C
723         .word  reset        ; $FFCA  -  LCD_C
724         .word  reset        ; $FFCC  -  I/O Port 4
725         .word  reset        ; $FFCE  -  I/O Port 3
726         .word  reset        ; $FFD0  -  TA3_x
727         .word  reset        ; $FFD2  -  TA3_0
728         .word  reset        ; $FFD4  -  I/O Port P2
729         .word  reset        ; $FFD6  -  TA2_x
730         .word  reset        ; $FFD8  -  TA2_0
731         .word  reset        ; $FFDA  -  I/O Port P1
732         .word  reset        ; $FFDC  -  TA1_x
733         .word  reset        ; $FFDE  -  TA1_0
734 ;    .org BSL_PASSWORD      ;Start of BSL PASSWORD
735         .word  reset        ; $FFE0  -  DMA
736         .word  reset        ; $FFE2  -  eUSCI_B1
737 TERMVEC .word  TERMINAL_INT ; $FFE4  -  eUSCI_A1
738         .word  reset        ; $FFE6  -  TA0_x
739         .word  reset        ; $FFE8  -  TA0_0
740         .word  reset        ; $FFEA  -  ADC12_B
741         .word  reset        ; $FFEC  -  eUSCI_B0
742         .word  reset        ; $FFEE  -  eUSCI_A0
743         .word  reset        ; $FFF0  -  Extended Scan IF
744         .word  reset        ; $FFF2  -  Watchdog
745         .word  reset        ; $FFF4  -  TB0_x
746         .word  reset        ; $FFF6  -  TB0_0
747         .word  reset        ; $FFF8  -  COMP_E
748         .word  reset        ; $FFFA  -  userNMI
749         .word  reset        ; $FFFC  -  sysNMI
750 RST_ADR .word  reset        ; $FFFE  -  reset
751
752 ; ----------------------------------------------------------------------
753 ; POWER ON RESET AND INITIALIZATION : PORT5/6
754 ; ----------------------------------------------------------------------
755
756 PCIN        .set PC_SFR + 00h    ; Port C Input
757 PCOUT       .set PC_SFR + 02h    ; Port C Output 1/0 or pullup/pulldown resistor
758 PCDIR       .set PC_SFR + 04h    ; Port C Direction
759 PCREN       .set PC_SFR + 06h    ; Port C Resistor Enable
760 PCSEL0      .set PC_SFR + 0Ah    ; Port C Selection 0
761 PCSEL1      .set PC_SFR + 0Ch    ; Port C Selection 1
762 PCSELC      .set PC_SFR + 16h    ; Port C Complement Selection
763
764 P5IN        .set PC_SFR + 00h    ; Port 5 Input */
765 P5OUT       .set PC_SFR + 02h    ; Port 5 Output
766 P5DIR       .set PC_SFR + 04h    ; Port 5 Direction
767 P5REN       .set PC_SFR + 06h    ; Port 5 Resistor Enable
768 P5SEL0      .set PC_SFR + 0Ah    ; Port 5 Selection 0
769 P5SEL1      .set PC_SFR + 0Ch    ; Port 5 Selection 1
770 P5SELC      .set PC_SFR + 16h    ; Port 5 Complement Selection
771
772 P6IN        .set PC_SFR + 01h    ; Port 6 Input */
773 P6OUT       .set PC_SFR + 03h    ; Port 6 Output
774 P6DIR       .set PC_SFR + 05h    ; Port 6 Direction
775 P6REN       .set PC_SFR + 07h    ; Port 6 Resistor Enable
776 P6SEL0      .set PC_SFR + 0Bh    ; Port 6 Selection 0
777 P6SEL1      .set PC_SFR + 0Dh    ; Port 6 Selection 1
778 P6SELC      .set PC_SFR + 17h    ; Port 6 Complement Selection
779
780 ; ----------------------------------------------------------------------
781 ; POWER ON RESET AND INITIALIZATION : PORT7/8
782 ; ----------------------------------------------------------------------
783
784 PDIN        .set PD_SFR + 00h    ; Port D Input
785 PDOUT       .set PD_SFR + 02h    ; Port D Output 1/0 or pullup/pulldown resistor
786 PDDIR       .set PD_SFR + 04h    ; Port D Direction
787 PDREN       .set PD_SFR + 06h    ; Port D Resistor Enable
788 PDSEL0      .set PD_SFR + 0Ah    ; Port D Selection 0
789 PDSEL1      .set PD_SFR + 0Ch    ; Port D Selection 1
790 PDSELC      .set PD_SFR + 16h    ; Port D Complement Selection
791
792 P7IN        .set PD_SFR + 00h    ; Port 7 Input */
793 P7OUT       .set PD_SFR + 02h    ; Port 7 Output
794 P7DIR       .set PD_SFR + 04h    ; Port 7 Direction
795 P7REN       .set PD_SFR + 06h    ; Port 7 Resistor Enable
796 P7SEL0      .set PD_SFR + 0Ah    ; Port 7 Selection 0
797 P7SEL1      .set PD_SFR + 0Ch    ; Port 7 Selection 1
798 P7SELC      .set PD_SFR + 16h    ; Port 7 Complement Selection
799
800 P8IN        .set PD_SFR + 01h    ; Port 8 Input */
801 P8OUT       .set PD_SFR + 03h    ; Port 8 Output
802 P8DIR       .set PD_SFR + 05h    ; Port 8 Direction
803 P8REN       .set PD_SFR + 07h    ; Port 8 Resistor Enable
804 P8SEL0      .set PD_SFR + 0Bh    ; Port 8 Selection 0
805 P8SEL1      .set PD_SFR + 0Dh    ; Port 8 Selection 1
806 P8SELC      .set PD_SFR + 17h    ; Port 8 Complement Selection
807
808 ; ----------------------------------------------------------------------
809 ; POWER ON RESET AND INITIALIZATION : PORT9/10
810 ; ----------------------------------------------------------------------
811
812 PEIN        .set PE_SFR + 00h    ; Port E Input
813 PEOUT       .set PE_SFR + 02h    ; Port E Output 1/0 or pullup/pulldown resistor
814 PEDIR       .set PE_SFR + 04h    ; Port E Direction
815 PEREN       .set PE_SFR + 06h    ; Port E Resistor Enable
816 PESEL0      .set PE_SFR + 0Ah    ; Port E Selection 0
817 PESEL1      .set PE_SFR + 0Ch    ; Port E Selection 1
818 PESELC      .set PE_SFR + 16h    ; Port E Complement Selection
819
820 P9IN        .set PE_SFR + 00h    ; Port 9 Input */
821 P9OUT       .set PE_SFR + 02h    ; Port 9 Output
822 P9DIR       .set PE_SFR + 04h    ; Port 9 Direction
823 P9REN       .set PE_SFR + 06h    ; Port 9 Resistor Enable
824 P9SEL0      .set PE_SFR + 0Ah    ; Port 9 Selection 0
825 P9SEL1      .set PE_SFR + 0Ch    ; Port 9 Selection 1
826 P9SELC      .set PE_SFR + 16h    ; Port 9 Complement Selection
827
828 P10IN        .set PE_SFR + 01h    ; Port 10 Input */
829 P10OUT       .set PE_SFR + 03h    ; Port 10 Output
830 P10DIR       .set PE_SFR + 05h    ; Port 10 Direction
831 P10REN       .set PE_SFR + 07h    ; Port 10 Resistor Enable
832 P10SEL0      .set PE_SFR + 0Bh    ; Port 10 Selection 0
833 P10SEL1      .set PE_SFR + 0Dh    ; Port 10 Selection 1
834 P10SELC      .set PE_SFR + 17h    ; Port 10 Complement Selection
835
836 ; ----------------------------------------------------------------------
837 ; POWER ON RESET AND INITIALIZATION : RTC_C REGISTERS
838 ; ----------------------------------------------------------------------
839 RTC_B   ; declare RTC type
840 RTCCTL0_L     .set RTC_C_SFR + 00h
841 RTCCTL0_H     .set RTC_C_SFR + 01h
842 RTCCTL1       .set RTC_C_SFR + 02h
843 RTCCTL3       .set RTC_C_SFR + 03h
844 RTCOCAL       .set RTC_C_SFR + 04h
845 RTCTCMP       .set RTC_C_SFR + 06h
846 RTCPS0CTL     .set RTC_C_SFR + 08h
847 RTCPS1CTL     .set RTC_C_SFR + 0Ah
848 RTCPS         .set RTC_C_SFR + 0Ch
849 RTCIV         .set RTC_C_SFR + 0Eh
850 RTCSEC        .set RTC_C_SFR + 10h
851 RTCMIN        .set RTC_C_SFR + 11h
852 RTCHOUR       .set RTC_C_SFR + 12h
853 RTCDOW        .set RTC_C_SFR + 13h
854 RTCDAY        .set RTC_C_SFR + 14h
855 RTCMON        .set RTC_C_SFR + 15h
856 RTCYEAR       .set RTC_C_SFR + 16h
857
858 RTCHOLD       .set 40h
859 RTCRDY        .set 10h
860
861
862     .ENDIF ; MSP430FR6989
863
864
865
866
867
868
869
870 ;=======================================================================
871 ; COMMON PARTS
872 ;=======================================================================
873
874 UCSWRST         .equ 1  ; eUSCI Software Reset
875 UCTXIE          .equ 2  ; eUSCI Transmit Interrupt Enable
876 UCRXIE          .equ 1  ; eUSCI Receive Interrupt Enable
877 UCTXIFG         .equ 2  ; eUSCI Transmit Interrupt Flag
878 UCRXIFG         .equ 1  ; eUSCI Receive Interrupt Flag
879
880
881 ; ----------------------------------------------------------------------
882 ; POWER ON RESET AND INITIALIZATION : LOCK PMM_LOCKLPM5
883 ; ----------------------------------------------------------------------
884 PMMCTL0     .set PMM_SFR
885 PMMSWBOR    .set 4
886
887 PM5CTL0     .set PMM_SFR + 10h    ; Power mode 5 control register 0
888 LOCKLPM5    .set 1
889
890 ; ----------------------------------------------------------------------
891 ; POWER ON RESET AND INITIALIZATION : WATCHDOG TIMER A
892 ; ----------------------------------------------------------------------
893
894 WDTCTL      .equ WDT_A_SFR + 00h    ; Watchdog Timer Control */
895
896 ; WDTCTL Control Bits
897 WDTPW       .equ 5A00h
898 WDTHOLD     .equ 0080h  ; WDT - Timer hold
899 WDTCNTCL    .equ 0008h  ; WDT timer counter clear
900
901 ; ----------------------------------------------------------------------
902 ; POWER ON RESET AND INITIALIZATION : PORT1/2
903 ; ----------------------------------------------------------------------
904
905 PAIN        .equ PA_SFR + 00h    ; Port A INput
906 PAOUT       .equ PA_SFR + 02h    ; Port A OUTput
907 PADIR       .equ PA_SFR + 04h    ; Port A DIRection
908 PAREN       .equ PA_SFR + 06h    ; Port A Resistor ENable
909 PASEL0      .equ PA_SFR + 0Ah    ; Port A SELection 0
910 PASEL1      .equ PA_SFR + 0Ch    ; Port A SELection 1
911 PASELC      .equ PA_SFR + 16h    ; Port A SELection Complement
912 PAIES       .equ PA_SFR + 18h    ; Port A Interrupt Edge Select
913 PAIE        .equ PA_SFR + 1Ah    ; Port A Interrupt Enable
914 PAIFG       .equ PA_SFR + 1Ch    ; Port A Interrupt FlaG
915
916 P1IN        .equ PA_SFR + 00h    ; Port 1 INput
917 P1OUT       .equ PA_SFR + 02h    ; Port 1 OUTput
918 P1DIR       .equ PA_SFR + 04h    ; Port 1 DIRection
919 P1REN       .equ PA_SFR + 06h    ; Port 1 Resistor ENable
920 P1SEL0      .equ PA_SFR + 0Ah    ; Port 1 SELection 0
921 P1SEL1      .equ PA_SFR + 0Ch    ; Port 1 SELection 1
922 P1SELC      .equ PA_SFR + 16h    ; Port 1 SELection Complement
923 P1IES       .equ PA_SFR + 18h    ; Port 1 Interrupt Edge Select
924 P1IE        .equ PA_SFR + 1Ah    ; Port 1 Interrupt Enable
925 P1IFG       .equ PA_SFR + 1Ch    ; Port 1 Interrupt FlaG
926 P1IV        .equ PA_SFR + 0Eh    ; Port 1 Interrupt Vector word 
927
928 P2IN        .equ PA_SFR + 01h    ; Port 2 INput
929 P2OUT       .equ PA_SFR + 03h    ; Port 2 OUTput
930 P2DIR       .equ PA_SFR + 05h    ; Port 2 DIRection
931 P2REN       .equ PA_SFR + 07h    ; Port 2 Resistor ENable
932 P2SEL0      .equ PA_SFR + 0Bh    ; Port 2 SELection 0
933 P2SEL1      .equ PA_SFR + 0Dh    ; Port 2 SELection 1
934 P2SELC      .equ PA_SFR + 17h    ; Port 2 SELection Complement
935 P2IES       .equ PA_SFR + 19h    ; Port 2 Interrupt Edge Select
936 P2IE        .equ PA_SFR + 1Bh    ; Port 2 Interrupt Enable
937 P2IFG       .equ PA_SFR + 1Dh    ; Port 2 Interrupt FlaG
938 P2IV        .equ PA_SFR + 1Eh    ; Port 2 Interrupt Vector word 
939
940 ; ----------------------------------------------------------------------
941 ; POWER ON RESET AND INITIALIZATION : PORT3/4
942 ; ----------------------------------------------------------------------
943
944 PBIN        .equ PB_SFR + 00h    ; Port B Input
945 PBOUT       .equ PB_SFR + 02h    ; Port B Output 1/0 or pullup/pulldown resistor
946 PBDIR       .equ PB_SFR + 04h    ; Port B Direction
947 PBREN       .equ PB_SFR + 06h    ; Port B Resistor Enable
948 PBSEL0      .equ PB_SFR + 0Ah    ; Port B Selection 0
949 PBSEL1      .equ PB_SFR + 0Ch    ; Port B Selection 1
950 PBSELC      .equ PB_SFR + 16h    ; Port B Complement Selection
951 PBIES       .equ PB_SFR + 18h    ; Port B Interrupt Edge Select
952 PBIE        .equ PB_SFR + 1Ah    ; Port B Interrupt Enable
953 PBIFG       .equ PB_SFR + 1Ch    ; Port B Interrupt Flag
954
955 P3IN        .equ PB_SFR + 00h    ; Port 3 Input */
956 P3OUT       .equ PB_SFR + 02h    ; Port 3 Output
957 P3DIR       .equ PB_SFR + 04h    ; Port 3 Direction
958 P3REN       .equ PB_SFR + 06h    ; Port 3 Resistor Enable
959 P3SEL0      .equ PB_SFR + 0Ah    ; Port 3 Selection 0
960 P3SEL1      .equ PB_SFR + 0Ch    ; Port 3 Selection 1
961 P3SELC      .equ PB_SFR + 16h    ; Port 3 Complement Selection
962 P3IES       .equ PB_SFR + 18h    ; Port 3 Interrupt Edge Select
963 P3IE        .equ PB_SFR + 1Ah    ; Port 3 Interrupt Enable
964 P3IFG       .equ PB_SFR + 1Ch    ; Port 3 Interrupt Flag
965 P3IV        .equ PB_SFR + 0Eh    ; Port 3 Interrupt Vector word 
966
967 P4IN        .equ PB_SFR + 01h    ; Port 4 Input */
968 P4OUT       .equ PB_SFR + 03h    ; Port 4 Output
969 P4DIR       .equ PB_SFR + 05h    ; Port 4 Direction
970 P4REN       .equ PB_SFR + 07h    ; Port 4 Resistor Enable
971 P4SEL0      .equ PB_SFR + 0Bh    ; Port 4 Selection 0
972 P4SEL1      .equ PB_SFR + 0Dh    ; Port 4 Selection 1
973 P4SELC      .equ PB_SFR + 17h    ; Port 4 Complement Selection
974 P4IES       .equ PB_SFR + 19h    ; Port 4 Interrupt Edge Select
975 P4IE        .equ PB_SFR + 1Bh    ; Port 4 Interrupt Enable
976 P4IFG       .equ PB_SFR + 1Dh    ; Port 4 Interrupt Flag
977 P4IV        .equ PB_SFR + 1Eh    ; Port 4 Interrupt Vector word 
978
979 ; ----------------------------------------------------------------------
980 ; POWER ON RESET AND INITIALIZATION : PORTJ
981 ; ----------------------------------------------------------------------
982
983 PJIN        .equ PJ_SFR + 00h   ; Port J INput
984 PJOUT       .equ PJ_SFR + 02h   ; Port J OUTput
985 PJDIR       .equ PJ_SFR + 04h   ; Port J DIRection
986 PJREN       .equ PJ_SFR + 06h   ; Port J Resistor ENable
987 PJSEL0      .equ PJ_SFR + 0Ah   ; Port 2 SELection 0
988 PJSEL1      .equ PJ_SFR + 0Ch   ; Port 2 SELection 1
989 PJSELC      .equ PJ_SFR + 16h   ; Port 2 SELection Complement; PJ 5-0 usage
990
991 ; ----------------------------------------------------------------------
992 ; FRAM config
993 ; ----------------------------------------------------------------------
994 FRCTL0          .set FRAM_SFR + 00h   ; FRAM Controller Control 0
995 FRCTL0_H        .set FRAM_SFR + 01h   ; FRAM Controller Control 0 high byte
996
997 ; ----------------------------------------------------------------------
998 ; POWER ON RESET AND INITIALIZATION : CLOCK SYSTEM
999 ; ----------------------------------------------------------------------
1000
1001 CSCTL0          .equ CS_SFR + 00h       ; CS Control Register 0
1002 CSCTL0_H        .equ CS_SFR + 01h       ; CS Control Register 0 high byte
1003 CSCTL1          .equ CS_SFR + 02h       ; CS Control Register 1
1004 CSCTL2          .equ CS_SFR + 04h       ; CS Control Register 2
1005 CSCTL3          .equ CS_SFR + 06h       ; CS Control Register 3
1006
1007 ; CSCTL0 Control Bits
1008 CSKEY           .equ 0A5h           ; CS Password
1009 ; CSCTL1 Control Bits
1010 DCORSEL         .equ 0040h
1011 DCOFSEL0        .equ 0002h           ; DCO frequency select Bit: 0
1012 DCOFSEL1        .equ 0004h           ; DCO frequency select Bit: 1
1013 DCOFSEL2        .equ 0008h           ; DCO frequency select Bit: 2
1014 DCOFSEL3        .equ 000Ch           ; DCO frequency select Bit: 21
1015 ; CSCTL2 Control Bits
1016 SELA_LFXCLK     .equ 0000h           ; 0 : ACLK Source Select LFXCLK
1017 SELA_VLOCLK     .equ 0100h           ; 1 ACLK Source Select VLOCLK 10kHz
1018 SELS_DCOCLK     .equ 0030h           ; 3 : SMCLK Source Select DCOCLK
1019 SELM_DCOCLK     .equ 0003h           ; 3 : MCLK Source Select DCOCLK
1020 ; CSCTL3 Control Bits
1021 DIVA_0          .equ 0000h           ; ACLK Source Divider 0
1022 DIVS_0          .equ 0000h           ; SMCLK Source Divider 0
1023 DIVM_0          .equ 0000h           ; MCLK Source Divider 0
1024 DIVA_2          .equ 0100h           ; ACLK Source Divider 0
1025 DIVS_2          .equ 0010h           ; SMCLK Source Divider 0
1026 DIVM_2          .equ 0001h           ; MCLK Source Divider 0
1027 DIVA_4          .equ 0200h           ; ACLK Source Divider 0
1028 DIVS_4          .equ 0020h           ; SMCLK Source Divider 0
1029 DIVM_4          .equ 0002h           ; MCLK Source Divider 0
1030 DIVA_8          .equ 0300h           ; ACLK Source Divider 0
1031 DIVS_8          .equ 0030h           ; SMCLK Source Divider 0
1032 DIVM_8          .equ 0003h           ; MCLK Source Divider 0
1033 DIVA_16         .equ 0400h           ; ACLK Source Divider 0
1034 DIVS_16         .equ 0040h           ; SMCLK Source Divider 0
1035 DIVM_16         .equ 0004h           ; MCLK Source Divider 0
1036 DIVA_32         .equ 0500h           ; ACLK Source Divider 0
1037 DIVS_32         .equ 0050h           ; SMCLK Source Divider 0
1038 DIVM_32         .equ 0005h           ; MCLK Source Divider 0
1039
1040 ; ----------------------------------------------------------------------
1041 ; POWER ON RESET AND INITIALIZATION : REF
1042 ; ----------------------------------------------------------------------
1043
1044 REFCTL      equ REF_SFR + 00h       ; REF Shared Reference control register 0
1045
1046 ; REFCTL0 Control Bits
1047 REFON       equ 0001h               ; REF Reference On
1048 REFTCOFF    equ 0008h               ; REF Temp.Sensor off
1049
1050 ; ----------------------------------------------------------------------
1051 ; MPY_32
1052 ; ----------------------------------------------------------------------
1053
1054 MPY       .equ MPY_SFR + 00h    ; Multiply16 Unsigned/Operand 1 */
1055 MPYS      .equ MPY_SFR + 02h    ; Multiply16 signed/Operand 1
1056 MAC       .equ MPY_SFR + 04h    ; MultiplyAccumulate16 Unsigned/Operand 1 */
1057 MACS      .equ MPY_SFR + 06h    ; MultiplyAccumulate16 signed/Operand 1
1058 OP2       .equ MPY_SFR + 08h    ; Operand2_16 */
1059 RESLO     .equ MPY_SFR + 0Ah    ; 16x16-bit result low - least significant word */
1060 RESHI     .equ MPY_SFR + 0Ch    ; 16x16-bit result high */
1061 SUMEXT    .equ MPY_SFR + 0Eh    ; 16x16-bit sum extension register
1062 MPY32L    .equ MPY_SFR + 10h    ; Multiply32 Unsigned/Operand 1
1063 MPY32H    .equ MPY_SFR + 12h    ; Multiply32 Unsigned/Operand 1
1064 MPYS32L   .equ MPY_SFR + 14h    ; Multiply32 signed/Operand 1
1065 MPYS32H   .equ MPY_SFR + 16h    ; Multiply32 signed/Operand 1
1066 MAC32L    .equ MPY_SFR + 18h    ; MultiplyAccumulate32 Unsigned/Operand 1
1067 MAC32H    .equ MPY_SFR + 1Ah    ; MultiplyAccumulate32 Unsigned/Operand 1
1068 MACS32L   .equ MPY_SFR + 1Ch    ; MultiplyAccumulate32 signed/Operand 1
1069 MACS32H   .equ MPY_SFR + 1Eh    ; MultiplyAccumulate32 signed/Operand 1
1070 OP2L      .equ MPY_SFR + 20h    ; Multiply32 Operand 2
1071 OP2H      .equ MPY_SFR + 22h    ; Multiply32 Operand 2
1072 RES0      .equ MPY_SFR + 24h    ; 32x32-bit result 0 - least significant word */
1073 RES1      .equ MPY_SFR + 26h    ; 32x32-bit result 1 */
1074 RES2      .equ MPY_SFR + 28h    ; 32x32-bit result 2 */
1075 RES3      .equ MPY_SFR + 2Ah    ; 32x32-bit result 3 */
1076 MPY32CTL0 .equ MPY_SFR + 2Ch    ; MPY32 control register 0
1077
1078
1079 ; ----------------------------------------------------------------------
1080 ; eUSCI_A0
1081 ; ----------------------------------------------------------------------
1082
1083     .IFDEF UCA0_UART
1084 TERMCTLW0       .equ eUSCI_A0_SFR + 00h    ; eUSCI_A0 Control Word Register 0
1085 TERMBRW         .equ eUSCI_A0_SFR + 06h    ; eUSCI_A0 Baud Word Rate 0
1086 TERMMCTLW       .equ eUSCI_A0_SFR + 08h    ; eUSCI_A0 Modulation Control
1087 TERMRXBUF       .equ eUSCI_A0_SFR + 0Ch    ; eUSCI_A0 Receive Buffer
1088 TERMTXBUF       .equ eUSCI_A0_SFR + 0Eh    ; eUSCI_A0 Transmit Buffer
1089 TERMIE          .equ eUSCI_A0_SFR + 1Ah    ; eUSCI_A0 Interrupt Enable Register
1090 TERMIFG         .equ eUSCI_A0_SFR + 1Ch    ; eUSCI_A0 Interrupt Flags Register
1091     .ENDIF ;UCA0_UART
1092
1093     .IFDEF UCA0_SD
1094 SD_CTLW0       .equ eUSCI_A0_SFR + 00h    ; eUSCI_A0 Control Word Register 0
1095 SD_BRW         .equ eUSCI_A0_SFR + 06h    ; eUSCI_A0 Baud Word Rate 0
1096 SD_RXBUF       .equ eUSCI_A0_SFR + 0Ch    ; eUSCI_A0 Receive Buffer 8
1097 SD_TXBUF       .equ eUSCI_A0_SFR + 0Eh    ; eUSCI_A0 Transmit Buffer 8
1098 SD_IFG         .equ eUSCI_A0_SFR + 1Ch    ; eUSCI_A0 Interrupt Flags Register
1099     .ENDIF ;UCA0_SD
1100
1101 ; ----------------------------------------------------------------------
1102 ; eUSCI_A1
1103 ; ----------------------------------------------------------------------
1104
1105     .IFDEF UCA1_UART
1106 TERMCTLW0       .equ eUSCI_A1_SFR + 00h    ; eUSCI_A1 Control Word Register 0
1107 TERMBRW         .equ eUSCI_A1_SFR + 06h    ; eUSCI_A1 Baud Word Rate 0
1108 TERMMCTLW       .equ eUSCI_A1_SFR + 08h    ; eUSCI_A1 Modulation Control
1109 TERMRXBUF       .equ eUSCI_A1_SFR + 0Ch    ; eUSCI_A1 Receive Buffer
1110 TERMTXBUF       .equ eUSCI_A1_SFR + 0Eh    ; eUSCI_A1 Transmit Buffer
1111 TERMIE          .equ eUSCI_A1_SFR + 1Ah    ; eUSCI_A1 Interrupt Enable Register
1112 TERMIFG         .equ eUSCI_A1_SFR + 1Ch    ; eUSCI_A1 Interrupt Flags Register
1113     .ENDIF ;UCA1_UART
1114
1115     .IFDEF UCA1_SD
1116 SD_CTLW0       .equ eUSCI_A1_SFR + 00h    ; eUSCI_A1 Control Word Register 0
1117 SD_BRW         .equ eUSCI_A1_SFR + 06h    ; eUSCI_A1 Baud Word Rate 0
1118 SD_RXBUF       .equ eUSCI_A1_SFR + 0Ch    ; eUSCI_A1 Receive Buffer 8
1119 SD_TXBUF       .equ eUSCI_A1_SFR + 0Eh    ; eUSCI_A1 Transmit Buffer 8
1120 SD_IFG         .equ eUSCI_A1_SFR + 1Ch    ; eUSCI_A1 Interrupt Flags Register
1121     .ENDIF ;UCA1_SD
1122
1123
1124 ; ----------------------------------------------------------------------
1125 ; eUSCI_B0
1126 ; ----------------------------------------------------------------------
1127     .IFDEF UCB0_SD
1128 SD_CTLW0       .equ eUSCI_B0_SFR + 00h    ; eUSCI_B0 Control Word Register 0
1129 SD_BRW         .equ eUSCI_B0_SFR + 06h    ; eUSCI_B0 Baud Word Rate 0
1130 SD_RXBUF       .equ eUSCI_B0_SFR + 0Ch    ; eUSCI_B0 Receive Buffer 8
1131 SD_TXBUF       .equ eUSCI_B0_SFR + 0Eh    ; eUSCI_B0 Transmit Buffer 8
1132 SD_IFG         .equ eUSCI_B0_SFR + 2Ch    ; eUSCI_B0 Interrupt Flags Register
1133     .ENDIF ;UCB0_SD
1134
1135
1136
1137 ; ----------------------------------------------------------------------
1138 ; POWER ON RESET AND INITIALIZATION : SYS REGISTERS
1139 ; ----------------------------------------------------------------------
1140
1141 SYSUNIV     .equ SYS_SFR + 001Ah
1142 SYSSNIV     .equ SYS_SFR + 001Ch
1143 SYSRSTIV    .equ SYS_SFR + 001Eh
1144
1145 ; SYS Control Bits
1146 ; ...