Witam
Mam pewien problem z pamięcią EEPROM przy programowaniu poprzez FLIP. Otóż robiąc pełną sekwencję (erase, blank check, program, verify) przy programowaniu do flasha usuwa się przy okazji cała zawartość EEPROM. Jest to niezwykle denerwujące, bo w tej pamięci trzymam całą konfigurację programu i muszę ją po zaprogramowaniu znowu wprowadzać. Zresztą takie zachowanie przeczy idei pamięci EEPROM - ma ona się zachowywać przy przeprogramowywaniu, ma pamiętać ustawienia niezależnie od wszystkiego!
Zauważyłem, że usuwanie pamięci EEPROM następuje przy operacji erase. Nie mam pojęcia dlaczego mając wybraną pamięć flash (na tym przycisku poniżej loga atmela) kasuje się zarówno flash, jak i EEPROM. Tak więc postanowiłem nie robić operacji erase (i blank chcek oczywiście), żeby nie kasować EEPROMa. Robię więc tylko program i verify.
I tu pojawia się pytanie. Czy pominięcie operacji erase przy programowaniu jest złe? Czy bez wykasowania pamięci przed programowaniem może się coś popsuć? Jeśli nie, to pewnie jest to rozwiązanie problemu - nie będę robił erase, a EEPROM zostanie nienaruszony. Jesli jednak erase jest wskazane, to jest większy problem.
Znalazłem, że aby pozbyć się kasowania eeprom przy erase należy zmienić kod bootloadera - jest taka funkcja:
i trzeba wywalić jedną linijkę. Jednak problemem jest skompilowanie tego ponownie. Ludzie piszą, że to trzeba skompilować w jakimś IAR. Czy to jest po prostu jakiś inny program do klepenia, niż AVR studio, nie mający z nim nic wspólnego? Nie umiem tego znaleźć... Dlaczego Atmel korzysta do kompilowania bootloadera z jakiegoś kompilatora konkurencyjnej firmy, a nie swojego własnego?
Mam pewien problem z pamięcią EEPROM przy programowaniu poprzez FLIP. Otóż robiąc pełną sekwencję (erase, blank check, program, verify) przy programowaniu do flasha usuwa się przy okazji cała zawartość EEPROM. Jest to niezwykle denerwujące, bo w tej pamięci trzymam całą konfigurację programu i muszę ją po zaprogramowaniu znowu wprowadzać. Zresztą takie zachowanie przeczy idei pamięci EEPROM - ma ona się zachowywać przy przeprogramowywaniu, ma pamiętać ustawienia niezależnie od wszystkiego!
Zauważyłem, że usuwanie pamięci EEPROM następuje przy operacji erase. Nie mam pojęcia dlaczego mając wybraną pamięć flash (na tym przycisku poniżej loga atmela) kasuje się zarówno flash, jak i EEPROM. Tak więc postanowiłem nie robić operacji erase (i blank chcek oczywiście), żeby nie kasować EEPROMa. Robię więc tylko program i verify.
I tu pojawia się pytanie. Czy pominięcie operacji erase przy programowaniu jest złe? Czy bez wykasowania pamięci przed programowaniem może się coś popsuć? Jeśli nie, to pewnie jest to rozwiązanie problemu - nie będę robił erase, a EEPROM zostanie nienaruszony. Jesli jednak erase jest wskazane, to jest większy problem.
Znalazłem, że aby pozbyć się kasowania eeprom przy erase należy zmienić kod bootloadera - jest taka funkcja:
Kod: C / C++
i trzeba wywalić jedną linijkę. Jednak problemem jest skompilowanie tego ponownie. Ludzie piszą, że to trzeba skompilować w jakimś IAR. Czy to jest po prostu jakiś inny program do klepenia, niż AVR studio, nie mający z nim nic wspólnego? Nie umiem tego znaleźć... Dlaczego Atmel korzysta do kompilowania bootloadera z jakiegoś kompilatora konkurencyjnej firmy, a nie swojego własnego?
