Created
August 16, 2021 02:17
-
-
Save droogie/d5469271f236a3597b840ed97e885792 to your computer and use it in GitHub Desktop.
IDA ATmega328P config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.ATmega328P | |
; Append to your IDA avr.cfg | |
SUBARCH=5 | |
RAM=2048 | |
ROM=32768 | |
EEPROM=1024 | |
; MEMORY MAP | |
; Memory configuration A | |
area DATA GPWR_ 0x0000:0x0020 General Purpose Working Registers | |
area DATA FSR_ 0x0020:0x0060 I/O registers | |
area DATA EXTIO_ 0x0060:0x0100 I/O registers | |
area DATA I_SRAM 0x0100:0x08ff Internal SRAM | |
; Interrupt and reset vector assignments | |
entry __RESET 0x0000 External Pin, Power-on Reset, Brown-out Reset, Watchdog Reset, and JTAG AVR Reset | |
entry INT0_ 0x0002 External Interrupt Request 0 | |
entry INT1_ 0x0004 External Interrupt Request 1 | |
entry PCINT0_ 0x0006 Pin Change Interrupt Request 0 | |
entry PCINT1_ 0x0008 Pin Change Interrupt Request 1 | |
entry PCINT2_ 0x000A Pin Change Interrupt Request 2 | |
entry WDT 0x000C Watchdog Time-out Interrupt | |
entry TIMER2_COMPA 0x000E Timer/Counter2 Compare Match A | |
entry TIMER2_COMPB 0x0010 Timer/Counter2 Compare Match B | |
entry TIMER2_OVF 0x0012 Timer/Counter2 Overflow | |
entry TIMER1_CAPT 0x0014 Timer/Counter1 Compare Match | |
entry TIMER1_COMPA 0x0016 Timer/Counter1 Compare Match A | |
entry TIMER1_COMPB 0x0018 Timer/Counter1 Compare Match A | |
entry TIMER2_OVF 0x001A Timer/Counter1 Overflow | |
entry TIMER0_COMPA 0x001C Timer/Counter0 Compare Match A | |
entry TIMER0_COMPB 0x001E Timer/Counter0 Compare Match B | |
entry TIMER0_OVF 0x0020 Timer/Counter0 Overflow | |
entry SPI_STC 0x0022 Serial Transfer Complete | |
entry USART0_RXC 0x0024 USART Rx Complete | |
entry USART0_UDRE 0x0026 USART Data Register Empty | |
entry USART0_TXC 0x0028 USART Tx Complete | |
entry ADC 0x002A ADC Conversion Complete | |
entry EE_READY 0x002C EEPROM Ready | |
entry ANALOG_COMP 0x002E Analog Comparator | |
entry TWI 0x0030 2-wire Serial Interface | |
entry SPM_READY 0x0032 Store Program Memory Ready | |
; INPUT/OUTPUT PORTS | |
; 0x0000 Reserved | |
; 0x0001 Reserved | |
; 0x0002 Reserved | |
PINB 0x0003 | |
PINB.PINB7 7 | |
PINB.PINB6 6 | |
PINB.PINB5 5 | |
PINB.PINB4 4 | |
PINB.PINB3 3 | |
PINB.PINB2 2 | |
PINB.PINB1 1 | |
PINB.PINB0 0 | |
DDRB 0x0004 | |
DDRB.DDB7 7 | |
DDRB.DDB6 6 | |
DDRB.DDB5 5 | |
DDRB.DDB4 4 | |
DDRB.DDB3 3 | |
DDRB.DDB2 2 | |
DDRB.DDB1 1 | |
DDRB.DDB0 0 | |
PORTB 0x0005 | |
PORTB.PORTB7 7 | |
PORTB.PORTB6 6 | |
PORTB.PORTB5 5 | |
PORTB.PORTB4 4 | |
PORTB.PORTB3 3 | |
PORTB.PORTB2 2 | |
PORTB.PORTB1 1 | |
PORTB.PORTB0 0 | |
PINC 0x0006 | |
PINC.PINC7 7 | |
PINC.PINC6 6 | |
PINC.PINC5 5 | |
PINC.PINC4 4 | |
PINC.PINC3 3 | |
PINC.PINC2 2 | |
PINC.PINC1 1 | |
PINC.PINC0 0 | |
DDRC 0x0007 | |
DDRC.DDC7 7 | |
DDRC.DDC6 6 | |
DDRC.DDC5 5 | |
DDRC.DDC4 4 | |
DDRC.DDC3 3 | |
DDRC.DDC2 2 | |
DDRC.DDC1 1 | |
DDRC.DDC0 0 | |
PORTC 0x0008 | |
PORTC.PORTC7 7 | |
PORTC.PORTC6 6 | |
PORTC.PORTC5 5 | |
PORTC.PORTC4 4 | |
PORTC.PORTC3 3 | |
PORTC.PORTC2 2 | |
PORTC.PORTC1 1 | |
PORTC.PORTC0 0 | |
PIND 0x0009 | |
PIND.PIND7 7 | |
PIND.PIND6 6 | |
PIND.PIND5 5 | |
PIND.PIND4 4 | |
PIND.PIND3 3 | |
PIND.PIND2 2 | |
PIND.PIND1 1 | |
PIND.PIND0 0 | |
DDRD 0x000A Port D Data Direction Register | |
DDRD.DDD7 7 | |
DDRD.DDD6 6 | |
DDRD.DDD5 5 | |
DDRD.DDD4 4 | |
DDRD.DDD3 3 | |
DDRD.DDD2 2 | |
DDRD.DDD1 1 | |
DDRD.DDD0 0 | |
PORTD 0x000B | |
PORTD.PORTD7 7 | |
PORTD.PORTD6 6 | |
PORTD.PORTD5 5 | |
PORTD.PORTD4 4 | |
PORTD.PORTD3 3 | |
PORTD.PORTD2 2 | |
PORTD.PORTD1 1 | |
PORTD.PORTD0 0 | |
;0x0c-0x14 Reserved | |
TIFR0 0x0015 Timer/Counter Interrupt Flag Register | |
TIFR0.OCF0B 2 Timer/Counter0, Output Compare B Match Flag | |
TIFR0.OCF0A 1 Timer/Counter0, Output Compare A Match Flag | |
TIFR0.TOV0 0 Timer/Counter0 Overflow Flag | |
TIFR1 0x0016 Timer/Counter Interrupt Flag Register | |
TIFR1.ICF1 5 Timer/Counter1, Input Capture Flag | |
TIFR1.OCF1B 2 Timer/Counter1, Output Compare B Match Flag | |
TIFR1.OCF1A 1 Timer/Counter1, Output Compare A Match Flag | |
TIFR1.TOV1 0 Timer/Counter1 Overflow Flag | |
TIFR2 0x0017 Timer/Counter Interrupt Flag Register | |
TIFR2.OCF2B 2 Timer/Counter2, Output Compare B Match Flag | |
TIFR2.OCF2A 1 Timer/Counter2, Output Compare A Match Flag | |
TIFR2.TOV2 0 Timer/Counter2 Overflow Flag | |
PCIFR 0x001B | |
PCIFR.PCIF2 2 | |
PCIFR.PCIF1 1 | |
PCIFR.PCIF0 0 | |
EIFR 0x001C | |
EIFR.INTF1 1 | |
EIFR.INTF0 0 | |
EIMSK 0x001D | |
EIMSK.INT1 1 | |
EIMSK.INT0 0 | |
GPIOR0 0x001E | |
EECR 0x001F The EEPROM Control Register | |
EECR.EERIE 3 EEPROM Ready Interrupt Enable | |
EECR.EEMWE 2 EEPROM Master Write Enable | |
EECR.EEWE 1 EEPROM Write Enable | |
EECR.EERE 0 EEPROM Read Enable | |
EEDR 0x0020 EEPROM Data Register | |
EEARL 0x0021 EEPROM Address Register Low Byte | |
EEARH 0x0022 The EEPROM Address Register High | |
EEARH.EEAR8 8 EEPROM Address 8 | |
GTCCR 0x0023 | |
GTCCR.TSM 7 | |
GTCCR.PSRASY 1 | |
GTCCR.PSRSYNC 0 | |
TCCR0A 0x0024 | |
TCCR0A.COM0A1 7 | |
TCCR0A.COM0A0 6 | |
TCCR0A.COM0B1 5 | |
TCCR0A.COM0B0 4 | |
TCCR0A.WGM01 1 | |
TCCR0A.WGM00 0 | |
TCCR0B 0x0025 | |
TCCR0B.FOC0A 7 | |
TCCR0B.FOC0B 6 | |
TCCR0B.WGM02 3 | |
TCCR0B.CS02 2 | |
TCCR0B.CS01 1 | |
TCCR0B.CS00 0 | |
TCNT0 0x0026 Timer/Counter0 | |
OCR0A 0x0027 | |
OCR0B 0x0028 | |
GPIOR1 0x002A | |
GPIOR2 0x002B | |
SPCR 0x002C SPI Control Register- | |
SPCR.SPIE 7 SPI Interrupt Enable | |
SPCR.SPE 6 SPI Enable | |
SPCR.DORD 5 Data Order | |
SPCR.MSTR 4 Master/Slave Select | |
SPCR.CPOL 3 Clock Polarity | |
SPCR.CPHA 2 Clock Phase | |
SPCR.SPR1 1 SPI Clock Rate Select 1 | |
SPCR.SPR0 0 SPI Clock Rate Select 0 | |
SPSR 0x002D SPI Status Register | |
SPSR.SPIF 7 SPI Interrupt Flag | |
SPSR.WCOL 6 Write COLlision Flag | |
SPSR.SPI2X 0 Double SPI Speed Bit | |
SPDR 0x002E SPI Data Register | |
ACSR 0x0030 Analog Comparator Control and Status Register | |
ACSR.ACD 7 Analog Comparator Disable | |
ACSR.ACBG 6 Analog Comparator Bandgap Select | |
ACSR.ACO 5 Analog Comparator Output | |
ACSR.ACI 4 Analog Comparator Interrupt Flag | |
ACSR.ACIE 3 Analog Comparator Interrupt Enable | |
ACSR.ACIC 2 Analog Comparator Input Capture Enable | |
ACSR.ACIS1 1 Analog Comparator Interrupt Mode Select 1 | |
ACSR.ACIS0 0 Analog Comparator Interrupt Mode Select 0 | |
SMCR 0x0033 | |
SMCR.SM2 3 | |
SMCR.SM1 2 | |
SMCR.SM0 1 | |
SMCR.SE 0 | |
MCUSR 0x0034 | |
MCUSR.WDRF 3 | |
MCUSR.BORF 2 | |
MCUSR.EXTRF 1 | |
MCUSR.PORF 0 | |
MCUCR 0x0035 | |
MCUCR.BODS 6 | |
MCUCR.BODSE 5 | |
MCUCR.PUD 4 | |
MCUCR.IVSEL 1 | |
MCUCR.IVCE 0 | |
SPMCSR 0x0037 | |
SPMCSR.SPMIE 7 | |
SPMCSR.(RWWSB)5. 6 | |
SPMCSR.(RWWSRE)5. 4 | |
SPMCSR.BLBSET 3 | |
SPMCSR.PGWRT 2 | |
SPMCSR.PGERS 1 | |
SPMCSR.SELFPRGEN 0 | |
SPL 0x003D | |
SPL.SP7 7 | |
SPL.SP6 6 | |
SPL.SP5 5 | |
SPL.SP4 4 | |
SPL.SP3 3 | |
SPL.SP2 2 | |
SPL.SP1 1 | |
SPL.SP0 0 | |
SPH 0x003E | |
SPH.(SP10) 2 | |
SPH.5. 1 | |
SPH.SP9 0 | |
SREG 0x003F | |
SREG.I 7 | |
SREG.T 6 | |
SREG.H 5 | |
SREG.S 4 | |
SREG.V 3 | |
SREG.N 2 | |
SREG.Z 1 | |
SREG.C 0 | |
;; was able to mirror the rest from Atmega168P | |
WDTCSR 0x0040 | |
WDTCSR.WDIF 7 | |
WDTCSR.WDIE 6 | |
WDTCSR.WDP3 5 | |
WDTCSR.WDCE 4 | |
WDTCSR.WDE 3 | |
WDTCSR.WDP2 2 | |
WDTCSR.WDP1 1 | |
WDTCSR.WDP0 0 | |
CLKPR 0x0041 | |
CLKPR.CLKPCE 7 | |
CLKPR.CLKPS3 3 | |
CLKPR.CLKPS2 2 | |
CLKPR.CLKPS1 1 | |
CLKPR.CLKPS0 0 | |
PRR 0x0044 | |
PRR.PRTWI 7 | |
PRR.PRTIM2 6 | |
PRR.PRTIM0 5 | |
PRR.PRTIM1 3 | |
PRR.PRSPI 2 | |
PRR.PRUSART0 1 | |
PRR.PRADC 0 | |
OSCCAL 0x0046 | |
PCICR 0x0048 | |
PCICR.PCIE2 2 | |
PCICR.PCIE1 1 | |
PCICR.PCIE0 0 | |
ADCH 0x0059 | |
ADCL 0x0058 | |
TIMSK2 0x0050 | |
TIMSK2.OCIE2B 2 | |
TIMSK2.OCIE2A 1 | |
TIMSK2.TOIE2 0 | |
TIMSK1 0x004F | |
TIMSK1.ICIE1 5 | |
TIMSK1.OCIE1B 2 | |
TIMSK1.OCIE1A 1 | |
TIMSK1.TOIE1 0 | |
TIMSK0 0x004E | |
TIMSK0.OCIE0B 2 | |
TIMSK0.OCIE0A 1 | |
TIMSK0.TOIE0 0 | |
PCMSK2 0x004D | |
PCMSK2.PCINT23 7 | |
PCMSK2.PCINT22 6 | |
PCMSK2.PCINT21 5 | |
PCMSK2.PCINT20 4 | |
PCMSK2.PCINT19 3 | |
PCMSK2.PCINT18 2 | |
PCMSK2.PCINT17 1 | |
PCMSK2.PCINT16 0 | |
PCMSK1 0x004C | |
PCMSK1.PCINT14 6 | |
PCMSK1.PCINT13 5 | |
PCMSK1.PCINT12 4 | |
PCMSK1.PCINT11 3 | |
PCMSK1.PCINT10 2 | |
PCMSK1.PCINT9 1 | |
PCMSK1.PCINT8 0 | |
PCMSK0 0x004B | |
PCMSK0.PCINT7 7 | |
PCMSK0.PCINT6 6 | |
PCMSK0.PCINT5 5 | |
PCMSK0.PCINT4 4 | |
PCMSK0.PCINT3 3 | |
PCMSK0.PCINT2 2 | |
PCMSK0.PCINT1 1 | |
PCMSK0.PCINT0 0 | |
EICRA 0x0049 | |
EICRA.ISC11 3 | |
EICRA.ISC10 2 | |
EICRA.ISC01 1 | |
EICRA.ISC00 0 | |
DIDR1 0x005F | |
DIDR1.AIN1D 1 | |
DIDR1.AIN0D 0 | |
DIDR0 0x005E | |
DIDR0.ADC5D 5 | |
DIDR0.ADC4D 4 | |
DIDR0.ADC3D 3 | |
DIDR0.ADC2D 2 | |
DIDR0.ADC1D 1 | |
DIDR0.ADC0D 0 | |
ADMUX 0x005C | |
ADMUX.REFS1 7 | |
ADMUX.REFS0 6 | |
ADMUX.ADLAR 5 | |
ADMUX.MUX3 3 | |
ADMUX.MUX2 2 | |
ADMUX.MUX1 1 | |
ADMUX.MUX0 0 | |
ADCSRB 0x005B | |
ADCSRB.ACME 6 | |
ADCSRB.ADTS2 2 | |
ADCSRB.ADTS1 1 | |
ADCSRB.ADTS0 0 | |
ADCSRA 0x005A | |
ADCSRA.ADEN 7 | |
ADCSRA.ADSC 6 | |
ADCSRA.ADATE 5 | |
ADCSRA.ADIF 4 | |
ADCSRA.ADIE 3 | |
ADCSRA.ADPS2 2 | |
ADCSRA.ADPS1 1 | |
ADCSRA.ADPS0 0 | |
UDR0 0x00A6 | |
UBRR0H 0x00A5 | |
UBRR0L 0x00A4 | |
UCSR0C 0x00A2 | |
UCSR0C.UMSEL01 7 | |
UCSR0C.UMSEL00 6 | |
UCSR0C.UPM01 5 | |
UCSR0C.UPM00 4 | |
UCSR0C.USBS0 3 | |
UCSR0C.UCSZ01 2 | |
UCSR0C._UDORD0 1 | |
UCSR0C.UCSZ00 0 | |
UCSR0B 0x00A1 | |
UCSR0B.RXCIE0 7 | |
UCSR0B.TXCIE0 6 | |
UCSR0B.UDRIE0 5 | |
UCSR0B.RXEN0 4 | |
UCSR0B.TXEN0 3 | |
UCSR0B.UCSZ02 2 | |
UCSR0B.RXB80 1 | |
UCSR0B.TXB80 0 | |
UCSR0A 0x00A0 | |
UCSR0A.RXC0 7 | |
UCSR0A.TXC0 6 | |
UCSR0A.UDRE0 5 | |
UCSR0A.FE0 4 | |
UCSR0A.DOR0 3 | |
UCSR0A.UPE0 2 | |
UCSR0A.U2X0 1 | |
UCSR0A.MPCM0 0 | |
TWAMR 0x009D | |
TWAMR.TWAM6 7 | |
TWAMR.TWAM5 6 | |
TWAMR.TWAM4 5 | |
TWAMR.TWAM3 4 | |
TWAMR.TWAM2 3 | |
TWAMR.TWAM1 2 | |
TWAMR.TWAM0 1 | |
TWCR 0x009C | |
TWCR.TWINT 7 | |
TWCR.TWEA 6 | |
TWCR.TWSTA 5 | |
TWCR.TWSTO 4 | |
TWCR.TWWC 3 | |
TWCR.TWEN 2 | |
TWCR.TWIE 0 | |
TWDR 0x009B | |
TWAR 0x009A | |
TWAR.TWA6 7 | |
TWAR.TWA5 6 | |
TWAR.TWA4 5 | |
TWAR.TWA3 4 | |
TWAR.TWA2 3 | |
TWAR.TWA1 2 | |
TWAR.TWA0 1 | |
TWAR.TWGCE 0 | |
TWSR 0x0099 | |
TWSR.TWS7 7 | |
TWSR.TWS6 6 | |
TWSR.TWS5 5 | |
TWSR.TWS4 4 | |
TWSR.TWS3 3 | |
TWSR.TWPS1 1 | |
TWSR.TWPS0 0 | |
TWBR 0x0098 | |
ASSR 0x0096 | |
ASSR.EXCLK 6 | |
ASSR.AS2 5 | |
ASSR.TCN2UB 4 | |
ASSR.OCR2AUB 3 | |
ASSR.OCR2BUB 2 | |
ASSR.TCR2AUB 1 | |
ASSR.TCR2BUB 0 | |
OCR2B 0x0094 | |
OCR2A 0x0093 | |
TCNT2 0x0092 | |
TCCR2B 0x0091 | |
TCCR2B.FOC2A 7 | |
TCCR2B.FOC2B 6 | |
TCCR2B.WGM22 3 | |
TCCR2B.CS22 2 | |
TCCR2B.CS21 1 | |
TCCR2B.CS20 0 | |
TCCR2A 0x0090 | |
TCCR2A.COM2A1 7 | |
TCCR2A.COM2A0 6 | |
TCCR2A.COM2B1 5 | |
TCCR2A.COM2B0 4 | |
TCCR2A.WGM21 1 | |
TCCR2A.WGM20 0 | |
OCR1BH 0x006B | |
OCR1BH.Timer_Counter1 7 | |
OCR1BH.Output 5 | |
OCR1BH.Compare 4 | |
OCR1BH.Register 3 | |
OCR1BH.B 2 | |
OCR1BH.High 1 | |
OCR1BH.Byte 0 | |
OCR1BL 0x006A | |
OCR1BL.Timer_Counter1 7 | |
OCR1BL.Output 5 | |
OCR1BL.Compare 4 | |
OCR1BL.Register 3 | |
OCR1BL.B 2 | |
OCR1BL.Low 1 | |
OCR1BL.Byte 0 | |
OCR1AH 0x0069 | |
OCR1AH.Timer_Counter1 7 | |
OCR1AH.Output 5 | |
OCR1AH.Compare 4 | |
OCR1AH.Register 3 | |
OCR1AH.A 2 | |
OCR1AH.High 1 | |
OCR1AH.Byte 0 | |
OCR1AL 0x0068 | |
OCR1AL.Timer_Counter1 7 | |
OCR1AL.Output 5 | |
OCR1AL.Compare 4 | |
OCR1AL.Register 3 | |
OCR1AL.A 2 | |
OCR1AL.Low 1 | |
OCR1AL.Byte 0 | |
ICR1H 0x0067 | |
ICR1H.Timer_Counter1 7 | |
ICR1H.Input 5 | |
ICR1H.Capture 4 | |
ICR1H.Register 3 | |
ICR1H.High 2 | |
ICR1H.Byte 1 | |
ICR1H.136 0 | |
ICR1L 0x0066 | |
ICR1L.Timer_Counter1 7 | |
ICR1L.Input 5 | |
ICR1L.Capture 4 | |
ICR1L.Register 3 | |
ICR1L.Low 2 | |
ICR1L.Byte 1 | |
ICR1L.136 0 | |
TCNT1H 0x0065 | |
TCNT1L 0x0064 | |
TCCR1C 0x0062 | |
TCCR1C.FOC1A 7 | |
TCCR1C.FOC1B 6 | |
TCCR1B 0x0061 | |
TCCR1B.ICNC1 7 | |
TCCR1B.ICES1 6 | |
TCCR1B.WGM13 4 | |
TCCR1B.WGM12 3 | |
TCCR1B.CS12 2 | |
TCCR1B.CS11 1 | |
TCCR1B.CS10 0 | |
TCCR1A 0x0060 | |
TCCR1A.COM1A1 7 | |
TCCR1A.COM1A0 6 | |
TCCR1A.COM1B1 5 | |
TCCR1A.COM1B0 4 | |
TCCR1A.WGM11 1 | |
TCCR1A.WGM10 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment