63
2467S–AVR–07/09
ATmega128
When the BOOTRST fuse is unprogrammed, the Boot section size set to 8K bytes and the
IVSEL bit in the MCUCR Register is set before any interrupts are enabled, the most typical and
general program setup for the Reset and Interrupt Vector Addresses is:
Address
LabelsCode
Comments
$0000
RESET:ldi
r16,high(RAMEND); Main program start
$0001
out
SPH,r16
; Set stack pointer to top of RAM
$0002
ldi
r16,low(RAMEND)
$0003
out
SPL,r16
$0004
sei
; Enable interrupts
$0005
<instr> xxx
;
.org $F002
$F002
jmp
EXT_INT0
; IRQ0 Handler
$F004
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
;
$F044
jmp
SPM_RDY
; Store Program Memory Ready Handler
When the BOOTRST fuse is programmed and the Boot section size set to 8K bytes, the most
typical and general program setup for the Reset and Interrupt Vector Addresses is:
Address
LabelsCode
Comments
.org $0002
$0002
jmp
EXT_INT0
; IRQ0 Handler
$0004
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
;
$0044
jmp
SPM_RDY
; Store Program Memory Ready Handler
;
.org $F000
$F000
RESET: ldi
r16,high(RAMEND); Main program start
$F001
out
SPH,r16
; Set stack pointer to top of RAM
$F002
ldi
r16,low(RAMEND)
$F003
out
SPL,r16
$F004
sei
; Enable interrupts
$F005
<instr> xxx
When the BOOTRST fuse is programmed, the Boot section size set to 8K bytes and the IVSEL
bit in the MCUCR Register is set before any interrupts are enabled, the most typical and general
program setup for the Reset and Interrupt Vector Addresses is:
Address
Labels
Code
Comments
;
.org $F000
$F000
jmp
RESET
; Reset handler
$F002
jmp
EXT_INT0
; IRQ0 Handler
$F004
jmp
EXT_INT1
; IRQ1 Handler
...
...
...
;
$F044
jmp
SPM_RDY
; Store Program Memory Ready Handler
$F046
RESET: ldi
r16,high(RAMEND); Main program start
$F047
out
SPH,r16
; Set stack pointer to top of RAM
$F048
ldi
r16,low(RAMEND)