diff --git a/Firmware/eeprom.cpp b/Firmware/eeprom.cpp index c3eb28ca3..ae42666f7 100644 --- a/Firmware/eeprom.cpp +++ b/Firmware/eeprom.cpp @@ -190,6 +190,10 @@ void __attribute__((noinline)) eeprom_increment_word(uint16_t *__p) { eeprom_write_word(__p, eeprom_read_word(__p) + 1); } +void __attribute__((noinline)) eeprom_increment_dword(uint32_t *__p) { + eeprom_write_dword(__p, eeprom_read_dword(__p) + 1); +} + void __attribute__((noinline)) eeprom_add_byte(uint8_t *__p, uint8_t add) { eeprom_write_byte(__p, eeprom_read_byte(__p) + add); } @@ -198,6 +202,10 @@ void __attribute__((noinline)) eeprom_add_word(uint16_t *__p, uint16_t add) { eeprom_write_word(__p, eeprom_read_word(__p) + add); } +void __attribute__((noinline)) eeprom_add_dword(uint32_t *__p, uint32_t add) { + eeprom_write_dword(__p, eeprom_read_dword(__p) + add); +} + void __attribute__((noinline)) eeprom_init_default_byte(uint8_t *__p, uint8_t def) { if (eeprom_read_byte(__p) == 0xff) eeprom_write_byte(__p, def); @@ -207,3 +215,8 @@ void __attribute__((noinline)) eeprom_init_default_word(uint16_t *__p, uint16_t if (eeprom_read_word(__p) == 0xffff) eeprom_write_word(__p, def); } + +void __attribute__((noinline)) eeprom_init_default_dword(uint32_t *__p, uint32_t def) { + if (eeprom_read_dword(__p) == 0xffffffff) + eeprom_write_dword(__p, def); +} diff --git a/Firmware/eeprom.h b/Firmware/eeprom.h index c8f1d5466..043a0421d 100644 --- a/Firmware/eeprom.h +++ b/Firmware/eeprom.h @@ -615,12 +615,15 @@ void eeprom_switch_to_next_sheet(); void eeprom_increment_byte(uint8_t *__p); void eeprom_increment_word(uint16_t *__p); +void eeprom_increment_dword(uint32_t *__p); void eeprom_add_byte(uint8_t *__p, uint8_t add); void eeprom_add_word(uint16_t *__p, uint16_t add); +void eeprom_add_dword(uint32_t *__p, uint32_t add); void eeprom_init_default_byte(uint8_t *__p, uint8_t def); void eeprom_init_default_word(uint16_t *__p, uint16_t def); +void eeprom_init_default_dword(uint32_t *__p, uint32_t def); #endif #endif // EEPROM_H