Implement eeprom dword functions

This commit is contained in:
Alex Voinea 2022-11-17 09:35:02 +01:00 committed by DRracer
parent ca943cceec
commit 771f833a44
2 changed files with 16 additions and 0 deletions

View File

@ -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);
}

View File

@ -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