Witam,
skompilowałem AES bootloader (pod gcc). W zasadzie wszystko działa jak powinno poza jednym wyjątkiem. Jeśli zostanie wywołany reset z watchdoga procesor się zawiesza, nie pomaga sprzętowy reset, pozostaje odłączenie zasilania. Fusebity HIGH mam ustawione na D8. Początek bootloadera mam ustawiony na .text=0x1E000. Jeśli ustawię fusebity HIGH na D9 (BOOTRST), to reset z watchdoga działa prawidłowo, jednak wtedy reset zawsze powoduje uruchomienie programu z pominięciem bootloadera, czyli nie ma możliwości wgrania aktualizacji.
Usunąłem fragmentu kodu z sys_startup.c, bo inaczej nie mogłem skompilować bootloadera, ale to chyba nie ma znaczenia w tym przypadku.
Usunąłem
Bez usunięcia tych linii był błąd multiple definition of __do_copy_data(void) z deklaracją w pliku crtm1284p.o
Co może być przyczyną zawieszenia po wywołaniu resetu przez watchdoga?
skompilowałem AES bootloader (pod gcc). W zasadzie wszystko działa jak powinno poza jednym wyjątkiem. Jeśli zostanie wywołany reset z watchdoga procesor się zawiesza, nie pomaga sprzętowy reset, pozostaje odłączenie zasilania. Fusebity HIGH mam ustawione na D8. Początek bootloadera mam ustawiony na .text=0x1E000. Jeśli ustawię fusebity HIGH na D9 (BOOTRST), to reset z watchdoga działa prawidłowo, jednak wtedy reset zawsze powoduje uruchomienie programu z pominięciem bootloadera, czyli nie ma możliwości wgrania aktualizacji.
Usunąłem fragmentu kodu z sys_startup.c, bo inaczej nie mogłem skompilować bootloadera, ale to chyba nie ma znaczenia w tym przypadku.
Usunąłem
Kod: C / C++
Bez usunięcia tych linii był błąd multiple definition of __do_copy_data(void) z deklaracją w pliku crtm1284p.o
Co może być przyczyną zawieszenia po wywołaniu resetu przez watchdoga?
