extend "spminterface.h" for support of multiple ATmegas
[pub/USBaspLoader.git] / firmware / bootloaderconfig.h
index 1b2bf24..97311dd 100644 (file)
@@ -93,6 +93,17 @@ these macros are defined, the boot loader usees them.
  * to erase itself from the bootregion
  */
 
  * to erase itself from the bootregion
  */
 
+#define HAVE_SPMINTEREFACE         1
+/*
+ * Since code within normal section of application memory (rww-section) is
+ * not able to call spm for programming flash-pages, this option (when
+ * enabled) will insert a small subroutine into the bootloader-section
+ * to enable applications to circumvent this limitation and make them
+ * able to program the flash in a similar way as the bootloader does, too.
+ * For further details see "spminterface.h", which implements this 
+ * feature.
+ */
+
 #define HAVE_EEPROM_PAGED_ACCESS    1
 /* If HAVE_EEPROM_PAGED_ACCESS is defined to 1, page mode access to EEPROM is
  * compiled in. Whether page mode or byte mode access is used by AVRDUDE
 #define HAVE_EEPROM_PAGED_ACCESS    1
 /* If HAVE_EEPROM_PAGED_ACCESS is defined to 1, page mode access to EEPROM is
  * compiled in. Whether page mode or byte mode access is used by AVRDUDE
@@ -154,7 +165,8 @@ these macros are defined, the boot loader usees them.
 
 static inline void  bootLoaderInit(void)
 {
 
 static inline void  bootLoaderInit(void)
 {
-    PORTD |= (1 << JUMPER_BIT);     /* activate pull-up */
+    DDRD   = 0;
+    PORTD  = (1 << JUMPER_BIT);     /* activate pull-up */
 //     deactivated by Stephan - reset after each avrdude op is annoing!
 //     if(!(MCUCSR & (1 << EXTRF)))    /* If this was not an external reset, ignore */
 //         leaveBootloader();
 //     deactivated by Stephan - reset after each avrdude op is annoing!
 //     if(!(MCUCSR & (1 << EXTRF)))    /* If this was not an external reset, ignore */
 //         leaveBootloader();