diff options
Diffstat (limited to 'cpukit/score/cpu/avr/avr/io90scr100.h')
-rw-r--r-- | cpukit/score/cpu/avr/avr/io90scr100.h | 1698 |
1 files changed, 1698 insertions, 0 deletions
diff --git a/cpukit/score/cpu/avr/avr/io90scr100.h b/cpukit/score/cpu/avr/avr/io90scr100.h new file mode 100644 index 0000000000..c863b391ac --- /dev/null +++ b/cpukit/score/cpu/avr/avr/io90scr100.h @@ -0,0 +1,1698 @@ +/* Copyright (c) 2009 Atmel Corporation + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +/* $Id$ */ + +/* avr/io90scr100.h - definitions for AT90SCR100 */ + +/* This file should only be included from <avr/io.h>, never directly. */ + +#ifndef _AVR_IO_H_ +# error "Include <avr/io.h> instead of this file." +#endif + +#ifndef _AVR_IOXXX_H_ +# define _AVR_IOXXX_H_ "io90scr100.h" +#else +# error "Attempt to include more than one <avr/ioXXX.h> file." +#endif + + +#ifndef _AVR_AT90SCR100_H_ +#define _AVR_AT90SCR100_H_ 1 + + +/* Registers and associated bit numbers. */ + +#define PINA _SFR_IO8(0x00) +#define PINA0 0 +#define PINA1 1 +#define PINA2 2 +#define PINA3 3 +#define PINA4 4 +#define PINA5 5 +#define PINA6 6 +#define PINA7 7 + +#define DDRA _SFR_IO8(0x01) +#define DDA0 0 +#define DDA1 1 +#define DDA2 2 +#define DDA3 3 +#define DDA4 4 +#define DDA5 5 +#define DDA6 6 +#define DDA7 7 + +#define PORTA _SFR_IO8(0x02) +#define PORTA0 0 +#define PORTA1 1 +#define PORTA2 2 +#define PORTA3 3 +#define PORTA4 4 +#define PORTA5 5 +#define PORTA6 6 +#define PORTA7 7 + +#define PINB _SFR_IO8(0x03) +#define PINB0 0 +#define PINB1 1 +#define PINB2 2 +#define PINB3 3 +#define PINB4 4 +#define PINB5 5 +#define PINB6 6 +#define PINB7 7 + +#define DDRB _SFR_IO8(0x04) +#define DDB0 0 +#define DDB1 1 +#define DDB2 2 +#define DDB3 3 +#define DDB4 4 +#define DDB5 5 +#define DDB6 6 +#define DDB7 7 + +#define PORTB _SFR_IO8(0x05) +#define PORTB0 0 +#define PORTB1 1 +#define PORTB2 2 +#define PORTB3 3 +#define PORTB4 4 +#define PORTB5 5 +#define PORTB6 6 +#define PORTB7 7 + +#define PINC _SFR_IO8(0x06) +#define PINC0 0 +#define PINC1 1 +#define PINC2 2 +#define PINC3 3 +#define PINC4 4 +#define PINC5 5 +#define PINC6 6 +#define PINC7 7 + +#define DDRC _SFR_IO8(0x07) +#define DDC0 0 +#define DDC1 1 +#define DDC2 2 +#define DDC3 3 +#define DDC4 4 +#define DDC5 5 +#define DDC6 6 +#define DDC7 7 + +#define PORTC _SFR_IO8(0x08) +#define PORTC0 0 +#define PORTC1 1 +#define PORTC2 2 +#define PORTC3 3 +#define PORTC4 4 +#define PORTC5 5 +#define PORTC6 6 +#define PORTC7 7 + +#define PIND _SFR_IO8(0x09) +#define PIND0 0 +#define PIND1 1 +#define PIND2 2 +#define PIND3 3 +#define PIND4 4 +#define PIND5 5 +#define PIND6 6 +#define PIND7 7 + +#define DDRD _SFR_IO8(0x0A) +#define DDD0 0 +#define DDD1 1 +#define DDD2 2 +#define DDD3 3 +#define DDD4 4 +#define DDD5 5 +#define DDD6 6 +#define DDD7 7 + +#define PORTD _SFR_IO8(0x0B) +#define PORTD0 0 +#define PORTD1 1 +#define PORTD2 2 +#define PORTD3 3 +#define PORTD4 4 +#define PORTD5 5 +#define PORTD6 6 +#define PORTD7 7 + +#define PINE _SFR_IO8(0x0C) +#define PINE0 0 +#define PINE1 1 +#define PINE2 2 +#define PINE3 3 +#define PINE4 4 +#define PINE5 5 +#define PINE6 6 +#define PINE7 7 + +#define DDRE _SFR_IO8(0x0D) +#define DDE0 0 +#define DDE1 1 +#define DDE2 2 +#define DDE3 3 +#define DDE4 4 +#define DDE5 5 +#define DDE6 6 +#define DDE7 7 + +#define PORTE _SFR_IO8(0x0E) +#define PORTE0 0 +#define PORTE1 1 +#define PORTE2 2 +#define PORTE3 3 +#define PORTE4 4 +#define PORTE5 5 +#define PORTE6 6 +#define PORTE7 7 + +#define TIFR0 _SFR_IO8(0x15) +#define TOV0 0 +#define OCF0A 1 +#define OCF0B 2 + +#define TIFR1 _SFR_IO8(0x16) +#define TOV1 0 +#define OCF1A 1 +#define OCF1B 2 +#define ICF1 5 + +#define TIFR2 _SFR_IO8(0x17) +#define TOV2 0 +#define OCF2A 1 +#define OCF2B 2 + +#define EIRR _SFR_IO8(0x1A) +#define INTD2 2 +#define INTD3 3 + +#define PCIFR _SFR_IO8(0x1B) +#define PCIF0 0 +#define PCIF1 1 +#define PCIF2 2 +#define PCIF3 3 + +#define EIFR _SFR_IO8(0x1C) +#define INTF0 0 +#define INTF1 1 +#define INTF2 2 +#define INTF3 3 + +#define EIMSK _SFR_IO8(0x1D) +#define INT0 0 +#define INT1 1 +#define INT2 2 +#define INT3 3 + +#define GPIOR0 _SFR_IO8(0x1E) +#define GPIOR00 0 +#define GPIOR01 1 +#define GPIOR02 2 +#define GPIOR03 3 +#define GPIOR04 4 +#define GPIOR05 5 +#define GPIOR06 6 +#define GPIOR07 7 + +#define EECR _SFR_IO8(0x1F) +#define EERE 0 +#define EEPE 1 +#define EEMPE 2 +#define EERIE 3 +#define EEPM0 4 +#define EEPM1 5 + +#define EEDR _SFR_IO8(0x20) +#define EEDR0 0 +#define EEDR1 1 +#define EEDR2 2 +#define EEDR3 3 +#define EEDR4 4 +#define EEDR5 5 +#define EEDR6 6 +#define EEDR7 7 + +#define EEAR _SFR_IO16(0x21) + +#define EEARL _SFR_IO8(0x21) +#define EEAR0 0 +#define EEAR1 1 +#define EEAR2 2 +#define EEAR3 3 +#define EEAR4 4 +#define EEAR5 5 +#define EEAR6 6 +#define EEAR7 7 + +#define EEARH _SFR_IO8(0x22) +#define EEAR8 0 +#define EEAR9 1 +#define EEAR10 2 +#define EEAR11 3 + +#define GTCCR _SFR_IO8(0x23) +#define PSRSYNC 0 +#define PSRASY 1 +#define TSM 7 + +#define TCCR0A _SFR_IO8(0x24) +#define WGM00 0 +#define WGM01 1 +#define COM0B0 4 +#define COM0B1 5 +#define COM0A0 6 +#define COM0A1 7 + +#define TCCR0B _SFR_IO8(0x25) +#define CS00 0 +#define CS01 1 +#define CS02 2 +#define WGM02 3 +#define FOC0B 6 +#define FOC0A 7 + +#define TCNT0 _SFR_IO8(0x26) +#define TCNT0_0 0 +#define TCNT0_1 1 +#define TCNT0_2 2 +#define TCNT0_3 3 +#define TCNT0_4 4 +#define TCNT0_5 5 +#define TCNT0_6 6 +#define TCNT0_7 7 + +#define OCR0A _SFR_IO8(0x27) +#define OCR0A_0 0 +#define OCR0A_1 1 +#define OCR0A_2 2 +#define OCR0A_3 3 +#define OCR0A_4 4 +#define OCR0A_5 5 +#define OCR0A_6 6 +#define OCR0A_7 7 + +#define OCR0B _SFR_IO8(0x28) +#define OCR0B_0 0 +#define OCR0B_1 1 +#define OCR0B_2 2 +#define OCR0B_3 3 +#define OCR0B_4 4 +#define OCR0B_5 5 +#define OCR0B_6 6 +#define OCR0B_7 7 + +#define GPIOR1 _SFR_IO8(0x2A) +#define GPIOR10 0 +#define GPIOR11 1 +#define GPIOR12 2 +#define GPIOR13 3 +#define GPIOR14 4 +#define GPIOR15 5 +#define GPIOR16 6 +#define GPIOR17 7 + +#define GPIOR2 _SFR_IO8(0x2B) +#define GPIOR20 0 +#define GPIOR21 1 +#define GPIOR22 2 +#define GPIOR23 3 +#define GPIOR24 4 +#define GPIOR25 5 +#define GPIOR26 6 +#define GPIOR27 7 + +#define SPCR _SFR_IO8(0x2C) +#define SPR0 0 +#define SPR1 1 +#define CPHA 2 +#define CPOL 3 +#define MSTR 4 +#define DORD 5 +#define SPE 6 +#define SPIE 7 + +#define SPSR _SFR_IO8(0x2D) +#define SPI2X 0 +#define WCOL 6 +#define SPIF 7 + +#define SPDR _SFR_IO8(0x2E) +#define SPDR0 0 +#define SPDR1 1 +#define SPDR2 2 +#define SPDR3 3 +#define SPDR4 4 +#define SPDR5 5 +#define SPDR6 6 +#define SPDR7 7 + +#define OCDR _SFR_IO8(0x31) +#define OCDR0 0 +#define OCDR1 1 +#define OCDR2 2 +#define OCDR3 3 +#define OCDR4 4 +#define OCDR5 5 +#define OCDR6 6 +#define OCDR7 7 + +#define SMCR _SFR_IO8(0x33) +#define SE 0 +#define SM0 1 +#define SM1 2 +#define SM2 3 + +#define MCUSR _SFR_IO8(0x34) +#define PORF 0 +#define EXTRF 1 +#define BORF 2 +#define WDRF 3 +#define JTRF 4 + +#define MCUCR _SFR_IO8(0x35) +#define IVCE 0 +#define IVSEL 1 +#define PUD 4 +#define BODSE 5 +#define BODS 6 +#define JTD 7 + +#define SPMCSR _SFR_IO8(0x37) +#define SPMEN 0 +#define PGERS 1 +#define PGWRT 2 +#define BLBSET 3 +#define RWWSRE 4 +#define SIGRD 5 +#define RWWSB 6 +#define SPMIE 7 + +#define RAMPZ _SFR_IO8(0x3B) +#define RAMPZ0 0 + +#define WDTCSR _SFR_MEM8(0x60) +#define WDP0 0 +#define WDP1 1 +#define WDP2 2 +#define WDE 3 +#define WDCE 4 +#define WDP3 5 +#define WDIE 6 +#define WDIF 7 + +#define CLKPR _SFR_MEM8(0x61) +#define CLKPS0 0 +#define CLKPS1 1 +#define CLKPS2 2 +#define CLKPS3 3 +#define CLKPCE 7 + +#define PLLCR _SFR_MEM8(0x62) +#define ON 0 +#define LOCK 1 +#define PLLMUX 7 + +#define SMONCR _SFR_MEM8(0x63) +#define SMONEN 0 +#define SMONIE 1 +#define SMONIF 4 + +#define PRR0 _SFR_MEM8(0x64) +#define PRUSART0 1 +#define PRSPI 2 +#define PRTIM1 3 +#define PRTIM0 5 +#define PRTIM2 6 +#define PRTWI 7 + +#define PRR1 _SFR_MEM8(0x65) +#define PRUSBH 0 +#define PRUSB 1 +#define PRHSSPI 2 +#define PRSCI 3 +#define PRAES 4 +#define PRKB 5 + +#define OSCCAL _SFR_MEM8(0x66) +#define CAL0 0 +#define CAL1 1 +#define CAL2 2 +#define CAL3 3 +#define CAL4 4 +#define CAL5 5 +#define CAL6 6 +#define CAL7 7 + +#define PCICR _SFR_MEM8(0x68) +#define PCIE0 0 +#define PCIE1 1 +#define PCIE2 2 +#define PCIE3 3 + +#define EICRA _SFR_MEM8(0x69) +#define ISC00 0 +#define ISC01 1 +#define ISC10 2 +#define ISC11 3 +#define ISC20 4 +#define ISC21 5 +#define ISC30 6 +#define ISC31 7 + +#define PCMSK0 _SFR_MEM8(0x6B) +#define PCINT0 0 +#define PCINT1 1 +#define PCINT2 2 +#define PCINT3 3 +#define PCINT4 4 +#define PCINT5 5 +#define PCINT6 6 +#define PCINT7 7 + +#define PCMSK1 _SFR_MEM8(0x6C) +#define PCINT8 0 +#define PCINT9 1 +#define PCINT10 2 +#define PCINT11 3 +#define PCINT12 4 +#define PCINT13 5 +#define PCINT14 6 +#define PCINT15 7 + +#define PCMSK2 _SFR_MEM8(0x6D) +#define PCINT16 0 +#define PCINT17 1 +#define PCINT18 2 +#define PCINT19 3 +#define PCINT20 4 +#define PCINT21 5 +#define PCINT22 6 +#define PCINT23 7 + +#define TIMSK0 _SFR_MEM8(0x6E) +#define TOIE0 0 +#define OCIE0A 1 +#define OCIE0B 2 + +#define TIMSK1 _SFR_MEM8(0x6F) +#define TOIE1 0 +#define OCIE1A 1 +#define OCIE1B 2 +#define ICIE1 5 + +#define TIMSK2 _SFR_MEM8(0x70) +#define TOIE2 0 +#define OCIE2A 1 +#define OCIE2B 2 + +#define PCMSK3 _SFR_MEM8(0x73) + +#define LEDCR _SFR_MEM8(0x75) +#define LED00 0 +#define LED01 1 +#define LED10 2 +#define LED11 3 +#define LED20 4 +#define LED21 5 +#define lED30 6 +#define LED31 7 + +#define AESCR _SFR_MEM8(0x78) +#define AESGO 0 +#define ENCRYPT 1 +#define KS 3 +#define KEYGN 4 +#define AUTOKEY 5 +#define AESIF 6 +#define AESIE 7 + +#define AESACR _SFR_MEM8(0x79) +#define KD 0 +#define AUTOINC 1 +#define MANINC 2 +#define XOR 3 + +#define AESADDR _SFR_MEM8(0x7A) +#define ADDR0 0 +#define ADDR1 1 +#define ADDR2 2 +#define ADDR3 3 +#define ADDR4 4 +#define ADDR5 5 +#define ADDR6 6 +#define ADDR7 7 + +#define AESDR _SFR_MEM8(0x7B) +#define DATA0 0 +#define DATA1 1 +#define DATA2 2 +#define DATA3 3 +#define DATA4 4 +#define DATA5 5 +#define DATA6 6 +#define DATA7 7 + +#define TCCR1A _SFR_MEM8(0x80) +#define WGM10 0 +#define WGM11 1 +#define COM1B0 4 +#define COM1B1 5 +#define COM1A0 6 +#define COM1A1 7 + +#define TCCR1B _SFR_MEM8(0x81) +#define CS10 0 +#define CS11 1 +#define CS12 2 +#define WGM12 3 +#define WGM13 4 +#define ICES1 6 +#define ICNC1 7 + +#define TCCR1C _SFR_MEM8(0x82) +#define FOC1B 6 +#define FOC1A 7 + +#define TCNT1 _SFR_MEM16(0x84) + +#define TCNT1L _SFR_MEM8(0x84) +#define TCNT1L0 0 +#define TCNT1L1 1 +#define TCNT1L2 2 +#define TCNT1L3 3 +#define TCNT1L4 4 +#define TCNT1L5 5 +#define TCNT1L6 6 +#define TCNT1L7 7 + +#define TCNT1H _SFR_MEM8(0x85) +#define TCNT1H0 0 +#define TCNT1H1 1 +#define TCNT1H2 2 +#define TCNT1H3 3 +#define TCNT1H4 4 +#define TCNT1H5 5 +#define TCNT1H6 6 +#define TCNT1H7 7 + +#define ICR1 _SFR_MEM16(0x86) + +#define ICR1L _SFR_MEM8(0x86) +#define ICR1L0 0 +#define ICR1L1 1 +#define ICR1L2 2 +#define ICR1L3 3 +#define ICR1L4 4 +#define ICR1L5 5 +#define ICR1L6 6 +#define ICR1L7 7 + +#define ICR1H _SFR_MEM8(0x87) +#define ICR1H0 0 +#define ICR1H1 1 +#define ICR1H2 2 +#define ICR1H3 3 +#define ICR1H4 4 +#define ICR1H5 5 +#define ICR1H6 6 +#define ICR1H7 7 + +#define OCR1A _SFR_MEM16(0x88) + +#define OCR1AL _SFR_MEM8(0x88) +#define OCR1AL0 0 +#define OCR1AL1 1 +#define OCR1AL2 2 +#define OCR1AL3 3 +#define OCR1AL4 4 +#define OCR1AL5 5 +#define OCR1AL6 6 +#define OCR1AL7 7 + +#define OCR1AH _SFR_MEM8(0x89) +#define OCR1AH0 0 +#define OCR1AH1 1 +#define OCR1AH2 2 +#define OCR1AH3 3 +#define OCR1AH4 4 +#define OCR1AH5 5 +#define OCR1AH6 6 +#define OCR1AH7 7 + +#define OCR1B _SFR_MEM16(0x8A) + +#define OCR1BL _SFR_MEM8(0x8A) +#define OCR1BL0 0 +#define OCR1BL1 1 +#define OCR1BL2 2 +#define OCR1BL3 3 +#define OCR1BL4 4 +#define OCR1BL5 5 +#define OCR1BL6 6 +#define OCR1BL7 7 + +#define OCR1BH _SFR_MEM8(0x8B) +#define OCR1BH0 0 +#define OCR1BH1 1 +#define OCR1BH2 2 +#define OCR1BH3 3 +#define OCR1BH4 4 +#define OCR1BH5 5 +#define OCR1BH6 6 +#define OCR1BH7 7 + +#define KBLSR _SFR_MEM8(0x8D) +#define KBLS0 0 +#define KBLS1 1 +#define KBLS2 2 +#define KBLS3 3 +#define KBLS4 4 +#define KBLS5 5 +#define KBLS6 6 +#define KBLS7 7 + +#define KBER _SFR_MEM8(0x8E) +#define KBE0 0 +#define KBE1 1 +#define KBE2 2 +#define KBE3 3 +#define KBE4 4 +#define KBE5 5 +#define KBE6 6 +#define KBE7 7 + +#define KBFR _SFR_MEM8(0x8F) +#define KBF0 0 +#define KBF1 1 +#define KBF2 2 +#define KBF3 3 +#define KBF4 4 +#define KBF5 5 +#define KBF6 6 +#define KBF7 7 + +#define RDWDR _SFR_MEM8(0x90) +#define RDD0 0 +#define RDD1 1 +#define RDD2 2 +#define RDD3 3 +#define RDD4 4 +#define RDD5 5 +#define RDD6 6 +#define RDD7 7 + +#define LFSR0 _SFR_MEM8(0x91) +#define LFSD0 0 +#define LFSD1 1 +#define LFSD2 2 +#define LFSD3 3 +#define LFSD4 4 +#define LFSD5 5 +#define LFSD6 6 +#define LFSD7 7 + +#define LFSR1 _SFR_MEM8(0x92) +#define LFSD8 0 +#define LFSD9 1 +#define LFSD10 2 +#define LFSD11 3 +#define LFSD12 4 +#define LFSD13 5 +#define LFSD14 6 +#define LFSD15 7 + +#define LFSR2 _SFR_MEM8(0x93) +#define LFSD16 0 +#define LFSD17 1 +#define LFSD18 2 +#define LFSD19 3 +#define LFSD20 4 +#define LFSD21 5 +#define LFSD22 6 +#define LFSD23 7 + +#define LFSR3 _SFR_MEM8(0x94) +#define LFSD24 0 +#define LFSD25 1 +#define LFSD26 2 +#define LFSD27 3 +#define LFSD28 4 +#define LFSD29 5 +#define LFSD30 6 +#define LFSD31 7 + +#define RNGCR _SFR_MEM8(0x95) +#define ROSCE 0 + +#define UHSR _SFR_MEM8(0x99) +#define SPEED 3 + +#define UPINT _SFR_MEM8(0x9A) +#define PINT0 0 +#define PINT1 1 +#define PINT2 2 +#define PINT3 3 + +#define UPBCX _SFR_MEM16(0x9B) + +#define UPBCXL _SFR_MEM8(0x9B) +#define PBYTCT0 0 +#define PBYTCT1 1 +#define PBYTCT2 2 +#define PBYTCT3 3 +#define PBYTCT4 4 +#define PBYTCT5 5 +#define PBYTCT6 6 +#define PBYTCT7 7 + +#define UPBCXH _SFR_MEM8(0x9C) +#define PBYTCT8 0 +#define PBYTCT9 1 +#define PBYTCT10 2 + +#define UPERRX _SFR_MEM8(0x9D) +#define DATATGL 0 +#define DATAPID 1 +#define PID 2 +#define PTIMEOUT 3 +#define CRC16 4 +#define COUNTER0 5 +#define COUNTER1 6 + +#define UHCR _SFR_MEM8(0x9E) +#define SOFEN 0 +#define RESET 1 +#define RESUME 2 +#define FRZCLK 4 +#define PAD0 5 +#define PAD1 6 +#define UHEN 7 + +#define UHINT _SFR_MEM8(0x9F) +#define DCONNI 0 +#define DDISCI 1 +#define RSTI 2 +#define RSMEDI 3 +#define RXRSMI 4 +#define HSOFI 5 +#define HWUPI 6 + +#define UHIEN _SFR_MEM8(0xA0) +#define DCONNE 0 +#define DDISCE 1 +#define RSTE 2 +#define RSMEDE 3 +#define RXRSME 4 +#define HSOFE 5 +#define HWUPE 6 + +#define UHADDR _SFR_MEM8(0xA1) +#define HADDR0 0 +#define HADDR1 1 +#define HADDR2 2 +#define HADDR3 3 +#define HADDR4 4 +#define HADDR5 5 +#define HADDR6 6 + +#define UHFNUM _SFR_MEM16(0xA2) + +#define UHFNUML _SFR_MEM8(0xA2) +#define FNUM0 0 +#define FNUM1 1 +#define FNUM2 2 +#define FNUM3 3 +#define FNUM4 4 +#define FNUM5 5 +#define FNUM6 6 +#define FNUM7 7 + +#define UHFNUMH _SFR_MEM8(0xA3) +#define FNUM8 0 +#define FNUM9 1 +#define FNUM10 2 + +#define UHFLEN _SFR_MEM8(0xA4) +#define FLEN0 0 +#define FLEN1 1 +#define FLEN2 2 +#define FLEN3 3 +#define FLEN4 4 +#define FLEN5 5 +#define FLEN6 6 +#define FLEN7 7 + +#define UPINRQX _SFR_MEM8(0xA5) +#define INRQ0 0 +#define INRQ1 1 +#define INRQ2 2 +#define INRQ3 3 +#define INRQ4 4 +#define INRQ5 5 +#define INRQ6 6 +#define INRQ7 7 + +#define UPINTX _SFR_MEM8(0xA6) +#define RXINI 0 +#define RXSTALLI 1 +#define TXOUTI 2 +#define TXSTPI 3 +#define PERRI 4 +#define RWAL 5 +#define NAKEDI 6 +#define FIFOCON 7 + +#define UPNUM _SFR_MEM8(0xA7) +#define PNUM0 0 +#define PNUM1 1 + +#define UPRST _SFR_MEM8(0xA8) +#define P0RST 0 +#define P1RST 1 +#define P2RST 2 +#define P3RST 3 + +#define UPCRX _SFR_MEM8(0xA9) +#define PEN 0 +#define RSTDT 3 +#define INMODE 5 +#define PFREEZE 6 + +#define UPCFG0X _SFR_MEM8(0xAA) +#define PEPNUM0 0 +#define PEPNUM1 1 +#define PEPNUM2 2 +#define PEPNUM3 3 +#define PTOKEN0 4 +#define PTOKEN1 5 +#define PTYPE0 6 +#define PTYPE1 7 + +#define UPCFG1X _SFR_MEM8(0xAB) +#define ALLOC 1 +#define PBK0 2 +#define PBK1 3 +#define PSIZE0 4 +#define PSIZE1 5 +#define PSIZE2 6 + +#define UPSTAX _SFR_MEM8(0xAC) +#define NBUSYBK0 0 +#define NBUSYBK1 1 +#define DTSEQ0 2 +#define DTSEQ1 3 +#define UNDERFI 5 +#define OVERFI 6 +#define CFGOK 7 + +#define UPCFG2X _SFR_MEM8(0xAD) +#define INTFRQ0 0 +#define INTFRQ1 1 +#define INTFRQ2 2 +#define INTFRQ3 3 +#define INTFRQ4 4 +#define INTFRQ5 5 +#define INTFRQ6 6 +#define INTFRQ7 7 + +#define UPIENX _SFR_MEM8(0xAE) +#define RXINE 0 +#define RXSTALLE 1 +#define TXOUTE 2 +#define TXSTPE 3 +#define PERRE 4 +#define NAKEDE 6 +#define FLERRE 7 + +#define UPDATX _SFR_MEM8(0xAF) +#define PDAT0 0 +#define PDAT1 1 +#define PDAT2 2 +#define PDAT3 3 +#define PDAT4 4 +#define PDAT5 5 +#define PDAT6 6 +#define PDAT7 7 + +#define TCCR2A _SFR_MEM8(0xB0) +#define WGM20 0 +#define WGM21 1 +#define COM2B0 4 +#define COM2B1 5 +#define COM2A0 6 +#define COM2A1 7 + +#define TCCR2B _SFR_MEM8(0xB1) +#define CS20 0 +#define CS21 1 +#define CS22 2 +#define WGM22 3 +#define FOC2B 6 +#define FOC2A 7 + +#define TCNT2 _SFR_MEM8(0xB2) +#define TCNT2_0 0 +#define TCNT2_1 1 +#define TCNT2_2 2 +#define TCNT2_3 3 +#define TCNT2_4 4 +#define TCNT2_5 5 +#define TCNT2_6 6 +#define TCNT2_7 7 + +#define OCR2A _SFR_MEM8(0xB3) +#define OCR2A0 0 +#define OCR2A1 1 +#define OCR2A2 2 +#define OCR2A3 3 +#define OCR2A4 4 +#define OCR2A5 5 +#define OCR2A6 6 +#define OCR2A7 7 + +#define OCR2B _SFR_MEM8(0xB4) +#define OCR2B0 0 +#define OCR2B1 1 +#define OCR2B2 2 +#define OCR2B3 3 +#define OCR2B4 4 +#define OCR2B5 5 +#define OCR2B6 6 +#define OCR2B7 7 + +#define ASSR _SFR_MEM8(0xB6) +#define TCR2BUB 0 +#define TCR2AUB 1 +#define OCR2BUB 2 +#define OCR2AUB 3 +#define TCN2UB 4 +#define AS2 5 +#define EXCLK 6 + +#define TWBR _SFR_MEM8(0xB8) +#define TWBR0 0 +#define TWBR1 1 +#define TWBR2 2 +#define TWBR3 3 +#define TWBR4 4 +#define TWBR5 5 +#define TWBR6 6 +#define TWBR7 7 + +#define TWSR _SFR_MEM8(0xB9) +#define TWPS0 0 +#define TWPS1 1 +#define TWS3 3 +#define TWS4 4 +#define TWS5 5 +#define TWS6 6 +#define TWS7 7 + +#define TWAR _SFR_MEM8(0xBA) +#define TWGCE 0 +#define TWA0 1 +#define TWA1 2 +#define TWA2 3 +#define TWA3 4 +#define TWA4 5 +#define TWA5 6 +#define TWA6 7 + +#define TWDR _SFR_MEM8(0xBB) +#define TWD0 0 +#define TWD1 1 +#define TWD2 2 +#define TWD3 3 +#define TWD4 4 +#define TWD5 5 +#define TWD6 6 +#define TWD7 7 + +#define TWCR _SFR_MEM8(0xBC) +#define TWIE 0 +#define TWEN 2 +#define TWWC 3 +#define TWSTO 4 +#define TWSTA 5 +#define TWEA 6 +#define TWINT 7 + +#define TWAMR _SFR_MEM8(0xBD) +#define TWAM0 1 +#define TWAM1 2 +#define TWAM2 3 +#define TWAM3 4 +#define TWAM4 5 +#define TWAM5 6 +#define TWAM6 7 + +#define UCSR0A _SFR_MEM8(0xC0) +#define MPCM0 0 +#define U2X0 1 +#define UPE0 2 +#define DOR0 3 +#define FE0 4 +#define UDRE0 5 +#define TXC0 6 +#define RXC0 7 + +#define UCSR0B _SFR_MEM8(0xC1) +#define TXB80 0 +#define RXB80 1 +#define UCSZ02 2 +#define TXEN0 3 +#define RXEN0 4 +#define UDRIE0 5 +#define TXCIE0 6 +#define RXCIE0 7 + +#define UCSR0C _SFR_MEM8(0xC2) +#define UCPOL0 0 +#define UCSZ00 1 +#define UCSZ01 2 +#define USBS0 3 +#define UPM00 4 +#define UPM01 5 +#define UMSEL00 6 +#define UMSEL01 7 + +#define UBRR0 _SFR_MEM16(0xC4) + +#define UBRR0L _SFR_MEM8(0xC4) +#define UBRR00 0 +#define UBRR01 1 +#define UBRR02 2 +#define UBRR03 3 +#define UBRR04 4 +#define UBRR05 5 +#define UBRR06 6 +#define UBRR07 7 + +#define UBRR0H _SFR_MEM8(0xC5) +#define UBRR08 0 +#define UBRR09 1 +#define UBRR010 2 +#define UBRR011 3 + +#define UDR0 _SFR_MEM8(0xC6) +#define UDR00 0 +#define UDR01 1 +#define UDR02 2 +#define UDR03 3 +#define UDR04 4 +#define UDR05 5 +#define UDR06 6 +#define UDR07 7 + +#define USBENUM _SFR_MEM8(0xCA) +#define USBENUM0 0 +#define USBENUM1 1 +#define USBENUM2 2 + +#define USBCSEX _SFR_MEM8(0xCB) +#define TXC 0 +#define RCVD 1 +#define RXSETUP 2 +#define STSENT 3 +#define TXPB 4 +#define FSTALL 5 +#define IERR 6 + +#define USBDBCEX _SFR_MEM8(0xCC) +#define BCT0 0 +#define BCT1 1 +#define BCT2 2 +#define BCT3 3 +#define BCT4 4 +#define BCT5 5 +#define BCT6 6 +#define BCT7 7 + +#define USBFCEX _SFR_MEM8(0xCD) +#define EPTYP0 0 +#define EPTYP1 1 +#define EPDIR 2 +#define EPE 7 + +#define HSSPITO _SFR_MEM16(0xD1) + +#define HSSPITOL _SFR_MEM8(0xD1) +#define HSSPITOD0 0 +#define HSSPITOD1 1 +#define HSSPITOD2 2 +#define HSSPITOD3 3 +#define HSSPITOD4 4 +#define HSSPITOD5 5 +#define HSSPITOD6 6 +#define HSSPITOD7 7 + +#define HSSPITOH _SFR_MEM8(0xD2) +#define HSSPITOD8 0 +#define HSSPITOD9 1 +#define HSSPITOD10 2 +#define HSSPITOD11 3 +#define HSSPITOD12 4 +#define HSSPITOD13 5 +#define HSSPITOD14 6 +#define HSSPITOD15 7 + +#define HSSPICNT _SFR_MEM8(0xD3) +#define HSSPICNTD0 0 +#define HSSPICNTD1 1 +#define HSSPICNTD2 2 +#define HSSPICNTD3 3 +#define HSSPICNTD4 4 + +#define HSSPIIER _SFR_MEM8(0xD4) +#define NSSIE 4 +#define RCVOFIE 5 +#define BTDIE 6 +#define TIMEOUTIE 7 + +#define HSSPIGTR _SFR_MEM8(0xD5) +#define HSSPIGTD0 0 +#define HSSPIGTD1 1 +#define HSSPIGTD2 2 +#define HSSPIGTD3 3 +#define HSSPIGTD4 4 +#define HSSPIGTD5 5 +#define HSSPIGTD6 6 +#define HSSPIGTD7 7 + +#define HSSPIRDR _SFR_MEM8(0xD6) +#define HSSPIRDD0 0 +#define HSSPIRDD1 1 +#define HSSPIRDD2 2 +#define HSSPIRDD3 3 +#define HSSPIRDD4 4 +#define HSSPIRDD5 5 +#define HSSPIRDD6 6 +#define HSSPIRDD7 7 + +#define HSSPITDR _SFR_MEM8(0xD7) +#define HSSPITDD0 0 +#define HSSPITDD1 1 +#define HSSPITDD2 2 +#define HSSPITDD3 3 +#define HSSPITDD4 4 +#define HSSPITDD5 5 +#define HSSPITDD6 6 +#define HSSPITDD7 7 + +#define HSSPISR _SFR_MEM8(0xD8) +#define SPICKRDY 0 +#define TXBUFE 1 +#define RXBUFF 2 +#define NSS 3 +#define DPRAMRDY 4 + +#define HSSPICFG _SFR_MEM8(0xD9) +#define HSSPIEN 0 +#define HSMSTR 1 +#define HSCPOL 2 +#define HSCPHA 3 +#define DPRAM 4 +#define SPICKDIV0 5 +#define SPICKDIV1 6 +#define SPICKDIV2 7 + +#define HSSPIIR _SFR_MEM8(0xDA) +#define NSSFE 3 +#define NSSRE 4 +#define RCVOF 5 +#define BTD 6 +#define TIMEOUT 7 + +#define HSSPICR _SFR_MEM8(0xDB) +#define CS 0 +#define RETTO 1 +#define STTTO 2 + +#define HSSPIDMACS _SFR_MEM8(0xDC) +#define HSSPIDMAR 0 +#define HSSPIDMADIR 1 +#define HSSPIDMAERR 2 + +#define HSSPIDMAD _SFR_MEM16(0xDD) + +#define HSSPIDMADL _SFR_MEM8(0xDD) +#define HSSPIDMAD0 0 +#define HSSPIDMAD1 1 +#define HSSPIDMAD2 2 +#define HSSPIDMAD3 3 +#define HSSPIDMAD4 4 +#define HSSPIDMAD5 5 +#define HSSPIDMAD6 6 +#define HSSPIDMAD7 7 + +#define HSSPIDMADH _SFR_MEM8(0xDE) +#define HSSPIDMAD8 0 +#define HSSPIDMAD9 1 +#define HSSPIDMAD10 2 +#define HSSPIDMAD11 3 +#define HSSPIDMAD12 4 +#define HSSPIDMAD13 5 + +#define HSSPIDMAB _SFR_MEM8(0xDF) +#define HSSPIDMAB0 0 +#define HSSPIDMAB1 1 +#define HSSPIDMAB2 2 +#define HSSPIDMAB3 3 +#define HSSPIDMAB4 4 + +#define USBCR _SFR_MEM8(0xE0) +#define USBE 1 +#define UPUC 5 +#define URMWU 7 + +#define USBPI _SFR_MEM8(0xE1) +#define SUSI 0 +#define RESI 1 +#define RMWUI 2 +#define SOFI 3 +#define FEURI 4 + +#define USBPIM _SFR_MEM8(0xE2) +#define SUSIM 0 +#define RESIM 1 +#define RMWUIM 2 +#define SOFIM 3 + +#define USBEI _SFR_MEM8(0xE3) +#define EP0I 0 +#define EP1I 1 +#define EP2I 2 +#define EP3I 3 +#define EP4I 4 +#define EP5I 5 +#define EP6I 6 +#define EP7I 7 + +#define USBEIM _SFR_MEM8(0xE4) +#define EP0IM 0 +#define EP1IM 1 +#define EP2IM 2 +#define EP3IM 3 +#define EP4IM 4 +#define EP5IM 5 +#define EP6IM 6 +#define EP7IM 7 + +#define USBRSTE _SFR_MEM8(0xE5) +#define RSTE0 0 +#define RSTE1 1 +#define RSTE2 2 +#define RSTE3 3 +#define RSTE4 4 +#define RSTE5 5 +#define RSTE6 6 +#define RST7 7 + +#define USBGS _SFR_MEM8(0xE6) +#define FAF 0 +#define FCF 1 +#define RMWUE 2 +#define RSMON 3 + +#define USBFA _SFR_MEM8(0xE7) +#define FADD0 0 +#define FADD1 1 +#define FADD2 2 +#define FADD3 3 +#define FADD4 4 +#define FADD5 5 +#define FADD6 6 + +#define USBFN _SFR_MEM16(0xE8) + +#define USBFNL _SFR_MEM8(0xE8) +#define FN0 0 +#define FN1 1 +#define FN2 2 +#define FN3 3 +#define FN4 4 +#define FN5 5 +#define FN6 6 +#define FN7 7 + +#define USBFNH _SFR_MEM8(0xE9) +#define FN8 0 +#define FN9 1 +#define FN10 2 +#define FNERR 3 +#define FNEND 4 + +#define USBDMACS _SFR_MEM8(0xEA) +#define USBDMAR 0 +#define USBDMADIR 1 +#define USBDMAERR 2 +#define EPS0 4 +#define EPS1 5 +#define EPS2 6 + +#define USBDMAD _SFR_MEM16(0xEB) + +#define USBDMADL _SFR_MEM8(0xEB) +#define USBDMAD0 0 +#define USBDMAD1 1 +#define USBDMAD2 2 +#define USBDMAD3 3 +#define USBDMAD4 4 +#define USBDMAD5 5 +#define USBDMAD6 6 +#define USBDMAD7 7 + +#define USBDMADH _SFR_MEM8(0xEC) +#define USBDMAD8 0 +#define USBDMAD9 1 +#define USBDMAD10 2 +#define USBDMAD11 3 +#define USBDMAD12 4 +#define USBDMAD13 5 + +#define USBDMAB _SFR_MEM8(0xED) +#define USBDMAB0 0 +#define USBDMAB1 1 +#define USBDMAB2 2 +#define USBDMAB3 3 +#define USBDMAB4 4 +#define USBDMAB5 5 +#define USBDMAB6 6 + +#define DCCR _SFR_MEM8(0xEF) +#define DCBUSY 5 +#define DCRDY 6 +#define DCON 7 + +#define SCICLK _SFR_MEM8(0xF0) +#define SCICLK0 0 +#define SCICLK1 1 +#define SCICLK2 2 +#define SCICLK3 3 +#define SCICLK4 4 +#define SCICLK5 5 + +#define SCWT0 _SFR_MEM8(0xF1) +#define WT0 0 +#define WT1 1 +#define WT2 2 +#define WT3 3 +#define WT4 4 +#define WT5 5 +#define WT6 6 +#define WT7 7 + +#define SCWT1 _SFR_MEM8(0xF2) +#define WT8 0 +#define WT9 1 +#define WT10 2 +#define WT11 3 +#define WT12 4 +#define WT13 5 +#define WT14 6 +#define WT15 7 + +#define SCWT2 _SFR_MEM8(0xF3) +#define WT16 0 +#define WT17 1 +#define WT18 2 +#define WT19 3 +#define WT20 4 +#define WT21 5 +#define WT22 6 +#define WT23 7 + +#define SCWT3 _SFR_MEM8(0xF4) +#define WT24 0 +#define WT25 1 +#define WT26 2 +#define WT27 3 +#define WT28 4 +#define WT29 5 +#define WT30 6 +#define WT31 7 + +#define SCGT _SFR_MEM16(0xF5) + +#define SCGTL _SFR_MEM8(0xF5) +#define GT0 0 +#define GT1 1 +#define GT2 2 +#define GT3 3 +#define GT4 4 +#define GT5 5 +#define GT6 6 +#define GT7 7 + +#define SCGTH _SFR_MEM8(0xF6) +#define GT8 0 + +#define SCETU _SFR_MEM16(0xF7) + +#define SCETUL _SFR_MEM8(0xF7) +#define ETU0 0 +#define ETU1 1 +#define ETU2 2 +#define ETU3 3 +#define ETU4 4 +#define ETU5 5 +#define ETU6 6 +#define ETU7 7 + +#define SCETUH _SFR_MEM8(0xF8) +#define ETU8 0 +#define ETU9 1 +#define ETU10 2 +#define COMP 7 + +#define SCIBUF _SFR_MEM8(0xF9) +#define SCIBUFD0 0 +#define SCIBUFD1 1 +#define SCIBUFD2 2 +#define SCIBUFD3 3 +#define SCIBUFD4 4 +#define SCIBUFD5 5 +#define SCIBUFD6 6 +#define SCIBUFD7 7 + +#define SCSR _SFR_MEM8(0xFA) +#define CPRESRES 3 +#define CREPSEL 4 +#define BGTEN 6 + +#define SCIER _SFR_MEM8(0xFB) +#define ESCPI 0 +#define ESCRI 1 +#define ESCTI 2 +#define ESCWTI 3 +#define EVCARDER 4 +#define CARDINE 6 +#define ESCTBI 7 + +#define SCIIR _SFR_MEM8(0xFC) +#define SCPI 0 +#define SCRI 1 +#define SCTI 2 +#define SCWTI 3 +#define VCARDERR 4 +#define SCTBI 7 + +#define SCISR _SFR_MEM8(0xFD) +#define SCPE 0 +#define SCRC 1 +#define SCTC 2 +#define SCWTO 3 +#define VCARDOK 4 +#define CARDIN 6 +#define SCTBE 7 + +#define SCCON _SFR_MEM8(0xFE) +#define CARDVCC 0 +#define CARDRST 1 +#define CARDCLK 2 +#define CARDIO 3 +#define CARDC4 4 +#define CARDC8 5 +#define CLK 7 + +#define SCICR _SFR_MEM8(0xFF) +#define CONV 0 +#define CREP 1 +#define WTEN 2 +#define UART 3 +#define VCARD0 4 +#define VCARD1 5 +#define CARDDET 6 +#define SCIRESET 7 + + +/* Interrupt vectors */ +/* Vector 0 is the reset vector */ +#define INT0_vect_num 1 +#define INT0_vect _VECTOR(1) /* External Interrupt Request 0 */ +#define INT1_vect_num 2 +#define INT1_vect _VECTOR(2) /* External Interrupt Request 1 */ +#define INT2_vect_num 3 +#define INT2_vect _VECTOR(3) /* External Interrupt Request 2 */ +#define INT3_vect_num 4 +#define INT3_vect _VECTOR(4) /* External Interrupt Request 3 */ +#define PCINT0_vect_num 5 +#define PCINT0_vect _VECTOR(5) /* Pin Change Interrupt Request 0 */ +#define PCINT1_vect_num 6 +#define PCINT1_vect _VECTOR(6) /* Pin Change Interrupt Request 1 */ +#define PCINT2_vect_num 7 +#define PCINT2_vect _VECTOR(7) /* Pin Change Interrupt Request 2 */ +#define WDT_vect_num 8 +#define WDT_vect _VECTOR(8) /* Watchdog Time-out Interrupt */ +#define TIMER2_COMPA_vect_num 9 +#define TIMER2_COMPA_vect _VECTOR(9) /* Timer/Counter2 Compare Match A */ +#define TIMER2_COMPB_vect_num 10 +#define TIMER2_COMPB_vect _VECTOR(10) /* Timer/Counter2 Compare Match B */ +#define TIMER2_OVF_vect_num 11 +#define TIMER2_OVF_vect _VECTOR(11) /* Timer/Counter2 Overflow */ +#define TIMER1_CAPT_vect_num 12 +#define TIMER1_CAPT_vect _VECTOR(12) /* Timer/Counter1 Capture Event */ +#define TIMER1_COMPA_vect_num 13 +#define TIMER1_COMPA_vect _VECTOR(13) /* Timer/Counter1 Compare Match A */ +#define TIMER1_COMPB_vect_num 14 +#define TIMER1_COMPB_vect _VECTOR(14) /* Timer/Counter1 Compare Match B */ +#define TIMER1_OVF_vect_num 15 +#define TIMER1_OVF_vect _VECTOR(15) /* Timer/Counter1 Overflow */ +#define TIMER0_COMPA_vect_num 16 +#define TIMER0_COMPA_vect _VECTOR(16) /* Timer/Counter0 Compare Match A */ +#define TIMER0_COMPB_vect_num 17 +#define TIMER0_COMPB_vect _VECTOR(17) /* Timer/Counter0 Compare Match B */ +#define TIMER0_OVF_vect_num 18 +#define TIMER0_OVF_vect _VECTOR(18) /* Timer/Counter0 Overflow */ +#define SPI_STC_vect_num 19 +#define SPI_STC_vect _VECTOR(19) /* SPI Serial Transfer Complete */ +#define USART0_RX_vect_num 20 +#define USART0_RX_vect _VECTOR(20) /* USART0, Rx Complete */ +#define USART0_UDRE_vect_num 21 +#define USART0_UDRE_vect _VECTOR(21) /* USART0 Data register Empty */ +#define USART0_TX_vect_num 22 +#define USART0_TX_vect _VECTOR(22) /* USART0, Tx Complete */ +#define SUPPLY_MON_vect_num 23 +#define SUPPLY_MON_vect _VECTOR(23) /* Supply Monitor Interruption */ +#define RFU_vect_num 24 +#define RFU_vect _VECTOR(24) /* Reserved for Future Use */ +#define EE_READY_vect_num 25 +#define EE_READY_vect _VECTOR(25) /* EEPROM Ready */ +#define TWI_vect_num 26 +#define TWI_vect _VECTOR(26) /* 2-wire Serial Interface */ +#define SPM_READY_vect_num 27 +#define SPM_READY_vect _VECTOR(27) /* Store Program Memory Read */ +#define KEYBOARD_vect_num 28 +#define KEYBOARD_vect _VECTOR(28) /* Keyboard Input Changed */ +#define AES_Operation_vect_num 29 +#define AES_Operation_vect _VECTOR(29) /* AES Block Operation Ended */ +#define HSSPI_vect_num 30 +#define HSSPI_vect _VECTOR(30) /* High-Speed SPI Interruption */ +#define USB_Endpoint_vect_num 31 +#define USB_Endpoint_vect _VECTOR(31) /* USB Endpoint Related Interruption */ +#define USB_Protocol_vect_num 32 +#define USB_Protocol_vect _VECTOR(32) /* USB Protocol Related Interruption */ +#define SCIB_vect_num 33 +#define SCIB_vect _VECTOR(33) /* Smart Card Reader Interface */ +#define USBHost_Control_vect_num 34 +#define USBHost_Control_vect _VECTOR(34) /* USB Host Controller Interrupt */ +#define USBHost_Pipe_vect_num 35 +#define USBHost_Pipe_vect _VECTOR(35) /* USB Host Pipe Interrupt */ +#define CPRES_vect_num 36 +#define CPRES_vect _VECTOR(36) /* Card Presence Detection */ +#define PCINT3_vect_num 37 +#define PCINT3_vect _VECTOR(37) /* Pin Change Interrupt Request 3 */ + +#define _VECTOR_SIZE 4 /* Size of individual vector. */ +#define _VECTORS_SIZE (38 * _VECTOR_SIZE) + + +/* Constants */ +#define SPM_PAGESIZE (256) +#define RAMSTART (0x100) +#define RAMSIZE (4096) +#define RAMEND (RAMSTART + RAMSIZE - 1) +#define XRAMSTART (0x0) +#define XRAMSIZE (0) +#define XRAMEND (RAMEND) +#define E2END (0x7FF) +#define E2PAGESIZE (4) +#define FLASHEND (0xFFFF) + + +/* Fuses */ +#define FUSE_MEMORY_SIZE 3 + +/* Low Fuse Byte */ +#define FUSE_CKSEL0 (unsigned char)~_BV(0) /* Clock Selection */ +#define FUSE_CKSEL3 (unsigned char)~_BV(3) /* Clock Selection */ +#define FUSE_SUT0 (unsigned char)~_BV(4) /* Select start-up time */ +#define FUSE_SUT1 (unsigned char)~_BV(5) /* Select start-up time */ +#define FUSE_CKOUT (unsigned char)~_BV(6) /* Clock output */ +#define LFUSE_DEFAULT (FUSE_SUT0) + +/* High Fuse Byte */ +#define FUSE_BOOTRST (unsigned char)~_BV(0) /* Select Reset Vector */ +#define FUSE_BOOTSZ0 (unsigned char)~_BV(1) /* Select Boot Size */ +#define FUSE_BOOTSZ1 (unsigned char)~_BV(2) /* Select Boot Size */ +#define FUSE_EESAVE (unsigned char)~_BV(3) /* EEPROM memory is preserved through chip erase */ +#define FUSE_WDTON (unsigned char)~_BV(4) /* Watchdog timer always on */ +#define FUSE_SPIEN (unsigned char)~_BV(5) /* Enable Serial programming and Data Downloading */ +#define FUSE_JTAGEN (unsigned char)~_BV(6) /* Enable JTAG */ +#define FUSE_OCDEN (unsigned char)~_BV(7) /* Enable OCD */ +#define HFUSE_DEFAULT (FUSE_JTAGEN & FUSE_SPIEN & FUSE_BOOTSZ1 & FUSE_BOOTSZ0) + +/* Extended Fuse Byte */ +#define FUSE_BODENABLE (unsigned char)~_BV(0) /* Brown-out Detector Enable Signal */ +#define EFUSE_DEFAULT (0xFF) + + +/* Lock Bits */ +#define __LOCK_BITS_EXIST +#define __BOOT_LOCK_BITS_0_EXIST +#define __BOOT_LOCK_BITS_1_EXIST + + +/* Signature */ +#define SIGNATURE_0 0x1E +#define SIGNATURE_1 0x96 +#define SIGNATURE_2 0xC1 + + +#endif /* _AVR_AT90SCR100_H_ */ + |