Witam
Mam bardzo dziwny problem z działaniem programu napisanym w Bascom. Program jest napisany na AT90CAN128 i po skompilowaniu zajmuje 58% pamięci programu.
Program kompiluje się prawidłowo - bez błędów, ale podczas działania program się sypie - błędy na wyświetlaczu graficznym, a nawet restart procesora.
Wystarczy jednak że usunę kilka linii kodu w programie np. klika linii DATA na końcu programu (dane dla grafiki wyświetlacza), które nie mają znaczenia (program z nich nie korzysta w danej chwili) i wtedy wszystko działa OK. Dodam że nie ma to znaczenia jakie to będą dane DATA.
Żeby było ciekawie efekt poprawy uzyskuję również np. przez dopisanie kliku linii kodu (tak tylko aby coś było) co nie zmienia działania programu np. jakiś IF który nigdy nie będzie spełniony.
Kombinowałem już z różnymi ustawieniami $hwstack ; $swstack ; $framesize ale to nic nie daje.
Wygląda to tak jakby długość programu miała wpływ na jego działanie i nie chodzi tu nawet o RAM bo linie kodu DATA są ładowane do pamięci programu.
Nie bardzo wiem jak to naprawić - może ktoś miał podobny problem ?
Mam bardzo dziwny problem z działaniem programu napisanym w Bascom. Program jest napisany na AT90CAN128 i po skompilowaniu zajmuje 58% pamięci programu.
Program kompiluje się prawidłowo - bez błędów, ale podczas działania program się sypie - błędy na wyświetlaczu graficznym, a nawet restart procesora.
Wystarczy jednak że usunę kilka linii kodu w programie np. klika linii DATA na końcu programu (dane dla grafiki wyświetlacza), które nie mają znaczenia (program z nich nie korzysta w danej chwili) i wtedy wszystko działa OK. Dodam że nie ma to znaczenia jakie to będą dane DATA.
Żeby było ciekawie efekt poprawy uzyskuję również np. przez dopisanie kliku linii kodu (tak tylko aby coś było) co nie zmienia działania programu np. jakiś IF który nigdy nie będzie spełniony.
Kombinowałem już z różnymi ustawieniami $hwstack ; $swstack ; $framesize ale to nic nie daje.
Wygląda to tak jakby długość programu miała wpływ na jego działanie i nie chodzi tu nawet o RAM bo linie kodu DATA są ładowane do pamięci programu.
Nie bardzo wiem jak to naprawić - może ktoś miał podobny problem ?