When the BOOTRST Fuse is unprogrammed, the boot section size set to 2K 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 in ATA6613C is:
Address
Labels Code
Comments
0x0000
RESET: ldi r16,high(RAMEND); Main program start
0x0001
out SPH,r16
; Set Stack Pointer to top of RAM
0x0002
ldi r16,low(RAMEND)
0x0003
out SPL,r16
0x0004
sei
; Enable interrupts
0x0005
<instr> xxx
;
.org 0xC02
0x1C02
rjmp EXT_INT0
; IRQ0 Handler
0x1C04
rjmp EXT_INT1
; IRQ1 Handler
...
... ...
;
0x1C32
rjmp SPM_RDY
; Store Program Memory Ready Handler
When the BOOTRST fuse is programmed and the boot section size set to 2Kbytes, the most typical and general program
setup for the reset and interrupt vector addresses in ATA6613C is:
Address
Labels Code
Comments
.org 0x0002
0x0002
rjmp EXT_INT0
; IRQ0 Handler
0x0004
rjmp EXT_INT1
; IRQ1 Handler
...
... ...
;
0x0032
rjmp SPM_RDY
; Store Program Memory Ready Handler
;
.org 0x1C00
0x1C00
RESET: ldi r16,high(RAMEND); Main program start
0x1C01
out SPH,r16
; Set Stack Pointer to top of RAM
0x1C02
ldi r16,low(RAMEND)
0x1C03
out SPL,r16
0x1C04
sei
; Enable interrupts
0x1C05
<instr> xxx
When the BOOTRST fuse is programmed, the boot section size set to 2Kbytes 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 in ATA6613C is:
Address
Labels Code
Comments
;
.org 0x1C00
0x1C00
rjmp RESET
; Reset handler
0x1C02
rjmp EXT_INT0
; IRQ0 Handler
0x1C04
rjmp EXT_INT1
; IRQ1 Handler
...
... ...
;
0x1C32
rjmp SPM_RDY
; Store Program Memory Ready Handler
;
0x1C33
RESET: ldi r16,high(RAMEND); Main program start
0x1C34
out SPH,r16
; Set Stack Pointer to top of RAM
0x1C35
ldi r16,low(RAMEND)
0x1C36
out SPL,r16
0x1C37
sei
; Enable interrupts
0x1C38
<instr> xxx
ATA6612C/ATA6613C [DATASHEET]
75
9111L–AUTO–11/14