Hallo, ich habe gerade einen Code vor mir liegen wo parameter aus dem EEPROM gelesen und später auch wieder geschrieben werden. Jetzt ist es bei allen parametern wie folgt aufgebaut 2 Byte Checksumme 2 Byte frei parameter... Hat es einen grund, warum man diese 2 Byte nach der checksumme frei macht? Erst habe ich gedacht, dass man so möchte, dass man genau auf 8Byte kommt (wenn noch 4 Bytes danach geschrieben werden). Aber es gibt auch Blöcke wo dann nur 6 Byte oder einer auch mit 15 Byte geschrieben werden.
Hört sich nach Programmierleiche an. Vielleicht solltens zu Projektbeginn 4 Byte Checksumme werden?
Helge schrieb: > Hört sich nach Programmierleiche an. Das kann gut sein. Der code ist auch wahrscheinlich von Neunzehnhundert nochwas. Hätte ja sein können, dass man sowas aus bestimmten gründen macht. Dann nehme ich das raus
Vielleicht ist oder war das eeprom 2byte-weise organisiert. Dann sorgt die Lücke dafür, dass ein Parameter-update im Fehlerfall (Stromausfall) keinen zweiten mit zerstört.
Oder es liegt an der Art und Weise wie die Daten organisiert sind. Bei einem 32-bit System würden hierbei:
1 | struct foo |
2 | {
|
3 | uint16_t crc; |
4 | uint32_t a; |
5 | uint32_t b; |
6 | };
|
Nach der crc Variable 2 Byte frei bleiben bzgl. des alignment.
Lars schrieb: > Hat es einen grund, warum man diese 2 Byte nach der checksumme frei > macht? Vielleicht kann man dieses EEprom mur in 4-byte Stücken ansprechen oder löschen.
Hab ich mir auch kurz gedacht, aber die Checksumme sollte sich eigentlich immer Hand in Hand mit dem Parameterwert ändern, damit müssen ohnehin immer beide neu geschrieben werden.
mIstA schrieb: > Hab ich mir auch kurz gedacht, aber die Checksumme sollte sich > eigentlich immer Hand in Hand mit dem Parameterwert ändern, damit müssen > ohnehin immer beide neu geschrieben werden. Du hast doch geschrieben, dass die Parameterwerte verschiedene Bytegrößen haben können. Es geht doch darum, dass nachfolgende Strukturen nicht gleichzeitig mit geschrieben werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.