eeprom.c 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // Created by Jordy Sipkema on 04/03/16.
  3. //
  4. #include "eeprom.h"
  5. void EepromRead(int addr, void* settings, size_t size){
  6. }
  7. void EepromWrite(int addr, void* settings, size_t size){
  8. }
  9. bool EepromGetAll(TSettings *settings){
  10. NutNvMemLoad(EEPROM_BASE, settings, sizeof(*settings));
  11. if (settings->Checksum != sizeof(*settings)){
  12. // Size mismatch: There is no valid configuration present.
  13. puts("EepromGetAll(): Size mismatch");
  14. return false;
  15. }
  16. return true;
  17. }
  18. void EepromSetAll(TSettings *settings){
  19. int success = NutNvMemSave(EEPROM_BASE, settings, sizeof(*settings));
  20. if (success == 0){ puts("EepromSetAll: SettingsSetAll successful."); }
  21. else { puts("EepromSetAll: SettingsSetAll successful."); }
  22. NutDelay(100);
  23. }
  24. void EepromWriteDefaults(void){
  25. puts("EepromWriteDefaults()");
  26. // Declare TSettings:
  27. TSettings settings;
  28. settings.Checksum = sizeof(settings);
  29. settings.Cache = (const struct TCache){ 0 };
  30. settings.System = (const struct TSettingsSystem){ 0 };
  31. EepromSetAll(&settings);
  32. }
  33. //bool EepromGetSystemSettings(TSettingsSystem *SystemSettings){
  34. //
  35. //}
  36. //
  37. bool EepromGetCache(TCache *cache){
  38. TSettings *settings;
  39. if (EepromGetAll(settings) == false){
  40. return false;
  41. }
  42. *cache = settings->Cache;
  43. return true;
  44. }
  45. void EepromSetCache(TCache *cache){
  46. TSettings settings;
  47. settings.Checksum = sizeof(settings);
  48. settings.System = (const struct TSettingsSystem){ 0 };
  49. settings.Cache = *cache;
  50. EepromSetAll(&settings);
  51. }