1 2 3 4 5 6 7 8 9 10 11
12
13 14 15 16 17
18
19 metaonly interface IMSP430F54xx inherits IMSP430
20 {
21 struct Timer {
22 string name;
23 UInt baseAddr;
24 UInt intNum;
25 };
26
27 instance:
28
29 /*!
30 * ======== commonMap ========
31 * Memory map elements shared by all MSP430F54xx devices
32 */
33 config xdc.platform.IPlatform.Memory commonMap[string] = [
34
35 ["PERIPHERALS", {
36 comment: "Memory mapped peripherals",
37 name: "PERIPHERALS",
38 base: 0x0,
39 len: 0x1000,
40 space: "io",
41 access: "RW"
42 }],
43
44 ["BSL", {
45 comment: "Bootstrap loader (flash)",
46 name: "BSL",
47 base: 0x1000,
48 len: 0x800,
49 space: "code",
50 access: "RW"
51 }],
52
53 ["INFO", {
54 comment: "Information memory (flash)",
55 name: "INFO",
56 base: 0x1800,
57 len: 0x200,
58 space: "data",
59 access: "RW"
60 }],
61
62 ["INT00", {
63 comment: "Reserved Vector",
64 name: "INT00",
65 base: 0xFF80,
66 len: 0x2,
67 space: "data"
68 }],
69
70 ["INT01", {
71 comment: "Reserved Vector",
72 name: "INT01",
73 base: 0xFF82,
74 len: 0x2,
75 space: "data"
76 }],
77
78 ["INT02", {
79 comment: "Reserved Vector",
80 name: "INT02",
81 base: 0xFF84,
82 len: 0x2,
83 space: "data"
84 }],
85
86 ["INT03", {
87 comment: "Reserved Vector",
88 name: "INT03",
89 base: 0xFF86,
90 len: 0x2,
91 space: "data"
92 }],
93
94 ["INT04", {
95 comment: "Reserved Vector",
96 name: "INT04",
97 base: 0xFF88,
98 len: 0x2,
99 space: "data"
100 }],
101
102 ["INT05", {
103 comment: "Reserved Vector",
104 name: "INT05",
105 base: 0xFF8A,
106 len: 0x2,
107 space: "data"
108 }],
109
110 ["INT06", {
111 comment: "Reserved Vector",
112 name: "INT06",
113 base: 0xFF8C,
114 len: 0x2,
115 space: "data"
116 }],
117
118 ["INT07", {
119 comment: "Reserved Vector",
120 name: "INT07",
121 base: 0xFF8E,
122 len: 0x2,
123 space: "data"
124 }],
125
126 ["INT08", {
127 comment: "Reserved Vector",
128 name: "INT08",
129 base: 0xFF90,
130 len: 0x2,
131 space: "data"
132 }],
133
134 ["INT09", {
135 comment: "Reserved Vector",
136 name: "INT09",
137 base: 0xFF92,
138 len: 0x2,
139 space: "data"
140 }],
141
142 ["INT10", {
143 comment: "Reserved Vector",
144 name: "INT10",
145 base: 0xFF94,
146 len: 0x2,
147 space: "data"
148 }],
149
150 ["INT11", {
151 comment: "Reserved Vector",
152 name: "INT11",
153 base: 0xFF96,
154 len: 0x2,
155 space: "data"
156 }],
157
158 ["INT12", {
159 comment: "Reserved Vector",
160 name: "INT12",
161 base: 0xFF98,
162 len: 0x2,
163 space: "data"
164 }],
165
166 ["INT13", {
167 comment: "Reserved Vector",
168 name: "INT13",
169 base: 0xFF9A,
170 len: 0x2,
171 space: "data"
172 }],
173
174 ["INT14", {
175 comment: "Reserved Vector",
176 name: "INT14",
177 base: 0xFF9C,
178 len: 0x2,
179 space: "data"
180 }],
181
182 ["INT15", {
183 comment: "Reserved Vector",
184 name: "INT15",
185 base: 0xFF9E,
186 len: 0x2,
187 space: "data"
188 }],
189
190 ["INT16", {
191 comment: "Reserved Vector",
192 name: "INT16",
193 base: 0xFFA0,
194 len: 0x2,
195 space: "data"
196 }],
197
198 ["INT17", {
199 comment: "Reserved Vector",
200 name: "INT17",
201 base: 0xFFA2,
202 len: 0x2,
203 space: "data"
204 }],
205
206 ["INT18", {
207 comment: "Reserved Vector",
208 name: "INT18",
209 base: 0xFFA4,
210 len: 0x2,
211 space: "data"
212 }],
213
214 ["INT19", {
215 comment: "Reserved Vector",
216 name: "INT19",
217 base: 0xFFA6,
218 len: 0x2,
219 space: "data"
220 }],
221
222 ["INT20", {
223 comment: "Reserved Vector",
224 name: "INT20",
225 base: 0xFFA8,
226 len: 0x2,
227 space: "data"
228 }],
229
230 ["INT21", {
231 comment: "Reserved Vector",
232 name: "INT21",
233 base: 0xFFAA,
234 len: 0x2,
235 space: "data"
236 }],
237
238 ["INT22", {
239 comment: "Reserved Vector",
240 name: "INT22",
241 base: 0xFFAC,
242 len: 0x2,
243 space: "data"
244 }],
245
246 ["INT23", {
247 comment: "Reserved Vector",
248 name: "INT23",
249 base: 0xFFAE,
250 len: 0x2,
251 space: "data"
252 }],
253
254 ["INT24", {
255 comment: "Reserved Vector",
256 name: "INT24",
257 base: 0xFFB0,
258 len: 0x2,
259 space: "data"
260 }],
261
262 ["INT25", {
263 comment: "Reserved Vector",
264 name: "INT25",
265 base: 0xFFB2,
266 len: 0x2,
267 space: "data"
268 }],
269
270 ["INT26", {
271 comment: "Reserved Vector",
272 name: "INT26",
273 base: 0xFFB4,
274 len: 0x2,
275 space: "data"
276 }],
277
278 ["INT27", {
279 comment: "Reserved Vector",
280 name: "INT27",
281 base: 0xFFB6,
282 len: 0x2,
283 space: "data"
284 }],
285
286 ["INT28", {
287 comment: "Reserved Vector",
288 name: "INT28",
289 base: 0xFFB8,
290 len: 0x2,
291 space: "data"
292 }],
293
294 ["INT29", {
295 comment: "Reserved Vector",
296 name: "INT29",
297 base: 0xFFBA,
298 len: 0x2,
299 space: "data"
300 }],
301
302 ["INT30", {
303 comment: "Reserved Vector",
304 name: "INT30",
305 base: 0xFFBC,
306 len: 0x2,
307 space: "data"
308 }],
309
310 ["INT31", {
311 comment: "Reserved Vector",
312 name: "INT31",
313 base: 0xFFBE,
314 len: 0x2,
315 space: "data"
316 }],
317
318 ["INT32", {
319 comment: "Reserved Vector",
320 name: "INT32",
321 base: 0xFFC0,
322 len: 0x2,
323 space: "data"
324 }],
325
326 ["INT33", {
327 comment: "Reserved Vector",
328 name: "INT33",
329 base: 0xFFC2,
330 len: 0x2,
331 space: "data"
332 }],
333
334 ["INT34", {
335 comment: "Reserved Vector",
336 name: "INT34",
337 base: 0xFFC4,
338 len: 0x2,
339 space: "data"
340 }],
341
342 ["INT35", {
343 comment: "Reserved Vector",
344 name: "INT35",
345 base: 0xFFC6,
346 len: 0x2,
347 space: "data"
348 }],
349
350 ["INT36", {
351 comment: "Reserved Vector",
352 name: "INT36",
353 base: 0xFFC8,
354 len: 0x2,
355 space: "data"
356 }],
357
358 ["INT37", {
359 comment: "Reserved Vector",
360 name: "INT37",
361 base: 0xFFCA,
362 len: 0x2,
363 space: "data"
364 }],
365
366 ["INT38", {
367 comment: "Reserved Vector",
368 name: "INT38",
369 base: 0xFFCC,
370 len: 0x2,
371 space: "data"
372 }],
373
374 ["INT39", {
375 comment: "Reserved Vector",
376 name: "INT39",
377 base: 0xFFCE,
378 len: 0x2,
379 space: "data"
380 }],
381
382 ["INT40", {
383 comment: "Reserved Vector",
384 name: "INT40",
385 base: 0xFFD0,
386 len: 0x2,
387 space: "data"
388 }],
389
390 ["INT41", {
391 comment: "RTC_A Vector",
392 name: "INT41",
393 base: 0xFFD2,
394 len: 0x2,
395 space: "data"
396 }],
397
398 ["INT42", {
399 comment: "I/O Port P2 Vector",
400 name: "INT42",
401 base: 0xFFD4,
402 len: 0x2,
403 space: "data"
404 }],
405
406 ["INT43", {
407 comment: "USCI_B3 Receive/Transmit Vector",
408 name: "INT43",
409 base: 0xFFD6,
410 len: 0x2,
411 space: "data"
412 }],
413
414 ["INT44", {
415 comment: "USCI_A3 Receive/Transmit Vector",
416 name: "INT44",
417 base: 0xFFD8,
418 len: 0x2,
419 space: "data"
420 }],
421
422 ["INT45", {
423 comment: "USCI_B1 Receive/Transmit Vector",
424 name: "INT45",
425 base: 0xFFDA,
426 len: 0x2,
427 space: "data"
428 }],
429
430 ["INT46", {
431 comment: "USCI_A1 Receive/Transmit Vector",
432 name: "INT46",
433 base: 0xFFDC,
434 len: 0x2,
435 space: "data"
436 }],
437
438 ["INT47", {
439 comment: "I/O Port P1 Vector",
440 name: "INT47",
441 base: 0xFFDE,
442 len: 0x2,
443 space: "data"
444 }],
445
446 ["INT48", {
447 comment: "TA1 CCR1-CCR2 Vector",
448 name: "INT48",
449 base: 0xFFE0,
450 len: 0x2,
451 space: "data"
452 }],
453
454 ["INT49", {
455 comment: "TA1 CCR0 Vector",
456 name: "INT49",
457 base: 0xFFE2,
458 len: 0x2,
459 space: "data"
460 }],
461
462 ["INT50", {
463 comment: "DMA Vector",
464 name: "INT50",
465 base: 0xFFE4,
466 len: 0x2,
467 space: "data"
468 }],
469
470 ["INT51", {
471 comment: "USCI_B2 Receive/Transmit Vector",
472 name: "INT51",
473 base: 0xFFE6,
474 len: 0x2,
475 space: "data"
476 }],
477
478 ["INT52", {
479 comment: "USCI_A2 Receive/Transmit Vector",
480 name: "INT52",
481 base: 0xFFE8,
482 len: 0x2,
483 space: "data"
484 }],
485
486 ["INT53", {
487 comment: "TA0 CCR1-CCR4 Vector",
488 name: "INT53",
489 base: 0xFFEA,
490 len: 0x2,
491 space: "data"
492 }],
493
494 ["INT54", {
495 comment: "TA0 CCR0 Vector",
496 name: "INT54",
497 base: 0xFFEC,
498 len: 0x2,
499 space: "data"
500 }],
501
502 ["INT55", {
503 comment: "ADC12_A Vector",
504 name: "INT55",
505 base: 0xFFEE,
506 len: 0x2,
507 space: "data"
508 }],
509
510 ["INT56", {
511 comment: "USCI_B0 Receive/Transmit Vector",
512 name: "INT56",
513 base: 0xFFF0,
514 len: 0x2,
515 space: "data"
516 }],
517
518 ["INT57", {
519 comment: "USCI_A0 Receive/Transmit Vector",
520 name: "INT57",
521 base: 0xFFF2,
522 len: 0x2,
523 space: "data"
524 }],
525
526 ["INT58", {
527 comment: "Watchdog Timer_A Interval Timer Mode Vector",
528 name: "INT58",
529 base: 0xFFF4,
530 len: 0x2,
531 space: "data"
532 }],
533
534 ["INT59", {
535 comment: "TB0 CCR1-CCR6 Vector",
536 name: "INT59",
537 base: 0xFFF6,
538 len: 0x2,
539 space: "data"
540 }],
541
542 ["INT60", {
543 comment: "TB0 CCR0 Vector",
544 name: "INT60",
545 base: 0xFFF8,
546 len: 0x2,
547 space: "data"
548 }],
549
550 ["INT61", {
551 comment: "User NMI Vector",
552 name: "INT61",
553 base: 0xFFFA,
554 len: 0x2,
555 space: "data"
556 }],
557
558 ["INT62", {
559 comment: "System NMI Vector",
560 name: "INT62",
561 base: 0xFFFC,
562 len: 0x2,
563 space: "data"
564 }],
565
566 ["RESET", {
567 comment: "Reset Vector",
568 name: "RESET",
569 base: 0xFFFE,
570 len: 0x2,
571 space: "data"
572 }],
573 ];
574
575 config Timer timers[3] = [
576 {
577 name: "Timer0_A5",
578 baseAddr: 0x340,
579 intNum: 54
580 },
581
582 {
583 name: "Timer1_A3",
584 baseAddr: 0x380,
585 intNum: 49
586 },
587
588 {
589 name: "Timer0_B7",
590 baseAddr: 0x3C0,
591 intNum: 60
592 },
593 ];
594 };
595 596 597
598