Browse Source

Strip never-used eeprom functions

vanilla_fb_2.0.x
Scott Lahteine 5 years ago
parent
commit
a521b0edbb
  1. 2
      Marlin/src/HAL/shared/eeprom_if.h
  2. 46
      Marlin/src/HAL/shared/eeprom_if_i2c.cpp
  3. 40
      Marlin/src/HAL/shared/eeprom_if_spi.cpp

2
Marlin/src/HAL/shared/eeprom_if.h

@ -26,5 +26,3 @@
// //
void eeprom_write_byte(uint8_t *pos, unsigned char value); void eeprom_write_byte(uint8_t *pos, unsigned char value);
uint8_t eeprom_read_byte(uint8_t *pos); uint8_t eeprom_read_byte(uint8_t *pos);
void eeprom_read_block(void *__dst, const void *__src, size_t __n);
void eeprom_update_block(const void *__src, void *__dst, size_t __n);

46
Marlin/src/HAL/shared/eeprom_if_i2c.cpp

@ -68,37 +68,6 @@ void eeprom_write_byte(uint8_t *pos, unsigned char value) {
delay(EEPROM_WRITE_DELAY); delay(EEPROM_WRITE_DELAY);
} }
// WARNING: address is a page address, 6-bit end will wrap around
// also, data can be maximum of about 30 bytes, because the Wire library has a buffer of 32 bytes
void eeprom_update_block(const void *pos, void *__dst, size_t n) {
const unsigned eeprom_address = (unsigned)__dst;
eeprom_init();
Wire.beginTransmission(eeprom_device_address);
Wire.write(int(eeprom_address >> 8)); // MSB
Wire.write(int(eeprom_address & 0xFF)); // LSB
Wire.endTransmission();
uint8_t *ptr = (uint8_t*)pos;
uint8_t flag = 0;
Wire.requestFrom(eeprom_device_address, (byte)n);
for (byte c = 0; c < n && Wire.available(); c++)
flag |= Wire.read() ^ ptr[c];
if (flag) {
Wire.beginTransmission(eeprom_device_address);
Wire.write(int(eeprom_address >> 8)); // MSB
Wire.write(int(eeprom_address & 0xFF)); // LSB
Wire.write((uint8_t*)pos, n);
Wire.endTransmission();
// wait for write cycle to complete
// this could be done more efficiently with "acknowledge polling"
delay(EEPROM_WRITE_DELAY);
}
}
uint8_t eeprom_read_byte(uint8_t *pos) { uint8_t eeprom_read_byte(uint8_t *pos) {
const unsigned eeprom_address = (unsigned)pos; const unsigned eeprom_address = (unsigned)pos;
@ -110,19 +79,4 @@ uint8_t eeprom_read_byte(uint8_t *pos) {
return Wire.available() ? Wire.read() : 0xFF; return Wire.available() ? Wire.read() : 0xFF;
} }
// Don't read more than 30..32 bytes at a time!
void eeprom_read_block(void* pos, const void *__dst, size_t n) {
const unsigned eeprom_address = (unsigned)__dst;
eeprom_init();
Wire.beginTransmission(eeprom_device_address);
Wire.write(int(eeprom_address >> 8)); // MSB
Wire.write(int(eeprom_address & 0xFF)); // LSB
Wire.endTransmission();
Wire.requestFrom(eeprom_device_address, (byte)n);
for (byte c = 0; c < n; c++ )
if (Wire.available()) *((uint8_t*)pos + c) = Wire.read();
}
#endif // USE_SHARED_EEPROM && I2C_EEPROM #endif // USE_SHARED_EEPROM && I2C_EEPROM

40
Marlin/src/HAL/shared/eeprom_if_spi.cpp

@ -58,24 +58,6 @@ uint8_t eeprom_read_byte(uint8_t* pos) {
return v; return v;
} }
void eeprom_read_block(void* dest, const void* eeprom_address, size_t n) {
uint8_t eeprom_temp[3];
// set read location
// begin transmission from device
eeprom_temp[0] = CMD_READ;
eeprom_temp[1] = ((unsigned)eeprom_address>>8) & 0xFF; // addr High
eeprom_temp[2] = (unsigned)eeprom_address& 0xFF; // addr Low
WRITE(SPI_EEPROM1_CS, HIGH);
WRITE(SPI_EEPROM1_CS, LOW);
spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
uint8_t *p_dest = (uint8_t *)dest;
while (n--)
*p_dest++ = spiRec(SPI_CHAN_EEPROM1);
WRITE(SPI_EEPROM1_CS, HIGH);
}
void eeprom_write_byte(uint8_t* pos, uint8_t value) { void eeprom_write_byte(uint8_t* pos, uint8_t value) {
uint8_t eeprom_temp[3]; uint8_t eeprom_temp[3];
@ -98,26 +80,4 @@ void eeprom_write_byte(uint8_t* pos, uint8_t value) {
delay(EEPROM_WRITE_DELAY); // wait for page write to complete delay(EEPROM_WRITE_DELAY); // wait for page write to complete
} }
void eeprom_update_block(const void* src, void* eeprom_address, size_t n) {
uint8_t eeprom_temp[3];
/*write enable*/
eeprom_temp[0] = CMD_WREN;
WRITE(SPI_EEPROM1_CS, LOW);
spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 1);
WRITE(SPI_EEPROM1_CS, HIGH);
delay(1);
/*write addr*/
eeprom_temp[0] = CMD_WRITE;
eeprom_temp[1] = ((unsigned)eeprom_address>>8) & 0xFF; //addr High
eeprom_temp[2] = (unsigned)eeprom_address & 0xFF; //addr Low
WRITE(SPI_EEPROM1_CS, LOW);
spiSend(SPI_CHAN_EEPROM1, eeprom_temp, 3);
spiSend(SPI_CHAN_EEPROM1, (const uint8_t*)src, n);
WRITE(SPI_EEPROM1_CS, HIGH);
delay(EEPROM_WRITE_DELAY); // wait for page write to complete
}
#endif // USE_SHARED_EEPROM && I2C_EEPROM #endif // USE_SHARED_EEPROM && I2C_EEPROM

Loading…
Cancel
Save