@@ -37,19 +37,24 @@ static const uint8_t flashdata[TOTAL_FLASH_SIZE] __attribute__((__aligned__(256
37
37
38
38
#include " ../shared/eeprom_api.h"
39
39
40
- size_t PersistentStore::capacity () {
41
- return MARLIN_EEPROM_SIZE;
42
- /* const uint8_t psz = NVMCTRL->SEESTAT.bit.PSZ,
40
+ size_t PersistentStore::capacity () { return MARLIN_EEPROM_SIZE - eeprom_exclude_size; }
41
+
42
+ /*
43
+ size_t PersistentStore::capacity() { return MARLIN_EEPROM_SIZE - eeprom_exclude_size; }
44
+ const uint8_t psz = NVMCTRL->SEESTAT.bit.PSZ,
43
45
sblk = NVMCTRL->SEESTAT.bit.SBLK;
44
46
45
- return (!psz && !sblk) ? 0
46
- : (psz <= 2) ? (0x200 << psz)
47
- : (sblk == 1 || psz == 3) ? 4096
48
- : (sblk == 2 || psz == 4) ? 8192
49
- : (sblk <= 4 || psz == 5) ? 16384
50
- : (sblk >= 9 && psz == 7) ? 65536
51
- : 32768;*/
47
+ return (
48
+ (!psz && !sblk) ? 0
49
+ : (psz <= 2) ? (0x200 << psz)
50
+ : (sblk == 1 || psz == 3) ? 4096
51
+ : (sblk == 2 || psz == 4) ? 8192
52
+ : (sblk <= 4 || psz == 5) ? 16384
53
+ : (sblk >= 9 && psz == 7) ? 65536
54
+ : 32768
55
+ ) - eeprom_exclude_size;
52
56
}
57
+ */
53
58
54
59
uint32_t PAGE_SIZE;
55
60
uint32_t ROW_SIZE;
@@ -99,8 +104,7 @@ bool PersistentStore::access_finish() {
99
104
volatile uint32_t *dst_addr = (volatile uint32_t *) &flashdata;
100
105
101
106
uint32_t *pointer = (uint32_t *) buffer;
102
- for (uint32_t i = 0 ; i < TOTAL_FLASH_SIZE; i+=4 ) {
103
-
107
+ for (uint32_t i = 0 ; i < TOTAL_FLASH_SIZE; i += 4 ) {
104
108
*dst_addr = (uint32_t ) *pointer;
105
109
pointer++;
106
110
dst_addr ++;
@@ -120,19 +124,19 @@ bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, ui
120
124
if (!hasWritten) {
121
125
// init temp buffer
122
126
buffer = (uint8_t *) malloc (MARLIN_EEPROM_SIZE);
123
- hasWritten= true ;
127
+ hasWritten = true ;
124
128
}
125
129
126
- memcpy (buffer+ pos, value,size);
130
+ memcpy (buffer + REAL_EEPROM_ADDR ( pos), value, size);
127
131
pos += size;
128
132
return false ;
129
133
}
130
134
131
135
bool PersistentStore::read_data (int &pos, uint8_t *value, size_t size, uint16_t *crc, const bool writing/* =true*/ ) {
132
- volatile uint8_t *dst_addr = (volatile uint8_t *) &flashdata;
133
- dst_addr += pos;
136
+ volatile uint8_t *dst_addr = (volatile uint8_t *) &flashdata;
137
+ dst_addr += REAL_EEPROM_ADDR ( pos) ;
134
138
135
- memcpy (value,(const void *) dst_addr,size);
139
+ memcpy (value, (const void *)dst_addr, size);
136
140
pos += size;
137
141
return false ;
138
142
}
0 commit comments