watchdog/eeprom: Added declaration blocks for older cores
authorMichel Pollet <buserror@gmail.com>
Sun, 4 Apr 2010 11:22:42 +0000 (12:22 +0100)
committerMichel Pollet <buserror@gmail.com>
Sun, 4 Apr 2010 11:22:42 +0000 (12:22 +0100)
For the mega128 generation

Signed-off-by: Michel Pollet <buserror@gmail.com>
simavr/sim/avr_eeprom.h
simavr/sim/avr_watchdog.h

index 7700e4c..6176b0c 100644 (file)
@@ -78,6 +78,27 @@ typedef struct avr_eeprom_desc_t {
                },\
        }
 
+/*
+ * no EEPM registers in atmega128
+ */
+#define AVR_EEPROM_DECLARE_NOEEPM(_vector)             \
+       .eeprom = {\
+               .size = E2END+1,\
+               .r_eearh = EEARH,\
+               .r_eearl = EEARL,\
+               .r_eedr = EEDR,\
+               .r_eecr = EECR,\
+               .eepm = { },            \
+               .eempe = AVR_IO_REGBIT(EECR, EEMWE),\
+               .eepe = AVR_IO_REGBIT(EECR, EEWE),\
+               .eere = AVR_IO_REGBIT(EECR, EERE),\
+               .ready = {\
+                       .enable = AVR_IO_REGBIT(EECR, EERIE),\
+                       .vector = _vector,\
+               },\
+       }
+
+
 /*
  * macro definition without a high address bit register,
  * which is not implemented in some tiny AVRs.
index 48a1da7..e31d3bb 100644 (file)
@@ -65,4 +65,19 @@ void avr_watchdog_init(avr_t * avr, avr_watchdog_t * p);
                },\
        }
 
+/* no WDP3, WDIE, WDIF in atmega128 */
+#define AVR_WATCHDOG_DECLARE_128(_WDSR, _vec) \
+       .watchdog = {\
+               .wdrf = AVR_IO_REGBIT(MCUSR, WDRF),\
+               .wdce = AVR_IO_REGBIT(_WDSR, WDCE),\
+               .wde = AVR_IO_REGBIT(_WDSR, WDE),\
+               .wdp = { AVR_IO_REGBIT(_WDSR, WDP0),AVR_IO_REGBIT(_WDSR, WDP1),\
+                               AVR_IO_REGBIT(_WDSR, WDP2) },\
+               .watchdog = {\
+                       .enable = AVR_IO_REGBIT(_WDSR, 6),\
+                       .raised = AVR_IO_REGBIT(_WDSR, 7),\
+                       .vector = _vec,\
+               },\
+       }
+
 #endif /* __AVR_WATCHDOG_H___ */