Fix the previously introduced EEPROM read bug by making addressBuffer static. Rename EEPROM_ADDRESS_LENGTH to EEPROM_ADDRESS_SIZE.

This commit is contained in:
László Monda
2017-11-18 03:18:37 +01:00
parent a7ba0add18
commit 086ab239b4
2 changed files with 6 additions and 6 deletions

View File

@@ -45,8 +45,8 @@ static status_t writePage(void)
static uint8_t buffer[EEPROM_BUFFER_SIZE];
SetBufferUint16Be(buffer, 0, eepromStartAddress + sourceOffset);
writeLength = MIN(sourceLength - sourceOffset, EEPROM_PAGE_SIZE);
memcpy(buffer+EEPROM_ADDRESS_LENGTH, sourceBuffer+sourceOffset, writeLength);
status_t status = i2cAsyncWrite(buffer, writeLength+EEPROM_ADDRESS_LENGTH);
memcpy(buffer+EEPROM_ADDRESS_SIZE, sourceBuffer+sourceOffset, writeLength);
status_t status = i2cAsyncWrite(buffer, writeLength+EEPROM_ADDRESS_SIZE);
return status;
}
@@ -110,9 +110,9 @@ status_t EEPROM_LaunchTransfer(eeprom_operation_t operation, config_buffer_id_t
switch (CurrentEepromOperation) {
case EepromOperation_Read:
isReadSent = false;
uint8_t addressBuffer[EEPROM_ADDRESS_LENGTH];
static uint8_t addressBuffer[EEPROM_ADDRESS_SIZE];
SetBufferUint16Be(addressBuffer, 0, eepromStartAddress);
LastEepromTransferStatus = i2cAsyncWrite(addressBuffer, EEPROM_ADDRESS_LENGTH);
LastEepromTransferStatus = i2cAsyncWrite(addressBuffer, EEPROM_ADDRESS_SIZE);
break;
case EepromOperation_Write:
sourceBuffer = ConfigBufferIdToConfigBuffer(CurrentConfigBufferId)->buffer;

View File

@@ -11,9 +11,9 @@
#define HARDWARE_CONFIG_SIZE 64
#define USER_CONFIG_SIZE (EEPROM_SIZE - HARDWARE_CONFIG_SIZE)
#define EEPROM_ADDRESS_LENGTH 2
#define EEPROM_ADDRESS_SIZE 2
#define EEPROM_PAGE_SIZE 64
#define EEPROM_BUFFER_SIZE (EEPROM_ADDRESS_LENGTH + EEPROM_PAGE_SIZE)
#define EEPROM_BUFFER_SIZE (EEPROM_ADDRESS_SIZE + EEPROM_PAGE_SIZE)
// Typedefs: