Cracking ATmega16 MCU Flash Memory and recover microcontroller heximal file from atmega16, the embedded software can be readout directly from atmega16 microprocessor;
The lowest addresses in the Program memory space are by default defined as the Reset and Interrupt Vectors. The complete list of Vectors is shown in “Interrupts” on page 51. The list also determines the priority levels of the different interrupts.
The lower the address the higher is the priority level. RESET has the highest priority, and next is INT0 – the External Interrupt Request 0. The Interrupt Vectors can be moved to the start of the boot Flash section by setting the Interrupt Vector Select (IVSEL) bit to attack avr mcu atmega16l memory in the General Interrupt Control Register (GICR).
Refer to “Interrupts” on page 51 for more information. The Reset Vector can also be moved to the start of the boot Flash section by programming the BOOTRST Fuse.
When an interrupt occurs, the Global Interrupt Enable I-bit is cleared and all interrupts are disabled. The user software can write logic one to the I-bit to enable nested interrupts.
All enabled interrupts can then interrupt the current interrupt routine. The I-bit is automatically set when a Return from Interrupt instruction – RETI – is executed in the process of cracking avr mcu atmega16 processor. There are basically two types of interrupts.
The first type is triggered by an event that sets the Interrupt Flag. For these interrupts, the Program Counter is vectored to the actual Interrupt Vector in order to execute the interrupt