63
7679H–CAN–08/08
AT90CAN32/64/128
0x0004 sei ; Enable interrupts
0x0005 <instr> xxx
;
.org (BootResetAdd + 0x0002)
0x..02 jmp EXT_INT0 ; IRQ0 Handler
0x..04 jmp PCINT0 ; PCINT0 Handler
... ... ... ;
0x..0C 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 Labels Code Comments
.org 0x0002
0x0002 jmp EXT_INT0 ; IRQ0 Handler
0x0004 jmp PCINT0 ; PCINT0 Handler
... ... ... ;
0x002C jmp SPM_RDY ; Store Program Memory Ready Handler
;
.org (BootResetAdd)
0x..00 RESET: ldi r16,high(RAMEND) ; Main program start
0x..01 out SPH,r16 ; Set Stack Pointer to top of RAM
0x..02 ldi r16,low(RAMEND)
0x..03 out SPL,r16
0x..04 sei ; Enable interrupts
0x..05 <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 (BootResetAdd)
0x..00 jmp RESET ; Reset handler
0x0002 jmp EXT_INT0 ; IRQ0 Handler
0x..04 jmp PCINT0 ; PCINT0 Handler
... ... ... ;
0x..44 jmp SPM_RDY ; Store Program Memory Ready Handler
;
0x..46 RESET: ldi r16,high(RAMEND) ; Main program start
0x..47 out SPH,r16 ; Set Stack Pointer to top of RAM
0x..48 ldi r16,low(RAMEND)
0x..49 out SPL,r16
0x..4A sei ; Enable interrupts
0x..4B <instr> xxx