dziwna sprawa...

Oct 11, 2024 Last reply: 1 rok temu 2 Replies

Pacjent to Atmega 2561 i bascom.



Jest skonfigurowany bootloader 4K ( ten bascomowy mniej więcej ) oraz program zasadniczy zajmujący trochę ponad 200K.



Całość pamięci jest zrzucona do hex - wgrywam toto sobie no i wszystko działa. Bootloader a potem uruchamia się właściwy program.



Następnie ładuję bootloaderem nową wersję programu głównego . Jest większa trochę ale nadal się mieści - wszystko OK. Działa i śmiga.



I teraz znowu - zrzucam całość do hex, żeby mieć nową wersję z bootloaderem "w kupie".



I dzieje się coś dziwnego : zrzuca się normalnie. Ale po wgraniu z powrotem do MCU program główny uruchamia się źle - coś się wykrzacza na starcie na LCD, potem niby jest dobrze. No ale - to nie jest dobrze.



No przecież to jest niemożliwe - zrzucenie pamięci do hex i wprogramowanie go ponownie powinno dać dokładnie ten sam efekt. Ale nie daje.



Jak ponownie załaduję bootloaderem program zasadniczy - to znowu jest OK.



No jakim kurła cudem po zrzuceniu flash w całości i załadowaniu tej całości ponownie - jest inaczej ?



Programator to Dragon AVR + Atmel studio.Próbowałem też USBASP 2.0 Efekt ten sam. Zresztą ten Dragon ( choć wolniejszy niż Atmel ICE ) działa zupełnie dobrze, nie mam do niego zastrzeżeń.



Podglądałem oba pliki ( ten z "starym" i "nowym" programem ) - na oko wszystko jest OK. Bootloadery są tam gdzie powinny i chyba takie same. No to kuśwa jak to jest możliwe ??


jakieś znaczenie ma wersja program zasadniczego.

Czyli początkowo mamy v1. Jak załadujemy v2 i przeprowadzimy całą operację - wszystko jest OK.

Ale jak załadujemy v3 ( wszystko działa ) a potem zrzucimy hex i wgramy ponownie to już coś jest nie halo.

Ale niezależnie przecież od tego co jest w programie zasadniczym to jeśli wszystko działa przed zrzuceniem do hex - to ten hex potem załadowany powinien dać dokładnie ten sam efekt.

Czy nie ??

Dobra, zrobiłem. Odczytałem też eeprom i dołożyłem go do paczki "produkcyjnej". I jest dobrze.

Nie powinno to mieć imo wpływu - bo główny program po załadowaniu przez bootloader konfiguruje ten EEPROM jak należy. Można to także zrobić ręcznie - ale to nie pomagało.

Więc właściwie nadal nie rozumiem o co kaman, no ale zrzucając Flash i Eeprom i ładując ponownie jest OK.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required