ATmega169P
sbiw loophi:looplo, 1
brne Rdloop
;use subi for PAGESIZEB<=256
; return to RWW section
; verify that RWW section is safe to read
Return:
in
temp1, SPMCSR
sbrs temp1, RWWSB
ret
; If RWWSB is set, the RWW section is not ready yet
; 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
25.7.13 ATmega169P Boot Loader Parameters
In Table 25-6 through Table 25-8, the parameters used in the description of the Self-Program-
ming are given.
Table 25-6. Boot Size Configuration(1)
Boot Reset
Address
Boot Loader
Flash
Section
End
Application
Section
(Start Boot
Loader
Section)
Application Flash
Section
128
words
1
1
0
1
0
2
4
0x0000 - 0x1F7F
0x0000 - 0x1EFF
0x0000 - 0x1DFF
0x0000 - 0x1BFF
0x1F80 - 0x1FFF
0x1F00 - 0x1FFF
0x1E00 - 0x1FFF
0x1C00 - 0x1FFF
0x1F7F
0x1EFF
0x1DFF
0x1BFF
0x1F80
0x1F00
0x1E00
0x1C00
256
words
1
512
words
0
0
8
1024
words
16
Note:
1. The different BOOTSZ Fuse configurations are shown in Figure 25-2
291
8018A–AVR–03/06