Strip never-used eeprom functions
This commit is contained in:
parent
b335c38162
commit
a521b0edbb
@ -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);
|
|
||||||
|
@ -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
|
||||||
|
@ -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…
Reference in New Issue
Block a user