Marico ma rację - jednak zostają śmieci, oczywiście zgodnie z tym co napisał...
Cytat: w tym FLASH trzeba umieścić CRC, który to CRC zmieni zawartość FLASH
To jest akurat stosunkowo proste - wartość CRC jest zapisana jako string, poprzedzony odpowiednim prefixem. Wystarczy go odszukać w pamięci i pominąć podczas liczenia CRC.
Faktem jest natomiast, że jest to wyciąganie Bascoma za uszy, no ale taki jest ten przypadek i na razie nie bardzo można to zmienić.
Znaczy jest w planie całkiem nowa wersja, którą już w C trzeba zrobić, no ale - to trzeba zrobić, a czas nie jest z gumy. A program zajmuje całą ATMEGĘ 128...
Cytat: po co te sumy kontrolne? Być może probujesz dorobić skomplikowane narzędzie do funkcjonalności, która w obliczu pewnych okolicznosci (których jeszcze nie znasz lub nie przewidziałeś) okaże się jednak niepraktyczna?
Bez przesady, narzędzie jest dość proste. Pominąwszy wspomniany kłopot podczas zmian programu , kiedy nowsza wersja jest mniejsza niż stara, to sprawdza się to - bo przecież dla czego miałoby się nie sprawdzać.
W normalnej praktyce nie ma to znaczenia, bo programowany jest czysty MCU i żadnych śmieci tam być nie może. A gdyby się pojawiły - to byłby to znak, że coś jest nie tak, i błąd CRC będzie całkiem pożądany.
Natomiast dlaczego w ogóle coś takiego ? Ano dlatego, że procesor działa w warunkach niekorzystnych EMC , i musi być możliwe zabezpieczony przed niespodziankami właśnie.
To CRC to tylko jeden z elementów, oprócz tego stosuję np. przechowywanie zmultiplikowanych danych, co pozwala na wyłapanie i ew. korekcję błędów.
Do tego dochodzi okresowe inicjowanie zmiennych, parametrów portów, czy nawet okresowe restartowanie ( czasem można się z tym z spotkać np. w systemach alarmowych ).
Nie pamiętam teraz dokładnie tytułów, ale jest nieco literatury traktującej o specyfice programowania dla trudnych środowisk EMC, i są tam również takie wskazówki.
I rzeczywiście jest to pomocne i konieczne. Kiedyś też mi się wydawało, że zmiana zawartości flasha jest nieprawdopodobna. A jednak - to się zdarza.
Mimo podejmowania wszelkich możliwych zabezpieczeń, ekranowania itp.
Fakt, że aplikacja BASCOMowa jest w takim miejscu jest lekkim nieporozumieniem, ale cóż - błąd młodości
