From: Stephan Baerwolf Date: Wed, 1 Aug 2012 22:26:47 +0000 (+0200) Subject: improve "bootloader__do_spm" X-Git-Tag: 2010-07-27-stephan-201208020130~3 X-Git-Url: http://git.linex4red.de/pub/USBaspLoader.git/commitdiff_plain/82feae1e7670e2b28f8a7089b05c19f2c926ba39?ds=inline improve "bootloader__do_spm" Signed-off-by: Stephan Baerwolf --- diff --git a/firmware/spminterface.h b/firmware/spminterface.h index 384ae68..dd9e100 100644 --- a/firmware/spminterface.h +++ b/firmware/spminterface.h @@ -55,19 +55,24 @@ mov rampZ, r11 mov r30, r12 mov r31, r13 -wait: ;check for previous SPM complete +waitA: ;check for previous SPM complete in temp0, SPMCR sbrc temp0, SPMEN -rjmp wait +rjmp waitA out SPMCR, spmcrval ;SPM timed sequence spm +waitB: ;check for previous SPM complete +in temp0, SPMCR +sbrc temp0, SPMEN +rjmp waitB + ;avoid crash of userapplication ldi spmcrval, ((1<: + 1826: 00 00 nop + 1828: ec 2d mov r30, r12 + 182a: fd 2d mov r31, r13 + +0000182c : + 182c: b7 b6 in r11, 0x37 ; 55 + 182e: b0 fc sbrc r11, 0 + 1830: fd cf rjmp .-6 ; 0x182c + 1832: 27 bf out 0x37, r18 ; 55 + 1834: e8 95 spm + +00001836 : + 1836: b7 b6 in r11, 0x37 ; 55 + 1838: b0 fc sbrc r11, 0 + 183a: fd cf rjmp .-6 ; 0x1836 + 183c: 21 e1 ldi r18, 0x11 ; 17 + 183e: b7 b6 in r11, 0x37 ; 55 + 1840: b6 fc sbrc r11, 6 + 1842: f4 cf rjmp .-24 ; 0x182c + 1844: 08 95 ret +*/ #else #error "bootloader__do_spm has to be adapted, since there is no architecture code, yet" #endif