beautypg.com

Rainbow Electronics ATmega64M1 User Manual

Page 57

background image

57

8209A–AVR–08/09

ATmega16M1/32M1/64M1

Address

Labels Code

Comments

.org 0x002

0x002

jmp

ANA_COMP_0

; Analog Comparator 0 Handler

0x004

jmp

ANA_COMP_1

; Analog Comparator 1 Handler

...

...

...

;

0x03C

jmp

SPM_RDY

; Store Program Memory Ready Handler

;

.org 0xC00

0xC00

RESET: ldi

r16,high(RAMEND); Main program start

0xC01

out

SPH,r16

; Set Stack Pointer to top of RAM

0xC02

ldi

r16,low(RAMEND)

0xC03

out

SPL,r16

0xC04

sei

; Enable interrupts

0xC05

xxx

When the BOOTRST Fuse is programmed, 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 ATmega16M1/32M1/64M1 is:

Address

Labels Code

Comments

;

.org 0xC00

0xC00

jmp

RESET

; Reset handler

0xC02

jmp

ANA_COMP_0

; Analog Comparator 0 Handler

0xC04

jmp

ANA_COMP_1

; Analog Comparator 1 Handler

...

...

...

;

0xC3C

jmp

SPM_RDY

; Store Program Memory Ready Handler

;

0xC3E

RESET: ldi

r16,high(RAMEND); Main program start

0xC3F

out

SPH,r16

; Set Stack Pointer to top of RAM

0xC40

ldi

r16,low(RAMEND)

0xC41

out

SPL,r16

0xC42

sei

; Enable interrupts

0xC43

xxx

12.1.1

Moving Interrupts Between Application and Boot Space

The MCU Control Register controls the placement of the Interrupt Vector table.