Browse Source

Implement eeprom dword functions

Alex Voinea 2 years ago
parent
commit
771f833a44
2 changed files with 16 additions and 0 deletions
  1. 13 0
      Firmware/eeprom.cpp
  2. 3 0
      Firmware/eeprom.h

+ 13 - 0
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);
+}

+ 3 - 0
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