Fix SAMD51 i2c EEPROM (#17815)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Giuliano Zaro 2020-05-01 01:14:49 +02:00 committed by GitHub
parent 7f5730ea3b
commit bd8436d1c5
Signed by: GitHub
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 2 deletions

View file

@ -33,9 +33,13 @@
#include "../shared/eeprom_api.h" #include "../shared/eeprom_api.h"
size_t PersistentStore::capacity() { return E2END + 1; } size_t PersistentStore::capacity() { return E2END + 1; }
bool PersistentStore::access_start() { return true; }
bool PersistentStore::access_finish() { return true; } bool PersistentStore::access_finish() { return true; }
bool PersistentStore::access_start() {
eeprom_init();
return true;
}
bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, uint16_t *crc) { bool PersistentStore::write_data(int &pos, const uint8_t *value, size_t size, uint16_t *crc) {
while (size--) { while (size--) {
const uint8_t v = *value; const uint8_t v = *value;

View file

@ -24,5 +24,6 @@
// //
// EEPROM // EEPROM
// //
void eeprom_init();
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);

View file

@ -52,7 +52,7 @@ static constexpr uint8_t eeprom_device_address = I2C_ADDRESS(EEPROM_DEVICE_ADDRE
// Public functions // Public functions
// ------------------------ // ------------------------
static void eeprom_init() { Wire.begin(); } void eeprom_init() { Wire.begin(); }
void eeprom_write_byte(uint8_t *pos, unsigned char value) { void eeprom_write_byte(uint8_t *pos, unsigned char value) {
const unsigned eeprom_address = (unsigned)pos; const unsigned eeprom_address = (unsigned)pos;