<?xml version="1.0" encoding="UTF-8"?>

<processor_spec>

  <programcounter register="PC"/> 
  <data_space space="mem"/>

  <!-- 
     - NOTE: The settings within this file may be specific to a particular 
     - processor variant and will likely need to be changed to reflect 
     - the specific target processor.
     The RAMPx, EIND, SREG registers are not marked volatile, even though they could be changed
     indirectly with memory references.  If they are made volatile, then the addressing
     won't work in decompiler or reference recovery.
	 Some registers only appear in newer avr8's, or with large memory spaces
    --> 
    
  <volatile outputop="write_volatile" inputop="read_volatile">
    <range space="mem" first="0x20" last="0x57"/>
    <range space="mem" first="0x60" last="0xff"/>
  </volatile>
  
  <default_symbols>
  
    <symbol name="RESET" address="code:0x0000" entry="true"/>
    <symbol name="INT0" address="code:0x0002" entry="true"/>
    <symbol name="INT1" address="code:0x0004" entry="true"/>
    <symbol name="INT2" address="code:0x0006" entry="true"/>
    <symbol name="INT3" address="code:0x0008" entry="true"/>
    <symbol name="INT4" address="code:0x000A" entry="true"/>
    <symbol name="INT5" address="code:0x000C" entry="true"/>
    <symbol name="INT6" address="code:0x000E" entry="true"/>
    <symbol name="INT7" address="code:0x0010" entry="true"/>
    <symbol name="PCINT0" address="code:0x0012" entry="true"/>
    <symbol name="PCINT1" address="code:0x0014" entry="true"/>
    <symbol name="PCINT2" address="code:0x0016" entry="true"/>
    <symbol name="WDT" address="code:0x0018" entry="true"/>
    <symbol name="TIMER2_COMPA" address="code:0x001A" entry="true"/>
    <symbol name="TIMER2_COMPB" address="code:0x001C" entry="true"/>
    <symbol name="TIMER2_OVF" address="code:0x001E" entry="true"/>
    <symbol name="TIMER1_CAPT" address="code:0x0020" entry="true"/>
    <symbol name="TIMER1_COMPA" address="code:0x0022" entry="true"/>
    <symbol name="TIMER1_COMPB" address="code:0x0024" entry="true"/>
    <symbol name="TIMER1_COMPC" address="code:0x0026" entry="true"/>
    <symbol name="TIMER1_OVF" address="code:0x0028" entry="true"/>
    <symbol name="TIMER0_COMPA" address="code:0x002A" entry="true"/>
    <symbol name="TIMER0_COMPB" address="code:0x002C" entry="true"/>
    <symbol name="TIMER0_OVF" address="code:0x002E" entry="true"/>
    <symbol name="SPI_STC" address="code:0x0030" entry="true"/>
    <symbol name="USART0_RX" address="code:0x0032" entry="true"/>
    <symbol name="USART0_UDRE" address="code:0x0034" entry="true"/>
    <symbol name="USART0_TX" address="code:0x0036" entry="true"/>
    <symbol name="ANALOG_COMP" address="code:0x0038" entry="true"/>
    <symbol name="ADC_ADC" address="code:0x003A" entry="true"/>
    <symbol name="EE_READY" address="code:0x003C" entry="true"/>
    <symbol name="TIMER3_CAPT" address="code:0x003E" entry="true"/>
    <symbol name="TIMER3_COMPA" address="code:0x0040" entry="true"/>
    <symbol name="TIMER3_COMPB" address="code:0x0042" entry="true"/>
    <symbol name="TIMER3_COMPC" address="code:0x0044" entry="true"/>
    <symbol name="TIMER3_OVF" address="code:0x0046" entry="true"/>
    <symbol name="USART1_RX" address="code:0x0048" entry="true"/>
    <symbol name="USART1_UDRE" address="code:0x004A" entry="true"/>
    <symbol name="USART1_TX" address="code:0x004C" entry="true"/>
    <symbol name="TWI" address="code:0x004E" entry="true"/>
    <symbol name="SPM_READY" address="code:0x0050" entry="true"/>
    <symbol name="TIMER4_CAPT" address="code:0x0052" entry="true"/>
    <symbol name="TIMER4_COMPA" address="code:0x0054" entry="true"/>
    <symbol name="TIMER4_COMPB" address="code:0x0056" entry="true"/>
    <symbol name="TIMER4_COMPC" address="code:0x0058" entry="true"/>
    <symbol name="TIMER4_OVF" address="code:0x005A" entry="true"/>
    <symbol name="TIMER5_CAPT" address="code:0x005C" entry="true"/>
    <symbol name="TIMER5_COMPA" address="code:0x005E" entry="true"/>
    <symbol name="TIMER5_COMPB" address="code:0x0060" entry="true"/>
    <symbol name="TIMER5_COMPC" address="code:0x0062" entry="true"/>
    <symbol name="TIMER5_OVF" address="code:0x0064" entry="true"/>
    <symbol name="USART2_RX" address="code:0x0066" entry="true"/>
    <symbol name="USART2_UDRE" address="code:0x0068" entry="true"/>
    <symbol name="USART2_TX" address="code:0x006A" entry="true"/>
    <symbol name="USART3_RX" address="code:0x006C" entry="true"/>
    <symbol name="USART3_UDRE" address="code:0x006E" entry="true"/>
    <symbol name="USART3_TX" address="code:0x0070" entry="true"/>

    <symbol name="PINA" address="mem:0x20"/>
    <symbol name="DDRA" address="mem:0x21"/>
    <symbol name="PORTA" address="mem:0x22"/>
    <symbol name="PINB" address="mem:0x23"/>
    <symbol name="DDRB" address="mem:0x24"/>
    <symbol name="PORTB" address="mem:0x25"/>
    <symbol name="PINC" address="mem:0x26"/>
    <symbol name="DDRC" address="mem:0x27"/>
    <symbol name="PORTC" address="mem:0x28"/>
    <symbol name="PIND" address="mem:0x29"/>
    <symbol name="DDRD" address="mem:0x2a"/>
    <symbol name="PORTD" address="mem:0x2b"/>
    <symbol name="PINE" address="mem:0x2c"/>
    <symbol name="DDRE" address="mem:0x2d"/>
    <symbol name="PORTE" address="mem:0x2e"/>
    <symbol name="PINF" address="mem:0x2f"/>
    <symbol name="DDRF" address="mem:0x30"/>
    <symbol name="PORTF" address="mem:0x31"/>
    <symbol name="PING" address="mem:0x32"/>
    <symbol name="DDRG" address="mem:0x33"/>
    <symbol name="PORTG" address="mem:0x34"/>
    <symbol name="TIFR0" address="mem:0x35"/>
    <symbol name="TIFR1" address="mem:0x36"/>
    <symbol name="TIFR2" address="mem:0x37"/>
    <symbol name="TIFR3" address="mem:0x38"/>
    <symbol name="TIFR4" address="mem:0x39"/>
    <symbol name="TIFR5" address="mem:0x3a"/>
    <symbol name="PCIFR" address="mem:0x3b"/>
    <symbol name="EIFR" address="mem:0x3c"/>
    <symbol name="EIMSK" address="mem:0x3d"/>
    <symbol name="GPIOR0" address="mem:0x3e"/>
    <symbol name="EECR" address="mem:0x3f"/>
    <symbol name="EEDR" address="mem:0x40"/>
    <symbol name="EEARL" address="mem:0x41"/>
    <symbol name="EEARH" address="mem:0x42"/>
    <symbol name="GTCCR" address="mem:0x43"/>
    <symbol name="TCCR0A" address="mem:0x44"/>
    <symbol name="TCCR0B" address="mem:0x45"/>
    <symbol name="TCNT0" address="mem:0x46"/>
    <symbol name="OCR0A" address="mem:0x47"/>
    <symbol name="OCR0B" address="mem:0x48"/>

    <symbol name="GPIOR1" address="mem:0x4a"/>
    <symbol name="GPIOR2" address="mem:0x4b"/>
    <symbol name="SPCR" address="mem:0x4c"/>
    <symbol name="SPSR" address="mem:0x4d"/>
    <symbol name="SPDR" address="mem:0x4e"/>

    <symbol name="ACSR" address="mem:0x50"/>
    <symbol name="OCDR" address="mem:0x51"/>

    <symbol name="SMCR" address="mem:0x53"/>
    <symbol name="MCUSR" address="mem:0x54"/>
    <symbol name="MCUCR" address="mem:0x55"/>

    <symbol name="SPMCSR" address="mem:0x57"/>

	<symbol name="RAMPZ" address="mem:0x5b"/>
    <symbol name="EIND" address="mem:0x5c"/>
    <symbol name="_SPL" address="mem:0x5d"/>
    <symbol name="_SPH" address="mem:0x5e"/>

    <symbol name="WDTCSR" address="mem:0x60"/>
    <symbol name="CLKPR" address="mem:0x61"/>

	<symbol name="PRR2" address="mem:0x63"/>
    <symbol name="PRR0" address="mem:0x64"/>
    <symbol name="PRR1" address="mem:0x65"/>
    <symbol name="OSCCAL" address="mem:0x66"/>
	<symbol name="BGCR" address="mem:0x67"/>
    <symbol name="PCICR" address="mem:0x68"/>
    <symbol name="EICRA" address="mem:0x69"/>
    <symbol name="EICRB" address="mem:0x6a"/>
    <symbol name="PCMSK0" address="mem:0x6b"/>
    <symbol name="PCMSK1" address="mem:0x6c"/>
    <symbol name="PCMSK2" address="mem:0x6d"/>
    <symbol name="TIMSK0" address="mem:0x6e"/>
    <symbol name="TIMSK1" address="mem:0x6f"/>
    <symbol name="TIMSK2" address="mem:0x70"/>
    <symbol name="TIMSK3" address="mem:0x71"/>
    <symbol name="TIMSK4" address="mem:0x72"/>
    <symbol name="TIMSK5" address="mem:0x73"/>

    <symbol name="NEMCR" address="mem:0x75"/>

	<symbol name="ADCSRC" address="mem:0x77"/>
    <symbol name="ADCL" address="mem:0x78"/>
    <symbol name="ADCH" address="mem:0x79"/>
    <symbol name="ADCSRA" address="mem:0x7a"/>
    <symbol name="ADCSRB" address="mem:0x7b"/>
    <symbol name="ADMUX" address="mem:0x7c"/>
    <symbol name="DIDR2" address="mem:0x7d"/>
    <symbol name="DIDR0" address="mem:0x7e"/>
    <symbol name="DIDR1" address="mem:0x7f"/>
    <symbol name="TCCR1A" address="mem:0x80"/>
    <symbol name="TCCR1B" address="mem:0x81"/>
    <symbol name="TCCR1C" address="mem:0x82"/>

    <symbol name="TCNT1L" address="mem:0x84"/>
    <symbol name="TCNT1H" address="mem:0x85"/>
    <symbol name="ICR1L" address="mem:0x86"/>
    <symbol name="ICR1H" address="mem:0x87"/>
    <symbol name="OCR1AL" address="mem:0x88"/>
    <symbol name="OCR1AH" address="mem:0x89"/>
    <symbol name="OCR1BL" address="mem:0x8a"/>
    <symbol name="OCR1BH" address="mem:0x8b"/>
    <symbol name="OCR1CL" address="mem:0x8c"/>
    <symbol name="OCR1CH" address="mem:0x8d"/>

    <symbol name="TCCR3A" address="mem:0x90"/>
    <symbol name="TCCR3B" address="mem:0x91"/>
    <symbol name="TCCR3C" address="mem:0x92"/>

    <symbol name="TCNT3L" address="mem:0x94"/>
    <symbol name="TCNT3H" address="mem:0x95"/>
    <symbol name="ICR3L" address="mem:0x96"/>
    <symbol name="ICR3H" address="mem:0x97"/>
    <symbol name="OCR3AL" address="mem:0x98"/>
    <symbol name="OCR3AH" address="mem:0x99"/>
    <symbol name="OCR3BL" address="mem:0x9a"/>
    <symbol name="OCR3BH" address="mem:0x9b"/>
    <symbol name="OCR3CL" address="mem:0x9c"/>
    <symbol name="OCR3CH" address="mem:0x9d"/>

    <symbol name="TCCR4A" address="mem:0xa0"/>
    <symbol name="TCCR4B" address="mem:0xa1"/>
    <symbol name="TCCR4C" address="mem:0xa2"/>

    <symbol name="TCNT4L" address="mem:0xa4"/>
    <symbol name="TCNT4H" address="mem:0xa5"/>
    <symbol name="ICR4L" address="mem:0xa6"/>
    <symbol name="ICR4H" address="mem:0xa7"/>
    <symbol name="OCR4AL" address="mem:0xa8"/>
    <symbol name="OCR4AH" address="mem:0xa9"/>
    <symbol name="OCR4BL" address="mem:0xaa"/>
    <symbol name="OCR4BH" address="mem:0xab"/>
    <symbol name="OCR4CL" address="mem:0xac"/>
    <symbol name="OCR4CH" address="mem:0xad"/>

    <symbol name="TCCR2A" address="mem:0xb0"/>
    <symbol name="TCCR2B" address="mem:0xb1"/>
    <symbol name="TCNT2" address="mem:0xb2"/>
    <symbol name="OCR2A" address="mem:0xb3"/>
    <symbol name="OCR2B" address="mem:0xb4"/>

    <symbol name="ASSR" address="mem:0xb6"/>

    <symbol name="TWBR" address="mem:0xb8"/>
    <symbol name="TWSR" address="mem:0xb9"/>
    <symbol name="TWAR" address="mem:0xba"/>
    <symbol name="TWDR" address="mem:0xbb"/>
    <symbol name="TWCR" address="mem:0xbc"/>
    <symbol name="TWAMR" address="mem:0xbd"/>
    <symbol name="IRQ_MASK1" address="mem:0xbe"/>
    <symbol name="IRQ_STATUS1" address="mem:0xbf"/>
    <symbol name="UCSR0A" address="mem:0xc0"/>
    <symbol name="UCSR0B" address="mem:0xc1"/>
    <symbol name="UCSR0C" address="mem:0xc2"/>

    <symbol name="UBRR0L" address="mem:0xc4"/>
    <symbol name="UBRR0H" address="mem:0xc5"/>
    <symbol name="UDR0" address="mem:0xc6"/>

    <symbol name="UCSR1A" address="mem:0xc8"/>
    <symbol name="UCSR1B" address="mem:0xc9"/>
    <symbol name="UCSR1C" address="mem:0xca"/>

    <symbol name="UBRR1L" address="mem:0xcc"/>
    <symbol name="UBRR1H" address="mem:0xcd"/>
    <symbol name="UDR1" address="mem:0xce"/>

    <symbol name="UCSR2A" address="mem:0xd0"/>
    <symbol name="UCSR2B" address="mem:0xd1"/>
    <symbol name="UCSR2C" address="mem:0xd2"/>

    <symbol name="SCRSTRLL" address="mem:0xd7"/>
    <symbol name="SCRSTRLH " address="mem:0xd8"/>
    <symbol name="SCRSTRHL" address="mem:0xd9"/>
    <symbol name="SCRSTRHH" address="mem:0xda"/>
    <symbol name="SCCSR" address="mem:0xdb"/>
    <symbol name="SCCR0 " address="mem:0xdc"/>
    <symbol name="SCCR1" address="mem:0xdd"/>
    <symbol name="SCSR" address="mem:0xde"/>
    <symbol name="SCIRQM" address="mem:0xdf"/>
    <symbol name="SCIRQS" address="mem:0xe0"/>
    <symbol name="SCCNTLL " address="mem:0xe1"/>
    <symbol name="SCCNTLH" address="mem:0xe2"/>
    <symbol name="SCCNTHL" address="mem:0xe3"/>
    <symbol name="SCCNTHH" address="mem:0xe4"/>
    <symbol name="SCBTSRLL " address="mem:0xe5"/>
    <symbol name="SCBTSRLH" address="mem:0xe6"/>
    <symbol name="SCBTSRHL" address="mem:0xe7"/>
    <symbol name="SCBTSRHH" address="mem:0xe8"/>
    <symbol name="SCTSRLL" address="mem:0xe9"/>
    <symbol name="SCTSRLH" address="mem:0xea"/>
    <symbol name="SCTSRHL" address="mem:0xeb"/>
    <symbol name="SCTSRHH" address="mem:0xec"/>
    <symbol name="SCOCR3LL" address="mem:0xed"/>
    <symbol name="SCOCR3LH" address="mem:0xee"/>
    <symbol name="SCOCR3HL" address="mem:0xef"/>
    <symbol name="SCOCR3HH" address="mem:0xf0"/>
    <symbol name="SCOCR2LL " address="mem:0xf1"/>
    <symbol name="SCOCR2LH" address="mem:0xf2"/>
    <symbol name="SCOCR2HL" address="mem:0xf3"/>
    <symbol name="SCOCR2HH" address="mem:0xf4"/>
    <symbol name="SCOCR1LL " address="mem:0xf5"/>
    <symbol name="SCOCR1LH" address="mem:0xf6"/>
    <symbol name="SCOCR1HL" address="mem:0xf7"/>
    <symbol name="SCOCR1HH" address="mem:0xf8"/>
    <symbol name="SCTSTRLL" address="mem:0xf9"/>
    <symbol name="SCTSTRLH" address="mem:0xfa"/>
    <symbol name="SCTSTRHL" address="mem:0xfb"/>
    <symbol name="SCTSTRHH" address="mem:0xfc"/>

    <symbol name="MAFCR0" address="mem:0x100c"/>
    <symbol name="MAFCR1" address="mem:0x10d"/>
    <symbol name="MAFSA0L" address="mem:0x10e"/>
    <symbol name="MAFSA0H" address="mem:0x10f"/>
    <symbol name="MAFPA0L" address="mem:0x110"/>
    <symbol name="MAFPA0H" address="mem:0x111"/>
    <symbol name="MAFSA1L" address="mem:0x112"/>
    <symbol name="MAFSA1H" address="mem:0x113"/>
    <symbol name="MAFPA1L" address="mem:0x114"/>
    <symbol name="MAFPA1H" address="mem:0x115"/>
    <symbol name="MAFSA2L" address="mem:0x116"/>
    <symbol name="MAFSA2H" address="mem:0x117"/>
    <symbol name="MAFPA2L" address="mem:0x1018"/>
    <symbol name="MAFPA2H" address="mem:0x119"/>
    <symbol name="MAFSA3L" address="mem:0x11a"/>
    <symbol name="MAFSA3H" address="mem:0x11b"/>
    <symbol name="MAFPA3L" address="mem:0x11c"/>
    <symbol name="MAFPA3H" address="mem:0x11d"/>

    <symbol name="TCCR5A" address="mem:0x120"/>
    <symbol name="TCCR5B" address="mem:0x121"/>
    <symbol name="TCCR5C" address="mem:0x122"/>

    <symbol name="TCNT5L" address="mem:0x124"/>
    <symbol name="TCNT5H" address="mem:0x125"/>
    <symbol name="ICR5L" address="mem:0x126"/>
    <symbol name="ICR5H" address="mem:0x127"/>
    <symbol name="OCR5AL" address="mem:0x128"/>
    <symbol name="OCR5AH" address="mem:0x129"/>
    <symbol name="OCR5BL" address="mem:0x12a"/>
    <symbol name="OCR5BH" address="mem:0x12b"/>
    <symbol name="OCR5CL" address="mem:0x12c"/>
    <symbol name="OCR5CH" address="mem:0x12d"/>

    <symbol name="LLCR" address="mem:0x12f"/>
    <symbol name="LLDRL" address="mem:0x130"/>
    <symbol name="LLDRH" address="mem:0x131"/>
    <symbol name="DRTRAM3" address="mem:0x132"/>
    <symbol name="DRTRAM2" address="mem:0x133"/>
    <symbol name="DRTRAM1" address="mem:0x134"/>
    <symbol name="DRTRAM0" address="mem:0x135"/>
    <symbol name="DPDS0" address="mem:0x136"/>
    <symbol name="DPDS1" address="mem:0x137"/>
    <symbol name="PARCR" address="mem:0x138"/>
    <symbol name="TRXPR" address="mem:0x139"/>
    
    <symbol name="AES_CTRL" address="mem:0x13c"/>
    <symbol name="AES_STATUS" address="mem:0x13d"/>
    <symbol name="AES_STATE" address="mem:0x13e"/>
    <symbol name="AES_KEY" address="mem:0x13f"/>
    
    <symbol name="TRX_STATUS" address="mem:0x141"/>
    <symbol name="TRX_STATE" address="mem:0x142"/>
    <symbol name="TRX_CTRL_0" address="mem:0x143"/>
    <symbol name="TRX_CTRL_1" address="mem:0x144"/>
    <symbol name="PHY_TX_PWR" address="mem:0x145"/>
    <symbol name="PHY_RSSI" address="mem:0x146"/>
    <symbol name="PHY_ED_LEVEL" address="mem:0x147"/>
    <symbol name="PHY_CC_CCA" address="mem:0x148"/>
    <symbol name="CCA_THRES" address="mem:0x149"/>
    <symbol name="RX_CTRL" address="mem:0x14a"/>
    <symbol name="SFD_VALUE" address="mem:0x14b"/>
    <symbol name="TRX_CTRL_2" address="mem:0x14c"/>
    <symbol name="ANT_DIV" address="mem:0x14d"/>
    <symbol name="IRQ_MASK" address="mem:0x14e"/>
    <symbol name="IRQ_STATUS" address="mem:0x14f"/>
    <symbol name="VREG_CTRL" address="mem:0x150"/>
    <symbol name="BATMON" address="mem:0x151"/>
    <symbol name="XOSC_CTRL" address="mem:0x152"/>
    <symbol name="CC_CTRL_0" address="mem:0x153"/>
    <symbol name="CC_CTRL_1" address="mem:0x154"/>
    <symbol name="RX_SYN" address="mem:0x155"/>
    <symbol name="TRX_RPC" address="mem:0x156"/>
    <symbol name="XAH_CTRL_1" address="mem:0x157"/>
    <symbol name="FTN_CTRL" address="mem:0x158"/>

    <symbol name="PLL_CF" address="mem:0x15a"/>
	<symbol name="PLL_DCU" address="mem:0x15b"/>
    <symbol name="PART_NUM" address="mem:0x15c"/>
    <symbol name="VERSION_NUM " address="mem:0x15d"/>
    <symbol name="MAN_ID_0" address="mem:0x15e"/>
    <symbol name="MAN_ID_1" address="mem:0x15f"/>
    <symbol name="SHORT_ADDR_0" address="mem:0x160"/>
    <symbol name="SHORT_ADDR_1" address="mem:0x161"/>
	<symbol name="PAN_ID_0" address="mem:0x162"/>
	<symbol name="PAN_ID_1" address="mem:0x163"/>
    <symbol name="IEEE_ADDR_0" address="mem:0x164"/>
    <symbol name="IEEE_ADDR_1" address="mem:0x165"/>
    <symbol name="IEEE_ADDR_2" address="mem:0x166"/>
	<symbol name="IEEE_ADDR_3" address="mem:0x167"/>
    <symbol name="IEEE_ADDR_4" address="mem:0x168"/>
    <symbol name="IEEE_ADDR_5" address="mem:0x169"/>
    <symbol name="IEEE_ADDR_6" address="mem:0x16a"/>
    <symbol name="IEEE_ADDR_7" address="mem:0x16b"/>
    <symbol name="XAH_CTRL_0" address="mem:0x16c"/>
    <symbol name="CSMA_SEED_0" address="mem:0x16d"/>
    <symbol name="CSMA_SEED_1" address="mem:0x16e"/>
    <symbol name="CSMA_BE" address="mem:0x16f"/>

    <symbol name="TST_CTRL_DIGI" address="mem:0x176"/>
    
    <symbol name="TST_RX_LENGTH" address="mem:0x17b"/>
    <symbol name="TST_AGC" address="mem:0x17c"/>
    <symbol name="TST_SDM" address="mem:0x17d"/>
    
    <symbol name="TRXFBST" address="mem:0x180"/>
    
    <symbol name="TRXFBEND" address="mem:0x1ff"/>
        
  </default_symbols>

  <default_memory_blocks>
    <memory_block name="regalias" start_address="mem:0x00" length="0x20" initialized="false"/>
    <memory_block name="iospace" start_address="mem:0x20" length="0x1e0" initialized="false"/>
    <memory_block name="data" start_address="mem:0x200" length="0x2000" initialized="false"/>
  </default_memory_blocks>


</processor_spec>
