MISRA
This commit is contained in:
204
eeprom.cpp
204
eeprom.cpp
@@ -56,29 +56,29 @@ EEPROM::EEPROM(PinName sda, PinName scl, uint8_t address, TypeEeprom type) : _i2
|
|||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = _address << 1;
|
_address = _address << 1;
|
||||||
_page_write = 8;
|
_page_write = 8U;
|
||||||
_page_number = 1;
|
_page_number = 1U;
|
||||||
break;
|
break;
|
||||||
case T24C04 :
|
case T24C04 :
|
||||||
if (address > 7) {
|
if (address > 7) {
|
||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = (_address & 0xFE) << 1;
|
_address = (_address & 0xFE) << 1;
|
||||||
_page_write = 16;
|
_page_write = 16U;
|
||||||
_page_number = 2;
|
_page_number = 2U;
|
||||||
break;
|
break;
|
||||||
case T24C08 :
|
case T24C08 :
|
||||||
if (address > 7) {
|
if (address > 7) {
|
||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = (_address & 0xFC) << 1;
|
_address = (_address & 0xFC) << 1;
|
||||||
_page_write = 16;
|
_page_write = 16U;
|
||||||
_page_number = 4;
|
_page_number = 4U;
|
||||||
break;
|
break;
|
||||||
case T24C16 :
|
case T24C16 :
|
||||||
_address = 0;
|
_address = 0;
|
||||||
_page_write = 16;
|
_page_write = 16U;
|
||||||
_page_number = 8;
|
_page_number = 8U;
|
||||||
break;
|
break;
|
||||||
case T24C32 :
|
case T24C32 :
|
||||||
case T24C64 :
|
case T24C64 :
|
||||||
@@ -86,8 +86,8 @@ EEPROM::EEPROM(PinName sda, PinName scl, uint8_t address, TypeEeprom type) : _i2
|
|||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = _address << 1;
|
_address = _address << 1;
|
||||||
_page_write = 32;
|
_page_write = 32U;
|
||||||
_page_number = 1;
|
_page_number = 1U;
|
||||||
break;
|
break;
|
||||||
case T24C128 :
|
case T24C128 :
|
||||||
case T24C256 :
|
case T24C256 :
|
||||||
@@ -95,32 +95,32 @@ EEPROM::EEPROM(PinName sda, PinName scl, uint8_t address, TypeEeprom type) : _i2
|
|||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = _address << 1;
|
_address = _address << 1;
|
||||||
_page_write = 64;
|
_page_write = 64U;
|
||||||
_page_number = 1;
|
_page_number = 1U;
|
||||||
break;
|
break;
|
||||||
case T24C512 :
|
case T24C512 :
|
||||||
if (address > 3) {
|
if (address > 3) {
|
||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = _address << 1;
|
_address = _address << 1;
|
||||||
_page_write = 128;
|
_page_write = 128U;
|
||||||
_page_number = 1;
|
_page_number = 1U;
|
||||||
break;
|
break;
|
||||||
case T24C1024 :
|
case T24C1024 :
|
||||||
if (address > 7) {
|
if (address > 7) {
|
||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = (_address & 0xFE) << 1;
|
_address = (_address & 0xFE) << 1;
|
||||||
_page_write = 128;
|
_page_write = 128U;
|
||||||
_page_number = 2;
|
_page_number = 2U;
|
||||||
break;
|
break;
|
||||||
case T24C1025 :
|
case T24C1025 :
|
||||||
if (address > 3) {
|
if (address > 3) {
|
||||||
_errnum = EEPROM_BadAddress;
|
_errnum = EEPROM_BadAddress;
|
||||||
}
|
}
|
||||||
_address = _address << 1;
|
_address = _address << 1;
|
||||||
_page_write = 128;
|
_page_write = 128U;
|
||||||
_page_number = 2;
|
_page_number = 2U;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,9 +160,9 @@ void EEPROM::write(uint32_t address, int8_t data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Compute page number
|
// Compute page number
|
||||||
page = 0;
|
page = 0U;
|
||||||
if (_type < T24C32)
|
if (_type < T24C32)
|
||||||
page = (uint8_t) (address / 256);
|
page = (uint8_t) (address / 256U);
|
||||||
|
|
||||||
// Device address
|
// Device address
|
||||||
addr = EEPROM_Address | _address | (page << 1);
|
addr = EEPROM_Address | _address | (page << 1);
|
||||||
@@ -171,7 +171,7 @@ void EEPROM::write(uint32_t address, int8_t data) {
|
|||||||
len = 2;
|
len = 2;
|
||||||
|
|
||||||
// Word address
|
// Word address
|
||||||
cmd[0] = (uint8_t) (address - page * 256);
|
cmd[0] = (uint8_t) (address - page * 256U);
|
||||||
|
|
||||||
// Data
|
// Data
|
||||||
cmd[1] = (uint8_t) data;
|
cmd[1] = (uint8_t) data;
|
||||||
@@ -228,7 +228,7 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check length
|
// Check length
|
||||||
if (!checkAddress(address + length - 1)) {
|
if (!checkAddress(address + length - 1U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -239,22 +239,22 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
// Compute remaining bytes
|
// Compute remaining bytes
|
||||||
remain = length - blocs * _page_write;
|
remain = length - blocs * _page_write;
|
||||||
|
|
||||||
for (i = 0; i < blocs; i++) {
|
for (i = 0U; i < blocs; i++) {
|
||||||
// Compute page number
|
// Compute page number
|
||||||
page = 0;
|
page = 0U;
|
||||||
if (_type < T24C32)
|
if (_type < T24C32)
|
||||||
page = (uint8_t) (address / 256);
|
page = (uint8_t) (address / 256U);
|
||||||
|
|
||||||
// Device address
|
// Device address
|
||||||
addr = EEPROM_Address | _address | (page << 1);
|
addr = EEPROM_Address | _address | (page << 1);
|
||||||
|
|
||||||
if (_type < T24C32) {
|
if (_type < T24C32) {
|
||||||
// Word address
|
// Word address
|
||||||
cmd[0] = (uint8_t) (address - page * 256);
|
cmd[0] = (uint8_t) (address - page * 256U);
|
||||||
|
|
||||||
if ((uint8_t) ((address + _page_write) / 256) == page) { // Data fit in the same page
|
if ((uint8_t) ((address + _page_write) / 256U) == page) { // Data fit in the same page
|
||||||
// Add data
|
// Add data
|
||||||
for (j = 0; j < _page_write; j++)
|
for (j = 0U; j < _page_write; j++)
|
||||||
cmd[j + 1] = (uint8_t) data[i * _page_write + j];
|
cmd[j + 1] = (uint8_t) data[i * _page_write + j];
|
||||||
|
|
||||||
// Write data
|
// Write data
|
||||||
@@ -271,10 +271,10 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
address += _page_write;
|
address += _page_write;
|
||||||
} else { // Data on 2 pages. We must split the write
|
} else { // Data on 2 pages. We must split the write
|
||||||
// Number of bytes in current page
|
// Number of bytes in current page
|
||||||
fpart = (page + 1) * 256 - address;
|
fpart = (page + 1U) * 256U - address;
|
||||||
|
|
||||||
// Add data for current page
|
// Add data for current page
|
||||||
for (j = 0; j < fpart; j++)
|
for (j = 0U; j < fpart; j++)
|
||||||
cmd[j + 1] = (uint8_t) data[i * _page_write + j];
|
cmd[j + 1] = (uint8_t) data[i * _page_write + j];
|
||||||
|
|
||||||
// Write data for current page
|
// Write data for current page
|
||||||
@@ -298,7 +298,7 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
addr = EEPROM_Address | _address | (page << 1);
|
addr = EEPROM_Address | _address | (page << 1);
|
||||||
|
|
||||||
// Word address
|
// Word address
|
||||||
cmd[0] = (uint8_t) (address - page * 256);
|
cmd[0] = (uint8_t) (address - page * 256U);
|
||||||
|
|
||||||
// Data index
|
// Data index
|
||||||
ind = i * _page_write + fpart;
|
ind = i * _page_write + fpart;
|
||||||
@@ -307,7 +307,7 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
lpart = _page_write - fpart;
|
lpart = _page_write - fpart;
|
||||||
|
|
||||||
// Add data for next page
|
// Add data for next page
|
||||||
for (j = 0; j < lpart; j++)
|
for (j = 0U; j < lpart; j++)
|
||||||
cmd[j + 1] = (uint8_t) data[ind + j];
|
cmd[j + 1] = (uint8_t) data[ind + j];
|
||||||
|
|
||||||
// Write data for next page
|
// Write data for next page
|
||||||
@@ -332,7 +332,7 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
cmd[1] = (uint8_t) address;
|
cmd[1] = (uint8_t) address;
|
||||||
|
|
||||||
// Add data
|
// Add data
|
||||||
for (j = 0; j < _page_write; j++)
|
for (j = 0U; j < _page_write; j++)
|
||||||
cmd[j + 2] = (uint8_t) data[i * _page_write + j];
|
cmd[j + 2] = (uint8_t) data[i * _page_write + j];
|
||||||
|
|
||||||
// Write data
|
// Write data
|
||||||
@@ -352,20 +352,20 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
|
|
||||||
if (remain) {
|
if (remain) {
|
||||||
// Compute page number
|
// Compute page number
|
||||||
page = 0;
|
page = 0U;
|
||||||
if (_type < T24C32)
|
if (_type < T24C32)
|
||||||
page = (uint8_t) (address / 256);
|
page = (uint8_t) (address / 256U);
|
||||||
|
|
||||||
// Device address
|
// Device address
|
||||||
addr = EEPROM_Address | _address | (page << 1);
|
addr = EEPROM_Address | _address | (page << 1);
|
||||||
|
|
||||||
if (_type < T24C32) {
|
if (_type < T24C32) {
|
||||||
// Word address
|
// Word address
|
||||||
cmd[0] = (uint8_t) (address - page * 256);
|
cmd[0] = (uint8_t) (address - page * 256U);
|
||||||
|
|
||||||
if ((uint8_t) ((address + remain) / 256) == page) { // Data fit in the same page
|
if ((uint8_t) ((address + remain) / 256U) == page) { // Data fit in the same page
|
||||||
// Add data for the current page
|
// Add data for the current page
|
||||||
for (j = 0; j < remain; j++)
|
for (j = 0U; j < remain; j++)
|
||||||
cmd[j + 1] = (uint8_t) data[blocs * _page_write + j];
|
cmd[j + 1] = (uint8_t) data[blocs * _page_write + j];
|
||||||
|
|
||||||
// Write data for the current page
|
// Write data for the current page
|
||||||
@@ -379,10 +379,10 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
ready();
|
ready();
|
||||||
} else { // Data on 2 pages. We must split the write
|
} else { // Data on 2 pages. We must split the write
|
||||||
// Number of bytes in current page
|
// Number of bytes in current page
|
||||||
fpart = (page + 1) * 256 - address;
|
fpart = (page + 1) * 256U - address;
|
||||||
|
|
||||||
// Add data for current page
|
// Add data for current page
|
||||||
for (j = 0; j < fpart; j++)
|
for (j = 0U; j < fpart; j++)
|
||||||
cmd[j + 1] = (uint8_t) data[blocs * _page_write + j];
|
cmd[j + 1] = (uint8_t) data[blocs * _page_write + j];
|
||||||
|
|
||||||
// Write data for current page
|
// Write data for current page
|
||||||
@@ -406,7 +406,7 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
addr = EEPROM_Address | _address | (page << 1);
|
addr = EEPROM_Address | _address | (page << 1);
|
||||||
|
|
||||||
// Word address
|
// Word address
|
||||||
cmd[0] = (uint8_t) (address - page * 256);
|
cmd[0] = (uint8_t) (address - page * 256U);
|
||||||
|
|
||||||
// Data index
|
// Data index
|
||||||
ind = blocs * _page_write + fpart;
|
ind = blocs * _page_write + fpart;
|
||||||
@@ -415,7 +415,7 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
lpart = remain - fpart;
|
lpart = remain - fpart;
|
||||||
|
|
||||||
// Add data for next page
|
// Add data for next page
|
||||||
for (j = 0; j < lpart; j++)
|
for (j = 0U; j < lpart; j++)
|
||||||
cmd[j + 1] = (uint8_t) data[ind + j];
|
cmd[j + 1] = (uint8_t) data[ind + j];
|
||||||
|
|
||||||
// Write data for next page
|
// Write data for next page
|
||||||
@@ -437,7 +437,7 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) {
|
|||||||
cmd[1] = (uint8_t) address;
|
cmd[1] = (uint8_t) address;
|
||||||
|
|
||||||
// Add data for the current page
|
// Add data for the current page
|
||||||
for (j = 0; j < remain; j++)
|
for (j = 0U; j < remain; j++)
|
||||||
cmd[j + 2] = (uint8_t) data[blocs * _page_write + j];
|
cmd[j + 2] = (uint8_t) data[blocs * _page_write + j];
|
||||||
|
|
||||||
// Write data for the current page
|
// Write data for the current page
|
||||||
@@ -470,14 +470,14 @@ void EEPROM::write(uint32_t address, int16_t data) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + 1)) {
|
if (!checkAddress(address + 1U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(cmd, &data, 2);
|
memcpy(cmd, &data, 2);
|
||||||
|
|
||||||
write(address, cmd, 2);
|
write(address, cmd, 2U);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -497,14 +497,14 @@ void EEPROM::write(uint32_t address, int32_t data) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + 3)) {
|
if (!checkAddress(address + 3U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(cmd, &data, 4);
|
memcpy(cmd, &data, 4U);
|
||||||
|
|
||||||
write(address, cmd, 4);
|
write(address, cmd, 4U);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -524,14 +524,14 @@ void EEPROM::write(uint32_t address, float data) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + 3)) {
|
if (!checkAddress(address + 3U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(cmd, &data, 4);
|
memcpy(cmd, &data, 4);
|
||||||
|
|
||||||
write(address, cmd, 4);
|
write(address, cmd, 4U);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -552,7 +552,7 @@ void EEPROM::write(uint32_t address, void *data, uint32_t size) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + size - 1)) {
|
if (!checkAddress(address + size - 1U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -597,37 +597,37 @@ void EEPROM::read(uint32_t address, int8_t &data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Compute page number
|
// Compute page number
|
||||||
page = 0;
|
page = 0U;
|
||||||
if (_type < T24C32)
|
if (_type < T24C32)
|
||||||
page = (uint8_t) (address / 256);
|
page = static_cast<uint8_t> (address / 256U);
|
||||||
|
|
||||||
// Device address
|
// Device address
|
||||||
addr = EEPROM_Address | _address | (page << 1);
|
addr = EEPROM_Address | _address | (page << 1);
|
||||||
|
|
||||||
if (_type < T24C32) {
|
if (_type < T24C32) {
|
||||||
len = 1;
|
len = 1U;
|
||||||
|
|
||||||
// Word address
|
// Word address
|
||||||
cmd[0] = (uint8_t) (address - page * 256);
|
cmd[0] = static_cast<uint8_t> (address - page * 256U);
|
||||||
} else {
|
} else {
|
||||||
len = 2;
|
len = 2U;
|
||||||
|
|
||||||
// First word address (MSB)
|
// First word address (MSB)
|
||||||
cmd[0] = (uint8_t) (address >> 8);
|
cmd[0] = static_cast<uint8_t> (address >> 8);
|
||||||
|
|
||||||
// Second word address (LSB)
|
// Second word address (LSB)
|
||||||
cmd[1] = (uint8_t) address;
|
cmd[1] = static_cast<uint8_t> (address);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write command
|
// Write command
|
||||||
ack = _i2c.write((int) addr, (char *) cmd, len, true);
|
ack = _i2c.write(static_cast<int> (addr), reinterpret_cast<char *> (cmd), len, true);
|
||||||
if (ack != 0) {
|
if (ack != 0) {
|
||||||
_errnum = EEPROM_I2cError;
|
_errnum = EEPROM_I2cError;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read data
|
// Read data
|
||||||
ack = _i2c.read((int) addr, (char *) &data, sizeof(data));
|
ack = _i2c.read(static_cast<int>(addr), reinterpret_cast<char *>(&data), sizeof(data));
|
||||||
if (ack != 0) {
|
if (ack != 0) {
|
||||||
_errnum = EEPROM_I2cError;
|
_errnum = EEPROM_I2cError;
|
||||||
return;
|
return;
|
||||||
@@ -662,43 +662,43 @@ void EEPROM::read(uint32_t address, int8_t *data, uint32_t size) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check size
|
// Check size
|
||||||
if (!checkAddress(address + size - 1)) {
|
if (!checkAddress(address + size - 1U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute page number
|
// Compute page number
|
||||||
page = 0;
|
page = 0U;
|
||||||
if (_type < T24C32)
|
if (_type < T24C32)
|
||||||
page = (uint8_t) (address / 256);
|
page = static_cast<uint8_t> (address / 256U);
|
||||||
|
|
||||||
// Device address
|
// Device address
|
||||||
addr = EEPROM_Address | _address | (page << 1);
|
addr = EEPROM_Address | _address | (page << 1U);
|
||||||
|
|
||||||
if (_type < T24C32) {
|
if (_type < T24C32) {
|
||||||
len = 1;
|
len = 1U;
|
||||||
|
|
||||||
// Word address
|
// Word address
|
||||||
cmd[0] = (uint8_t) (address - page * 256);
|
cmd[0] = static_cast<uint8_t> (address - page * 256U);
|
||||||
} else {
|
} else {
|
||||||
len = 2;
|
len = 2U;
|
||||||
|
|
||||||
// First word address (MSB)
|
// First word address (MSB)
|
||||||
cmd[0] = (uint8_t) (address >> 8);
|
cmd[0] = static_cast<uint8_t> (address >> 8);
|
||||||
|
|
||||||
// Second word address (LSB)
|
// Second word address (LSB)
|
||||||
cmd[1] = (uint8_t) address;
|
cmd[1] = static_cast<uint8_t> (address);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write command
|
// Write command
|
||||||
ack = _i2c.write((int) addr, (char *) cmd, len, true);
|
ack = _i2c.write(static_cast<int>(addr), reinterpret_cast<char *> (cmd), len, true);
|
||||||
if (ack != 0) {
|
if (ack != 0) {
|
||||||
_errnum = EEPROM_I2cError;
|
_errnum = EEPROM_I2cError;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sequential read
|
// Sequential read
|
||||||
ack = _i2c.read((int) addr, (char *) data, static_cast<int>(size));
|
ack = _i2c.read(static_cast<int>(addr), reinterpret_cast<char *>(data), static_cast<int>(size));
|
||||||
if (ack != 0) {
|
if (ack != 0) {
|
||||||
_errnum = EEPROM_I2cError;
|
_errnum = EEPROM_I2cError;
|
||||||
return;
|
return;
|
||||||
@@ -725,7 +725,7 @@ void EEPROM::read(int8_t &data) {
|
|||||||
addr = EEPROM_Address | _address;
|
addr = EEPROM_Address | _address;
|
||||||
|
|
||||||
// Read data
|
// Read data
|
||||||
ack = _i2c.read((int) addr, (char *) &data, sizeof(data));
|
ack = _i2c.read(static_cast<int>(addr), reinterpret_cast<char *>(&data), sizeof(data));
|
||||||
if (ack != 0) {
|
if (ack != 0) {
|
||||||
_errnum = EEPROM_I2cError;
|
_errnum = EEPROM_I2cError;
|
||||||
return;
|
return;
|
||||||
@@ -749,12 +749,12 @@ void EEPROM::read(uint32_t address, int16_t &data) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + 1)) {
|
if (!checkAddress(address + 1U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
read(address, cmd, 2);
|
read(address, cmd, 2U);
|
||||||
|
|
||||||
memcpy(&data, cmd, 2);
|
memcpy(&data, cmd, 2);
|
||||||
|
|
||||||
@@ -776,12 +776,12 @@ void EEPROM::read(uint32_t address, int32_t &data) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + 3)) {
|
if (!checkAddress(address + 3U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
read(address, cmd, 4);
|
read(address, cmd, 4U);
|
||||||
|
|
||||||
memcpy(&data, cmd, 4);
|
memcpy(&data, cmd, 4);
|
||||||
|
|
||||||
@@ -803,12 +803,12 @@ void EEPROM::read(uint32_t address, float &data) {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + 3)) {
|
if (!checkAddress(address + 3U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
read(address, cmd, 4);
|
read(address, cmd, 4U);
|
||||||
|
|
||||||
memcpy(&data, cmd, 4);
|
memcpy(&data, cmd, 4);
|
||||||
|
|
||||||
@@ -827,25 +827,24 @@ void EEPROM::read(uint32_t address, void *data, uint32_t size) {
|
|||||||
int8_t *cmd = nullptr;
|
int8_t *cmd = nullptr;
|
||||||
|
|
||||||
// Check error
|
// Check error
|
||||||
if (_errnum)
|
if (_errnum) { return; }
|
||||||
return;
|
|
||||||
|
|
||||||
// Check address
|
// Check address
|
||||||
if (!checkAddress(address + size - 1)) {
|
if (!checkAddress(address + size - 1U)) {
|
||||||
_errnum = EEPROM_OutOfRange;
|
_errnum = EEPROM_OutOfRange;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd = (int8_t *) malloc(size);
|
cmd = reinterpret_cast<int8_t *>(malloc(size));
|
||||||
|
|
||||||
if (cmd == nullptr) {
|
if (cmd == nullptr) {
|
||||||
_errnum = EEPROM_MallocError;
|
_errnum = EEPROM_MallocError;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
read(address, (int8_t *) cmd, size);
|
read(address, reinterpret_cast<int8_t *> (cmd), size);
|
||||||
|
|
||||||
memcpy(data, cmd, size);
|
(void) memcpy(data, cmd, size);
|
||||||
|
|
||||||
free(cmd);
|
free(cmd);
|
||||||
|
|
||||||
@@ -864,8 +863,8 @@ void EEPROM::clear() {
|
|||||||
|
|
||||||
data = 0;
|
data = 0;
|
||||||
|
|
||||||
for (i = 0; i < _size / 4; i++) {
|
for (i = 0U; i < _size / 4U; i++) {
|
||||||
write((uint32_t) (i * 4), data);
|
write(static_cast<uint32_t> (i * 4U), data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -882,17 +881,16 @@ void EEPROM::ready() {
|
|||||||
uint8_t cmd[2];
|
uint8_t cmd[2];
|
||||||
|
|
||||||
// Check error
|
// Check error
|
||||||
if (_errnum)
|
if (_errnum) { return; }
|
||||||
return;
|
|
||||||
|
|
||||||
// Device address
|
// Device address
|
||||||
addr = EEPROM_Address | _address;
|
addr = EEPROM_Address | _address;
|
||||||
|
|
||||||
cmd[0] = 0;
|
cmd[0] = 0U;
|
||||||
|
|
||||||
// Wait end of write
|
// Wait end of write
|
||||||
do {
|
do {
|
||||||
ack = _i2c.write((int) addr, (char *) cmd, 0);
|
ack = _i2c.write(static_cast<int>(addr), reinterpret_cast<char *> (cmd), 0);
|
||||||
ThisThread::sleep_for(1ms);
|
ThisThread::sleep_for(1ms);
|
||||||
} while (ack != 0);
|
} while (ack != 0);
|
||||||
|
|
||||||
@@ -917,44 +915,44 @@ uint32_t EEPROM::getSize() {
|
|||||||
* @return name (const char*)
|
* @return name (const char*)
|
||||||
*/
|
*/
|
||||||
const char *EEPROM::getName() {
|
const char *EEPROM::getName() {
|
||||||
uint8_t i = 0;
|
uint8_t i = 0U;
|
||||||
|
|
||||||
switch (_type) {
|
switch (_type) {
|
||||||
case T24C01 :
|
case T24C01 :
|
||||||
i = 0;
|
i = 0U;
|
||||||
break;
|
break;
|
||||||
case T24C02 :
|
case T24C02 :
|
||||||
i = 1;
|
i = 1U;
|
||||||
break;
|
break;
|
||||||
case T24C04 :
|
case T24C04 :
|
||||||
i = 2;
|
i = 2U;
|
||||||
break;
|
break;
|
||||||
case T24C08 :
|
case T24C08 :
|
||||||
i = 3;
|
i = 3U;
|
||||||
break;
|
break;
|
||||||
case T24C16 :
|
case T24C16 :
|
||||||
i = 4;
|
i = 4U;
|
||||||
break;
|
break;
|
||||||
case T24C32 :
|
case T24C32 :
|
||||||
i = 5;
|
i = 5U;
|
||||||
break;
|
break;
|
||||||
case T24C64 :
|
case T24C64 :
|
||||||
i = 6;
|
i = 6U;
|
||||||
break;
|
break;
|
||||||
case T24C128 :
|
case T24C128 :
|
||||||
i = 7;
|
i = 7U;
|
||||||
break;
|
break;
|
||||||
case T24C256 :
|
case T24C256 :
|
||||||
i = 8;
|
i = 8U;
|
||||||
break;
|
break;
|
||||||
case T24C512 :
|
case T24C512 :
|
||||||
i = 9;
|
i = 9U;
|
||||||
break;
|
break;
|
||||||
case T24C1024 :
|
case T24C1024 :
|
||||||
i = 10;
|
i = 10U;
|
||||||
break;
|
break;
|
||||||
case T24C1025 :
|
case T24C1025 :
|
||||||
i = 11;
|
i = 11U;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user