From 97fd10d8f815ac4701424a01705a99630318340e Mon Sep 17 00:00:00 2001 From: Beslan Date: Mon, 13 Dec 2021 05:11:49 +0300 Subject: [PATCH] MISRA --- eeprom.cpp | 204 ++++++++++++++++++++++++++--------------------------- 1 file changed, 101 insertions(+), 103 deletions(-) diff --git a/eeprom.cpp b/eeprom.cpp index 38855b5..0f977b3 100644 --- a/eeprom.cpp +++ b/eeprom.cpp @@ -56,29 +56,29 @@ EEPROM::EEPROM(PinName sda, PinName scl, uint8_t address, TypeEeprom type) : _i2 _errnum = EEPROM_BadAddress; } _address = _address << 1; - _page_write = 8; - _page_number = 1; + _page_write = 8U; + _page_number = 1U; break; case T24C04 : if (address > 7) { _errnum = EEPROM_BadAddress; } _address = (_address & 0xFE) << 1; - _page_write = 16; - _page_number = 2; + _page_write = 16U; + _page_number = 2U; break; case T24C08 : if (address > 7) { _errnum = EEPROM_BadAddress; } _address = (_address & 0xFC) << 1; - _page_write = 16; - _page_number = 4; + _page_write = 16U; + _page_number = 4U; break; case T24C16 : _address = 0; - _page_write = 16; - _page_number = 8; + _page_write = 16U; + _page_number = 8U; break; case T24C32 : case T24C64 : @@ -86,8 +86,8 @@ EEPROM::EEPROM(PinName sda, PinName scl, uint8_t address, TypeEeprom type) : _i2 _errnum = EEPROM_BadAddress; } _address = _address << 1; - _page_write = 32; - _page_number = 1; + _page_write = 32U; + _page_number = 1U; break; case T24C128 : case T24C256 : @@ -95,32 +95,32 @@ EEPROM::EEPROM(PinName sda, PinName scl, uint8_t address, TypeEeprom type) : _i2 _errnum = EEPROM_BadAddress; } _address = _address << 1; - _page_write = 64; - _page_number = 1; + _page_write = 64U; + _page_number = 1U; break; case T24C512 : if (address > 3) { _errnum = EEPROM_BadAddress; } _address = _address << 1; - _page_write = 128; - _page_number = 1; + _page_write = 128U; + _page_number = 1U; break; case T24C1024 : if (address > 7) { _errnum = EEPROM_BadAddress; } _address = (_address & 0xFE) << 1; - _page_write = 128; - _page_number = 2; + _page_write = 128U; + _page_number = 2U; break; case T24C1025 : if (address > 3) { _errnum = EEPROM_BadAddress; } _address = _address << 1; - _page_write = 128; - _page_number = 2; + _page_write = 128U; + _page_number = 2U; break; } @@ -160,9 +160,9 @@ void EEPROM::write(uint32_t address, int8_t data) { } // Compute page number - page = 0; + page = 0U; if (_type < T24C32) - page = (uint8_t) (address / 256); + page = (uint8_t) (address / 256U); // Device address addr = EEPROM_Address | _address | (page << 1); @@ -171,7 +171,7 @@ void EEPROM::write(uint32_t address, int8_t data) { len = 2; // Word address - cmd[0] = (uint8_t) (address - page * 256); + cmd[0] = (uint8_t) (address - page * 256U); // 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 - if (!checkAddress(address + length - 1)) { + if (!checkAddress(address + length - 1U)) { _errnum = EEPROM_OutOfRange; return; } @@ -239,22 +239,22 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) { // Compute remaining bytes remain = length - blocs * _page_write; - for (i = 0; i < blocs; i++) { + for (i = 0U; i < blocs; i++) { // Compute page number - page = 0; + page = 0U; if (_type < T24C32) - page = (uint8_t) (address / 256); + page = (uint8_t) (address / 256U); // Device address addr = EEPROM_Address | _address | (page << 1); if (_type < T24C32) { // 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 - for (j = 0; j < _page_write; j++) + for (j = 0U; j < _page_write; j++) cmd[j + 1] = (uint8_t) data[i * _page_write + j]; // Write data @@ -271,10 +271,10 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) { address += _page_write; } else { // Data on 2 pages. We must split the write // Number of bytes in current page - fpart = (page + 1) * 256 - address; + fpart = (page + 1U) * 256U - address; // 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]; // 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); // Word address - cmd[0] = (uint8_t) (address - page * 256); + cmd[0] = (uint8_t) (address - page * 256U); // Data index 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; // 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]; // 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; // 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]; // Write data @@ -352,20 +352,20 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) { if (remain) { // Compute page number - page = 0; + page = 0U; if (_type < T24C32) - page = (uint8_t) (address / 256); + page = (uint8_t) (address / 256U); // Device address addr = EEPROM_Address | _address | (page << 1); if (_type < T24C32) { // 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 - for (j = 0; j < remain; j++) + for (j = 0U; j < remain; j++) cmd[j + 1] = (uint8_t) data[blocs * _page_write + j]; // Write data for the current page @@ -379,10 +379,10 @@ void EEPROM::write(uint32_t address, const int8_t data[], uint32_t length) { ready(); } else { // Data on 2 pages. We must split the write // Number of bytes in current page - fpart = (page + 1) * 256 - address; + fpart = (page + 1) * 256U - address; // 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]; // 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); // Word address - cmd[0] = (uint8_t) (address - page * 256); + cmd[0] = (uint8_t) (address - page * 256U); // Data index 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; // 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]; // 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; // 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]; // Write data for the current page @@ -470,14 +470,14 @@ void EEPROM::write(uint32_t address, int16_t data) { return; // Check address - if (!checkAddress(address + 1)) { + if (!checkAddress(address + 1U)) { _errnum = EEPROM_OutOfRange; return; } 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; // Check address - if (!checkAddress(address + 3)) { + if (!checkAddress(address + 3U)) { _errnum = EEPROM_OutOfRange; 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; // Check address - if (!checkAddress(address + 3)) { + if (!checkAddress(address + 3U)) { _errnum = EEPROM_OutOfRange; return; } 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; // Check address - if (!checkAddress(address + size - 1)) { + if (!checkAddress(address + size - 1U)) { _errnum = EEPROM_OutOfRange; return; } @@ -597,37 +597,37 @@ void EEPROM::read(uint32_t address, int8_t &data) { } // Compute page number - page = 0; + page = 0U; if (_type < T24C32) - page = (uint8_t) (address / 256); + page = static_cast (address / 256U); // Device address addr = EEPROM_Address | _address | (page << 1); if (_type < T24C32) { - len = 1; + len = 1U; // Word address - cmd[0] = (uint8_t) (address - page * 256); + cmd[0] = static_cast (address - page * 256U); } else { - len = 2; + len = 2U; // First word address (MSB) - cmd[0] = (uint8_t) (address >> 8); + cmd[0] = static_cast (address >> 8); // Second word address (LSB) - cmd[1] = (uint8_t) address; + cmd[1] = static_cast (address); } // Write command - ack = _i2c.write((int) addr, (char *) cmd, len, true); + ack = _i2c.write(static_cast (addr), reinterpret_cast (cmd), len, true); if (ack != 0) { _errnum = EEPROM_I2cError; return; } // Read data - ack = _i2c.read((int) addr, (char *) &data, sizeof(data)); + ack = _i2c.read(static_cast(addr), reinterpret_cast(&data), sizeof(data)); if (ack != 0) { _errnum = EEPROM_I2cError; return; @@ -662,43 +662,43 @@ void EEPROM::read(uint32_t address, int8_t *data, uint32_t size) { } // Check size - if (!checkAddress(address + size - 1)) { + if (!checkAddress(address + size - 1U)) { _errnum = EEPROM_OutOfRange; return; } // Compute page number - page = 0; + page = 0U; if (_type < T24C32) - page = (uint8_t) (address / 256); + page = static_cast (address / 256U); // Device address - addr = EEPROM_Address | _address | (page << 1); + addr = EEPROM_Address | _address | (page << 1U); if (_type < T24C32) { - len = 1; + len = 1U; // Word address - cmd[0] = (uint8_t) (address - page * 256); + cmd[0] = static_cast (address - page * 256U); } else { - len = 2; + len = 2U; // First word address (MSB) - cmd[0] = (uint8_t) (address >> 8); + cmd[0] = static_cast (address >> 8); // Second word address (LSB) - cmd[1] = (uint8_t) address; + cmd[1] = static_cast (address); } // Write command - ack = _i2c.write((int) addr, (char *) cmd, len, true); + ack = _i2c.write(static_cast(addr), reinterpret_cast (cmd), len, true); if (ack != 0) { _errnum = EEPROM_I2cError; return; } // Sequential read - ack = _i2c.read((int) addr, (char *) data, static_cast(size)); + ack = _i2c.read(static_cast(addr), reinterpret_cast(data), static_cast(size)); if (ack != 0) { _errnum = EEPROM_I2cError; return; @@ -725,7 +725,7 @@ void EEPROM::read(int8_t &data) { addr = EEPROM_Address | _address; // Read data - ack = _i2c.read((int) addr, (char *) &data, sizeof(data)); + ack = _i2c.read(static_cast(addr), reinterpret_cast(&data), sizeof(data)); if (ack != 0) { _errnum = EEPROM_I2cError; return; @@ -749,12 +749,12 @@ void EEPROM::read(uint32_t address, int16_t &data) { return; // Check address - if (!checkAddress(address + 1)) { + if (!checkAddress(address + 1U)) { _errnum = EEPROM_OutOfRange; return; } - read(address, cmd, 2); + read(address, cmd, 2U); memcpy(&data, cmd, 2); @@ -776,12 +776,12 @@ void EEPROM::read(uint32_t address, int32_t &data) { return; // Check address - if (!checkAddress(address + 3)) { + if (!checkAddress(address + 3U)) { _errnum = EEPROM_OutOfRange; return; } - read(address, cmd, 4); + read(address, cmd, 4U); memcpy(&data, cmd, 4); @@ -803,12 +803,12 @@ void EEPROM::read(uint32_t address, float &data) { return; // Check address - if (!checkAddress(address + 3)) { + if (!checkAddress(address + 3U)) { _errnum = EEPROM_OutOfRange; return; } - read(address, cmd, 4); + read(address, cmd, 4U); memcpy(&data, cmd, 4); @@ -827,25 +827,24 @@ void EEPROM::read(uint32_t address, void *data, uint32_t size) { int8_t *cmd = nullptr; // Check error - if (_errnum) - return; + if (_errnum) { return; } // Check address - if (!checkAddress(address + size - 1)) { + if (!checkAddress(address + size - 1U)) { _errnum = EEPROM_OutOfRange; return; } - cmd = (int8_t *) malloc(size); + cmd = reinterpret_cast(malloc(size)); if (cmd == nullptr) { _errnum = EEPROM_MallocError; return; } - read(address, (int8_t *) cmd, size); + read(address, reinterpret_cast (cmd), size); - memcpy(data, cmd, size); + (void) memcpy(data, cmd, size); free(cmd); @@ -864,8 +863,8 @@ void EEPROM::clear() { data = 0; - for (i = 0; i < _size / 4; i++) { - write((uint32_t) (i * 4), data); + for (i = 0U; i < _size / 4U; i++) { + write(static_cast (i * 4U), data); } } @@ -882,17 +881,16 @@ void EEPROM::ready() { uint8_t cmd[2]; // Check error - if (_errnum) - return; + if (_errnum) { return; } // Device address addr = EEPROM_Address | _address; - cmd[0] = 0; + cmd[0] = 0U; // Wait end of write do { - ack = _i2c.write((int) addr, (char *) cmd, 0); + ack = _i2c.write(static_cast(addr), reinterpret_cast (cmd), 0); ThisThread::sleep_for(1ms); } while (ack != 0); @@ -917,44 +915,44 @@ uint32_t EEPROM::getSize() { * @return name (const char*) */ const char *EEPROM::getName() { - uint8_t i = 0; + uint8_t i = 0U; switch (_type) { case T24C01 : - i = 0; + i = 0U; break; case T24C02 : - i = 1; + i = 1U; break; case T24C04 : - i = 2; + i = 2U; break; case T24C08 : - i = 3; + i = 3U; break; case T24C16 : - i = 4; + i = 4U; break; case T24C32 : - i = 5; + i = 5U; break; case T24C64 : - i = 6; + i = 6U; break; case T24C128 : - i = 7; + i = 7U; break; case T24C256 : - i = 8; + i = 8U; break; case T24C512 : - i = 9; + i = 9U; break; case T24C1024 : - i = 10; + i = 10U; break; case T24C1025 : - i = 11; + i = 11U; break; }