66
8025I–AVR–02/09
ATmega48P/88P/168P/328P
Notes:
1. When the BOOTRST Fuse is programmed, the device will jump to the Boot Loader address at reset, see
port – Read-While-Write Self-Programming, ATmega88P, ATmega168P and ATmega328P” on page 277
.
2. When the IVSEL bit in MCUCR is set, Interrupt Vectors will be moved to the start of the Boot Flash Section. The address of
each Interrupt Vector will then be the address in this table added to the start address of the Boot Flash Section.
shows reset and Interrupt Vectors placement for the various combinations
of BOOTRST and IVSEL settings. If the program never enables an interrupt source, the Interrupt
Vectors are not used, and regular program code can be placed at these locations. This is also
the case if the Reset Vector is in the Application section while the Interrupt Vectors are in the
Boot section or vice versa.
Note:
1. The Boot Reset Address is shown in
. For the BOOTRST Fuse “1”
means unprogrammed while “0” means programmed.
The most typical and general program setup for the Reset and Interrupt Vector Addresses in
ATmega328P is:
Address
Labels Code
Comments
0x0000
jmp
RESET
; Reset Handler
0x0002
jmp
EXT_INT0
; IRQ0 Handler
0x0004
jmp
EXT_INT1
; IRQ1 Handler
0x0006
jmp
PCINT0
; PCINT0 Handler
0x0008
jmp
PCINT1
; PCINT1 Handler
0x000A
jmp
PCINT2
; PCINT2 Handler
0x000C
jmp
WDT
; Watchdog Timer Handler
0x000E
jmp
TIM2_COMPA
; Timer2 Compare A Handler
0x0010
jmp
TIM2_COMPB
; Timer2 Compare B Handler
0x0012
jmp
TIM2_OVF
; Timer2 Overflow Handler
0x0014
jmp
TIM1_CAPT
; Timer1 Capture Handler
0x0016
jmp
TIM1_COMPA
; Timer1 Compare A Handler
0x0018
jmp
TIM1_COMPB
; Timer1 Compare B Handler
0x001A
jmp
TIM1_OVF
; Timer1 Overflow Handler
22
0x002A
ADC
ADC Conversion Complete
23
0x002C
EE READY
EEPROM Ready
24
0x002E
ANALOG COMP
Analog Comparator
25
0x0030
TWI
2-wire Serial Interface
26
0x0032
SPM READY
Store Program Memory Ready
Table 9-6.
Reset and Interrupt Vectors in ATmega328P (Continued)
VectorNo.
Program
Address
(2)
Source
Interrupt Definition
Table 9-7.
Reset and Interrupt Vectors Placement in ATmega328P
BOOTRST
IVSEL
Reset Address
Interrupt Vectors Start Address
1
0
0x000
0x002
1
1
0x000
Boot Reset A 0x0002
0
0
Boot Reset Address
0x002
0
1
Boot Reset Address
Boot Reset A 0x0002