OSDN Git Service

[WIP][v2.0] Loading from Srecord.
[openi2cradio/OpenI2CRadio.git] / eepromutil.c
index 833a427..dafb66e 100644 (file)
@@ -158,6 +158,25 @@ void save_frequencies(void)
     return;
 }
 
+char save_frequencies_page(unsigned char page)
+{
+    unsigned char c;
+    unsigned int addr = (page <<7) + EEPROM_FREQSET_ADDR;
+    __freqset_t *p = &freqset_temp;
+    unsigned char i;
+    unsigned int sum;
+
+    if(page > USER_MEMORY_BANKS) return -3; // Address Error
+    // Pass 0 Calc checksum
+    if(p->magic != EEPROM_FREQSET_MAGIC) return -1; // Data error
+    sum = calcsum_frequencies(p, 0xa5a5);
+    if(p->checksum != sum) return -2; // Sum error
+    // Pass 1 write to rom.
+    c = i2c_eeprom_burstwrite(I2CEEPROM_ADDR, addr, (unsigned char *)p, sizeof(__freqset_t));
+    return 0;
+}
+
+
 void format_frequencies(unsigned int page)
 {
     unsigned char i;