RTEMS CPU Kit with SuperCore
4.11.3
Main Page
Related Pages
Modules
+
Data Structures
Data Structures
+
Data Fields
+
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Files
File List
+
Globals
+
All
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Functions
_
a
b
c
d
e
f
g
i
j
l
m
n
o
p
q
r
s
t
u
v
w
+
Variables
_
b
c
d
i
r
+
Typedefs
a
b
c
d
f
h
i
m
o
p
q
r
s
t
u
w
x
+
Enumerations
b
c
d
e
h
i
m
o
p
r
s
t
w
+
Enumerator
c
i
m
p
r
s
t
w
+
Macros
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
w
mnt
data0
chrisj
rtems
releases
rtems-release.git
4.11.3
ws-rtems
rtems-4.11.3
cpukit
score
cpu
avr
avr
iom103.h
Go to the documentation of this file.
1
9
/*
10
* Copyright (c) 2002, Marek Michalkiewicz
11
* All rights reserved.
12
*
13
* Redistribution and use in source and binary forms, with or without
14
* modification, are permitted provided that the following conditions are met:
15
*
16
* * Redistributions of source code must retain the above copyright
17
* notice, this list of conditions and the following disclaimer.
18
*
19
* * Redistributions in binary form must reproduce the above copyright
20
* notice, this list of conditions and the following disclaimer in
21
* the documentation and/or other materials provided with the
22
* distribution.
23
*
24
* * Neither the name of the copyright holders nor the names of
25
* contributors may be used to endorse or promote products derived
26
* from this software without specific prior written permission.
27
*
28
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
32
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38
* POSSIBILITY OF SUCH DAMAGE.
39
*/
40
41
#ifndef _AVR_IOM103_H_
42
#define _AVR_IOM103_H_ 1
43
44
#ifndef _AVR_IO_H_
45
# error "Include <avr/io.h> instead of this file."
46
#endif
47
48
#ifndef _AVR_IOXXX_H_
49
# define _AVR_IOXXX_H_ "iom103.h"
50
#else
51
# error "Attempt to include more than one <avr/ioXXX.h> file."
52
#endif
53
62
/* I/O registers */
63
64
/* Input Pins, Port F */
65
#define PINF _SFR_IO8(0x00)
66
67
/* Input Pins, Port E */
68
#define PINE _SFR_IO8(0x01)
69
70
/* Data Direction Register, Port E */
71
#define DDRE _SFR_IO8(0x02)
72
73
/* Data Register, Port E */
74
#define PORTE _SFR_IO8(0x03)
75
76
/* ADC Data Register */
77
#ifndef __ASSEMBLER__
78
#define ADC _SFR_IO16(0x04)
79
#endif
80
#define ADCW _SFR_IO16(0x04)
81
#define ADCL _SFR_IO8(0x04)
82
#define ADCH _SFR_IO8(0x05)
83
84
/* ADC Control and status register */
85
#define ADCSR _SFR_IO8(0x06)
86
87
/* ADC Multiplexer select */
88
#define ADMUX _SFR_IO8(0x07)
89
90
/* Analog Comparator Control and Status Register */
91
#define ACSR _SFR_IO8(0x08)
92
93
/* UART Baud Rate Register */
94
#define UBRR _SFR_IO8(0x09)
95
96
/* UART Control Register */
97
#define UCR _SFR_IO8(0x0A)
98
99
/* UART Status Register */
100
#define USR _SFR_IO8(0x0B)
101
102
/* UART I/O Data Register */
103
#define UDR _SFR_IO8(0x0C)
104
105
/* SPI Control Register */
106
#define SPCR _SFR_IO8(0x0D)
107
108
/* SPI Status Register */
109
#define SPSR _SFR_IO8(0x0E)
110
111
/* SPI I/O Data Register */
112
#define SPDR _SFR_IO8(0x0F)
113
114
/* Input Pins, Port D */
115
#define PIND _SFR_IO8(0x10)
116
117
/* Data Direction Register, Port D */
118
#define DDRD _SFR_IO8(0x11)
119
120
/* Data Register, Port D */
121
#define PORTD _SFR_IO8(0x12)
122
123
/* Data Register, Port C */
124
#define PORTC _SFR_IO8(0x15)
125
126
/* Input Pins, Port B */
127
#define PINB _SFR_IO8(0x16)
128
129
/* Data Direction Register, Port B */
130
#define DDRB _SFR_IO8(0x17)
131
132
/* Data Register, Port B */
133
#define PORTB _SFR_IO8(0x18)
134
135
/* Input Pins, Port A */
136
#define PINA _SFR_IO8(0x19)
137
138
/* Data Direction Register, Port A */
139
#define DDRA _SFR_IO8(0x1A)
140
141
/* Data Register, Port A */
142
#define PORTA _SFR_IO8(0x1B)
143
144
/* EEPROM Control Register */
145
#define EECR _SFR_IO8(0x1C)
146
147
/* EEPROM Data Register */
148
#define EEDR _SFR_IO8(0x1D)
149
150
/* EEPROM Address Register */
151
#define EEAR _SFR_IO16(0x1E)
152
#define EEARL _SFR_IO8(0x1E)
153
#define EEARH _SFR_IO8(0x1F)
154
155
/* Watchdog Timer Control Register */
156
#define WDTCR _SFR_IO8(0x21)
157
158
/* Timer2 Output Compare Register */
159
#define OCR2 _SFR_IO8(0x23)
160
161
/* Timer/Counter 2 */
162
#define TCNT2 _SFR_IO8(0x24)
163
164
/* Timer/Counter 2 Control register */
165
#define TCCR2 _SFR_IO8(0x25)
166
167
/* T/C 1 Input Capture Register */
168
#define ICR1 _SFR_IO16(0x26)
169
#define ICR1L _SFR_IO8(0x26)
170
#define ICR1H _SFR_IO8(0x27)
171
172
/* Timer/Counter1 Output Compare Register B */
173
#define OCR1B _SFR_IO16(0x28)
174
#define OCR1BL _SFR_IO8(0x28)
175
#define OCR1BH _SFR_IO8(0x29)
176
177
/* Timer/Counter1 Output Compare Register A */
178
#define OCR1A _SFR_IO16(0x2A)
179
#define OCR1AL _SFR_IO8(0x2A)
180
#define OCR1AH _SFR_IO8(0x2B)
181
182
/* Timer/Counter 1 */
183
#define TCNT1 _SFR_IO16(0x2C)
184
#define TCNT1L _SFR_IO8(0x2C)
185
#define TCNT1H _SFR_IO8(0x2D)
186
187
/* Timer/Counter 1 Control and Status Register */
188
#define TCCR1B _SFR_IO8(0x2E)
189
190
/* Timer/Counter 1 Control Register */
191
#define TCCR1A _SFR_IO8(0x2F)
192
193
/* Timer/Counter 0 Asynchronous Control & Status Register */
194
#define ASSR _SFR_IO8(0x30)
195
196
/* Output Compare Register 0 */
197
#define OCR0 _SFR_IO8(0x31)
198
199
/* Timer/Counter 0 */
200
#define TCNT0 _SFR_IO8(0x32)
201
202
/* Timer/Counter 0 Control Register */
203
#define TCCR0 _SFR_IO8(0x33)
204
205
/* MCU Status Register */
206
#define MCUSR _SFR_IO8(0x34)
207
208
/* MCU general Control Register */
209
#define MCUCR _SFR_IO8(0x35)
210
211
/* Timer/Counter Interrupt Flag Register */
212
#define TIFR _SFR_IO8(0x36)
213
214
/* Timer/Counter Interrupt MaSK register */
215
#define TIMSK _SFR_IO8(0x37)
216
217
/* �xternal Interrupt Flag Register */
218
#define EIFR _SFR_IO8(0x38)
219
220
/* External Interrupt MaSK register */
221
#define EIMSK _SFR_IO8(0x39)
222
223
/* External Interrupt Control Register */
224
#define EICR _SFR_IO8(0x3A)
225
226
/* RAM Page Z select register */
227
#define RAMPZ _SFR_IO8(0x3B)
228
229
/* XDIV Divide control register */
230
#define XDIV _SFR_IO8(0x3C)
231
232
/* 0x3D..0x3E SP */
233
234
/* 0x3F SREG */
235
236
/* Interrupt vectors */
237
238
/* External Interrupt 0 */
239
#define INT0_vect _VECTOR(1)
240
#define SIG_INTERRUPT0 _VECTOR(1)
241
242
/* External Interrupt 1 */
243
#define INT1_vect _VECTOR(2)
244
#define SIG_INTERRUPT1 _VECTOR(2)
245
246
/* External Interrupt 2 */
247
#define INT2_vect _VECTOR(3)
248
#define SIG_INTERRUPT2 _VECTOR(3)
249
250
/* External Interrupt 3 */
251
#define INT3_vect _VECTOR(4)
252
#define SIG_INTERRUPT3 _VECTOR(4)
253
254
/* External Interrupt 4 */
255
#define INT4_vect _VECTOR(5)
256
#define SIG_INTERRUPT4 _VECTOR(5)
257
258
/* External Interrupt 5 */
259
#define INT5_vect _VECTOR(6)
260
#define SIG_INTERRUPT5 _VECTOR(6)
261
262
/* External Interrupt 6 */
263
#define INT6_vect _VECTOR(7)
264
#define SIG_INTERRUPT6 _VECTOR(7)
265
266
/* External Interrupt 7 */
267
#define INT7_vect _VECTOR(8)
268
#define SIG_INTERRUPT7 _VECTOR(8)
269
270
/* Timer/Counter2 Compare Match */
271
#define TIMER2_COMP_vect _VECTOR(9)
272
#define SIG_OUTPUT_COMPARE2 _VECTOR(9)
273
274
/* Timer/Counter2 Overflow */
275
#define TIMER2_OVF_vect _VECTOR(10)
276
#define SIG_OVERFLOW2 _VECTOR(10)
277
278
/* Timer/Counter1 Capture Event */
279
#define TIMER1_CAPT_vect _VECTOR(11)
280
#define SIG_INPUT_CAPTURE1 _VECTOR(11)
281
282
/* Timer/Counter1 Compare Match A */
283
#define TIMER1_COMPA_vect _VECTOR(12)
284
#define SIG_OUTPUT_COMPARE1A _VECTOR(12)
285
286
/* Timer/Counter1 Compare Match B */
287
#define TIMER1_COMPB_vect _VECTOR(13)
288
#define SIG_OUTPUT_COMPARE1B _VECTOR(13)
289
290
/* Timer/Counter1 Overflow */
291
#define TIMER1_OVF_vect _VECTOR(14)
292
#define SIG_OVERFLOW1 _VECTOR(14)
293
294
/* Timer/Counter0 Compare Match */
295
#define TIMER0_COMP_vect _VECTOR(15)
296
#define SIG_OUTPUT_COMPARE0 _VECTOR(15)
297
298
/* Timer/Counter0 Overflow */
299
#define TIMER0_OVF_vect _VECTOR(16)
300
#define SIG_OVERFLOW0 _VECTOR(16)
301
302
/* SPI Serial Transfer Complete */
303
#define SPI_STC_vect _VECTOR(17)
304
#define SIG_SPI _VECTOR(17)
305
306
/* UART, Rx Complete */
307
#define UART_RX_vect _VECTOR(18)
308
#define SIG_UART_RECV _VECTOR(18)
309
310
/* UART Data Register Empty */
311
#define UART_UDRE_vect _VECTOR(19)
312
#define SIG_UART_DATA _VECTOR(19)
313
314
/* UART, Tx Complete */
315
#define UART_TX_vect _VECTOR(20)
316
#define SIG_UART_TRANS _VECTOR(20)
317
318
/* ADC Conversion Complete */
319
#define ADC_vect _VECTOR(21)
320
#define SIG_ADC _VECTOR(21)
321
322
/* EEPROM Ready */
323
#define EE_READY_vect _VECTOR(22)
324
#define SIG_EEPROM_READY _VECTOR(22)
325
326
/* Analog Comparator */
327
#define ANALOG_COMP_vect _VECTOR(23)
328
#define SIG_COMPARATOR _VECTOR(23)
329
330
#define _VECTORS_SIZE 96
331
332
/*
333
The Register Bit names are represented by their bit number (0-7).
334
*/
335
336
/* XDIV Divide control register*/
337
#define XDIVEN 7
338
#define XDIV6 6
339
#define XDIV5 5
340
#define XDIV4 4
341
#define XDIV3 3
342
#define XDIV2 2
343
#define XDIV1 1
344
#define XDIV0 0
345
346
/* RAM Page Z select register */
347
#define RAMPZ0 0
348
349
/* External Interrupt Control Register */
350
#define ISC71 7
351
#define ISC70 6
352
#define ISC61 5
353
#define ISC60 4
354
#define ISC51 3
355
#define ISC50 2
356
#define ISC41 1
357
#define ISC40 0
358
359
/* External Interrupt MaSK register */
360
#define INT7 7
361
#define INT6 6
362
#define INT5 5
363
#define INT4 4
364
#define INT3 3
365
#define INT2 2
366
#define INT1 1
367
#define INT0 0
368
369
/* �xternal Interrupt Flag Register */
370
#define INTF7 7
371
#define INTF6 6
372
#define INTF5 5
373
#define INTF4 4
374
375
/* Timer/Counter Interrupt MaSK register */
376
#define OCIE2 7
377
#define TOIE2 6
378
#define TICIE1 5
379
#define OCIE1A 4
380
#define OCIE1B 3
381
#define TOIE1 2
382
#define OCIE0 1
383
#define TOIE0 0
384
385
/* Timer/Counter Interrupt Flag Register */
386
#define OCF2 7
387
#define TOV2 6
388
#define ICF1 5
389
#define OCF1A 4
390
#define OCF1B 3
391
#define TOV1 2
392
#define OCF0 1
393
#define TOV0 0
394
395
/* MCU general Control Register */
396
#define SRE 7
397
#define SRW 6
398
#define SE 5
399
#define SM1 4
400
#define SM0 3
401
402
/* MCU Status Register */
403
#define EXTRF 1
404
#define PORF 0
405
406
/* Timer/Counter 0 Control Register */
407
#define PWM0 6
408
#define COM01 5
409
#define COM00 4
410
#define CTC0 3
411
#define CS02 2
412
#define CS01 1
413
#define CS00 0
414
415
/* Timer/Counter 0 Asynchronous Control & Status Register */
416
#define AS0 3
417
#define TCN0UB 2
418
#define OCR0UB 1
419
#define TCR0UB 0
420
421
/* Timer/Counter 1 Control Register */
422
#define COM1A1 7
423
#define COM1A0 6
424
#define COM1B1 5
425
#define COM1B0 4
426
#define PWM11 1
427
#define PWM10 0
428
429
/* Timer/Counter 1 Control and Status Register */
430
#define ICNC1 7
431
#define ICES1 6
432
#define CTC1 3
433
#define CS12 2
434
#define CS11 1
435
#define CS10 0
436
437
/* Timer/Counter 2 Control register */
438
#define PWM2 6
439
#define COM21 5
440
#define COM20 4
441
#define CTC2 3
442
#define CS22 2
443
#define CS21 1
444
#define CS20 0
445
446
/* Watchdog Timer Control Register */
447
#define WDTOE 4
448
#define WDE 3
449
#define WDP2 2
450
#define WDP1 1
451
#define WDP0 0
452
453
/* Data Register, Port A */
454
#define PA7 7
455
#define PA6 6
456
#define PA5 5
457
#define PA4 4
458
#define PA3 3
459
#define PA2 2
460
#define PA1 1
461
#define PA0 0
462
463
/* Data Direction Register, Port A */
464
#define DDA7 7
465
#define DDA6 6
466
#define DDA5 5
467
#define DDA4 4
468
#define DDA3 3
469
#define DDA2 2
470
#define DDA1 1
471
#define DDA0 0
472
473
/* Input Pins, Port A */
474
#define PINA7 7
475
#define PINA6 6
476
#define PINA5 5
477
#define PINA4 4
478
#define PINA3 3
479
#define PINA2 2
480
#define PINA1 1
481
#define PINA0 0
482
483
/* Data Register, Port B */
484
#define PB7 7
485
#define PB6 6
486
#define PB5 5
487
#define PB4 4
488
#define PB3 3
489
#define PB2 2
490
#define PB1 1
491
#define PB0 0
492
493
/* Data Direction Register, Port B */
494
#define DDB7 7
495
#define DDB6 6
496
#define DDB5 5
497
#define DDB4 4
498
#define DDB3 3
499
#define DDB2 2
500
#define DDB1 1
501
#define DDB0 0
502
503
/* Input Pins, Port B */
504
#define PINB7 7
505
#define PINB6 6
506
#define PINB5 5
507
#define PINB4 4
508
#define PINB3 3
509
#define PINB2 2
510
#define PINB1 1
511
#define PINB0 0
512
513
/* Data Register, Port C */
514
#define PC7 7
515
#define PC6 6
516
#define PC5 5
517
#define PC4 4
518
#define PC3 3
519
#define PC2 2
520
#define PC1 1
521
#define PC0 0
522
523
/* Data Register, Port D */
524
#define PD7 7
525
#define PD6 6
526
#define PD5 5
527
#define PD4 4
528
#define PD3 3
529
#define PD2 2
530
#define PD1 1
531
#define PD0 0
532
533
/* Data Direction Register, Port D */
534
#define DDD7 7
535
#define DDD6 6
536
#define DDD5 5
537
#define DDD4 4
538
#define DDD3 3
539
#define DDD2 2
540
#define DDD1 1
541
#define DDD0 0
542
543
/* Input Pins, Port D */
544
#define PIND7 7
545
#define PIND6 6
546
#define PIND5 5
547
#define PIND4 4
548
#define PIND3 3
549
#define PIND2 2
550
#define PIND1 1
551
#define PIND0 0
552
553
/* Data Register, Port E */
554
#define PE7 7
555
#define PE6 6
556
#define PE5 5
557
#define PE4 4
558
#define PE3 3
559
#define PE2 2
560
#define PE1 1
561
#define PE0 0
562
563
/* Data Direction Register, Port E */
564
#define DDE7 7
565
#define DDE6 6
566
#define DDE5 5
567
#define DDE4 4
568
#define DDE3 3
569
#define DDE2 2
570
#define DDE1 1
571
#define DDE0 0
572
573
/* Input Pins, Port E */
574
#define PINE7 7
575
#define PINE6 6
576
#define PINE5 5
577
#define PINE4 4
578
#define PINE3 3
579
#define PINE2 2
580
#define PINE1 1
581
#define PINE0 0
582
583
/* Input Pins, Port F */
584
#define PINF7 7
585
#define PINF6 6
586
#define PINF5 5
587
#define PINF4 4
588
#define PINF3 3
589
#define PINF2 2
590
#define PINF1 1
591
#define PINF0 0
592
593
/* SPI Status Register */
594
#define SPIF 7
595
#define WCOL 6
596
597
/* SPI Control Register */
598
#define SPIE 7
599
#define SPE 6
600
#define DORD 5
601
#define MSTR 4
602
#define CPOL 3
603
#define CPHA 2
604
#define SPR1 1
605
#define SPR0 0
606
607
/* UART Status Register */
608
#define RXC 7
609
#define TXC 6
610
#define UDRE 5
611
#define FE 4
612
#define DOR 3
613
614
/* UART Control Register */
615
#define RXCIE 7
616
#define TXCIE 6
617
#define UDRIE 5
618
#define RXEN 4
619
#define TXEN 3
620
#define CHR9 2
621
#define RXB8 1
622
#define TXB8 0
623
624
/* Analog Comparator Control and Status Register */
625
#define ACD 7
626
#define ACO 5
627
#define ACI 4
628
#define ACIE 3
629
#define ACIC 2
630
#define ACIS1 1
631
#define ACIS0 0
632
633
/* ADC Control and status register */
634
#define ADEN 7
635
#define ADSC 6
636
#define ADFR 5
637
#define ADIF 4
638
#define ADIE 3
639
#define ADPS2 2
640
#define ADPS1 1
641
#define ADPS0 0
642
643
/* ADC Multiplexer select */
644
#define MUX2 2
645
#define MUX1 1
646
#define MUX0 0
647
648
/* EEPROM Control Register */
649
#define EERIE 3
650
#define EEMWE 2
651
#define EEWE 1
652
#define EERE 0
653
654
/* Constants */
655
#define RAMEND 0x0FFF
/*Last On-Chip SRAM Location*/
656
#define XRAMEND 0xFFFF
657
#define E2END 0x0FFF
658
#define E2PAGESIZE 0
659
#define FLASHEND 0x1FFFF
660
661
662
/* Fuses */
663
#define FUSE_MEMORY_SIZE 1
664
665
/* Low Fuse Byte */
666
#define FUSE_CKSEL0 (unsigned char)~_BV(0)
/* Select Clock Source */
667
#define FUSE_CKSEL1 (unsigned char)~_BV(1)
/* Select Clock Source */
668
#define FUSE_CKSEL2 (unsigned char)~_BV(2)
/* Select Clock Source */
669
#define FUSE_CKSEL3 (unsigned char)~_BV(3)
/* Select Clock Source */
670
#define FUSE_SUT0 (unsigned char)~_BV(4)
/* Select start-up time */
671
#define FUSE_SUT1 (unsigned char)~_BV(5)
/* Select start-up time */
672
#define FUSE_BODEN (unsigned char)~_BV(6)
/* Brown out detector enable */
673
#define FUSE_BODLEVEL (unsigned char)~_BV(7)
/* Brown out detector trigger level */
674
#define LFUSE_DEFAULT (FUSE_SUT1 & FUSE_SUT0 & FUSE_CKSEL3 & FUSE_CKSEL2 & FUSE_CKSEL1)
675
676
677
/* Lock Bits */
678
#define __LOCK_BITS_EXIST
679
680
681
/* Signature */
682
#define SIGNATURE_0 0x1E
683
#define SIGNATURE_1 0x97
684
#define SIGNATURE_2 0x01
685
687
#endif
/* _AVR_IOM103_H_ */
Generated by
1.8.13