Mercurial > public > ostc4
changeset 1051:4b6afe5551e1 GasConsumption tip
Refactors CalcFletcher32 in OtherSources/firmwareEraseProgram.c to iterate over 16-bit words via a pointer instead of an index-based loop. Removes unused variables and returns the computed 32-bit Fletcher checksum directly. (mikeller)
| author | heinrichsweikamp |
|---|---|
| date | Thu, 20 Nov 2025 16:47:21 +0100 |
| parents | 88b6ab90c55a |
| children | |
| files | OtherSources/firmwareEraseProgram.c |
| diffstat | 1 files changed, 4 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/OtherSources/firmwareEraseProgram.c Wed Nov 19 21:34:18 2025 +0100 +++ b/OtherSources/firmwareEraseProgram.c Thu Nov 20 16:47:21 2025 +0100 @@ -560,20 +560,13 @@ uint32_t CalcFletcher32(uint32_t startAddr, uint32_t endAddr) { - uint32_t fletcher = 0; - uint16_t* pData = (uint16_t*) startAddr; - uint32_t index = 0; - uint16_t sum1 = 0; uint16_t sum2 = 0; - for(index = startAddr; index <= endAddr; index +=2) - { - sum1 = sum1 + *pData++; - sum2 = (sum2 + sum1); + for (uint16_t *index = (uint16_t *)startAddr; index <= (uint16_t *)endAddr; index++) { + sum1 = sum1 + *index; + sum2 = (sum2 + sum1); } - fletcher = (sum2 << 16) | sum1; - - return fletcher; + return (sum2 << 16) | sum1; }
