From: Stephan Bärwolf Date: Sat, 4 Aug 2012 10:08:19 +0000 (+0200) Subject: FIX: fix some fuse-settings, correct some typos within spminterface X-Git-Tag: 2010-07-27-stephan-201208041315~3 X-Git-Url: http://git.linex4red.de/pub/USBaspLoader.git/commitdiff_plain/26f5a0cd3e6f4e5d76b695a3dd7357c507b9d957 FIX: fix some fuse-settings, correct some typos within spminterface Signed-off-by: Stephan Bärwolf --- diff --git a/firmware/Makefile b/firmware/Makefile index 01f5307..7a0a8ea 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -15,15 +15,23 @@ F_CPU = 16000000 DEVICE = atmega8 + # BOOTLOADER_ADDRESS is 1800 for 8k devices, 3800 for 16k and 7800 for 32k. BOOTLOADER_ADDRESS = 1800 -FUSEOPT = $(FUSEOPT_8) -LOCKOPT = -U lock:w:0x2f:m -PROGRAMMER = -c pony-stk200 # PROGRAMMER contains AVRDUDE options to address your programmer +# PROGRAMMER = -c pony-stk200 +PROGRAMMER = -c usbasp + +# since USBaspLoader supports HAVE_BLB11_SOFTW_LOCKBIT... +LOCKOPT = -U lock:w:0x3f:m +FUSEOPT = $(FUSEOPT_8) + + +# standard atmega8 needs BODLEVEL to be programed, since it is a 5V device +# you may also want to UNprogram SUT1 to get a SLOWER bootup (lfuse then would be 0x3f) +FUSEOPT_8 = -U hfuse:w:0xc0:m -U lfuse:w:0x1f:m -FUSEOPT_8 = -U hfuse:w:0xc0:m -U lfuse:w:0x9f:m FUSEOPT_88 = -U hfuse:w:0xd6:m -U lfuse:w:0xdf:m -U efuse:w:0x00:m FUSEOPT_168 = -U hfuse:w:0xd6:m -U lfuse:w:0xdf:m -U efuse:w:0x00:m FUSEOPT_328 = -U lfuse:w:0xf7:m -U hfuse:w:0xda:m -U efuse:w:0x03:m diff --git a/firmware/spminterface.h b/firmware/spminterface.h index cee4e70..00747c7 100644 --- a/firmware/spminterface.h +++ b/firmware/spminterface.h @@ -40,22 +40,27 @@ bootloader__do_spm: ;MCU dependend RA(MPZ should be transfered within register: r11 ;lo8(Z) should be transfered within register: r12 ;hi8(Z) should be transfered within register: r13 +;( as definition of SPM low8bit of dataword are stored within r0 ) +;( as definition of SPM hi8bit of dataword are stored within r1 ) ;<-->USED/CHANGED: ;temp0 will be register: r11 ;temp1 will be register: r12 ;temp2 will be register: r13 +;spmcrval (r18) may also be changed due to rww reenable-phase r18 ;Z (r31:r30) wil be changed during operation ;<--OUT: ;================================================================== +; TODO: waitA and waitB could be merged to subroutine saving 2 opc +;================================================================== -;load pageaddress (Z) from r13:12 since it may was used for icall +;load pageaddress (Z) from (r11:)r13:12 since it may was used for icall mov rampZ, r11 mov r30, r12 mov r31, r13 -waitA: ;check for previous SPM complete +waitA: ;check for pending SPM complete in temp0, SPMCR sbrc temp0, SPMEN rjmp waitA