FIX: fix some fuse-settings, correct some typos within spminterface
authorStephan Bärwolf <stephan.baerwolf@tu-ilmenau.de>
Sat, 4 Aug 2012 10:08:19 +0000 (12:08 +0200)
committerStephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Sat, 4 Aug 2012 11:06:41 +0000 (11:06 +0000)
Signed-off-by: Stephan Bärwolf <stephan.baerwolf@tu-ilmenau.de>
firmware/Makefile
firmware/spminterface.h

index 01f5307..7a0a8ea 100644 (file)
 
 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
index cee4e70..00747c7 100644 (file)
@@ -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