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;
 }