Datasheet
305
8284D–AVR–6/11
ATmega169A/PA/329A/PA/3290A/PA/649A/P/6490A/P
brne Rdloop
; return to RWW section
; verify that RWW section is safe to read
Return:
in temp1, SPMCSR
sbrs temp1, RWWSB ; If RWWSB is set, the RWW section is not ready yet
ret
; re-enable the RWW section
ldi spmcrval, (1<<RWWSRE) | (1<<SPMEN)
call Do_spm
rjmp Return
Do_spm:
; check for previous SPM complete
Wait_spm:
in temp1, SPMCSR
sbrc temp1, SPMEN
rjmp Wait_spm
; input: spmcrval determines SPM action
; disable interrupts if enabled, store status
in temp2, SREG
cli
; check that no EEPROM write access is present
Wait_ee:
sbic EECR, EEWE
rjmp Wait_ee
; SPM timed sequence
out SPMCSR, spmcrval
spm
; restore SREG (to enable interrupts if originally enabled)
out SREG, temp2
ret
27.8.13 Boot Loader Parameters
27.8.13.1 ATmega169A/169PA
In Table 27-9 on page 306 through Table 27-11 on page 307, the parameters used in the
description of the Self-Programming are given.
Note: 1. The different BOOTSZ Fuse configurations are shown in Figure 27-2
Table 27-6. Boot Size Configuration (ATmega169A/169PA)
(1)
BOOTSZ1
BOOTSZ0
Boot Size
Pages
Application Flash
Section
Boot Loader
Flash
Section
End
Application
Section
Boot Reset
Address
(Start Boot
Loader
Section)
11
128
words
2 0x0000 - 0x1F7F 0x1F80 - 0x1FFF 0x1F7F 0x1F80
10
256
words
4 0x0000 - 0x1EFF 0x1F00 - 0x1FFF 0x1EFF 0x1F00
01
512
words
8 0x0000 - 0x1DFF 0x1E00 - 0x1FFF 0x1DFF 0x1E00
00
1024
words
16 0x0000 - 0x1BFF 0x1C00 - 0x1FFF 0x1BFF 0x1C00