Witam,
Piszę sobie program w c na atmega8. "main" ma około 800 linii kodu + używam bibliotek V-USB. Kompilacja WinAVR. Wgrywam go stk500.
W momencie gdy program po kompilacji zaczął zajmować więcej niż ok. 75% całej pamięci flash procesora, zaczęły dziać się dziwne rzeczy. Raz program po wgraniu działa, a zaraz po dopisaniu małej zmiany w kodzie już nie. Po kilkudniowym szukaniu błędu w kodzie :\ i ciągłym cofaniu się do poprzedniej wersji swojego programu zauważyłem jedną prawidłowość. Przykładowo mam n linii kodu. Po kompilacji wgrywam program i działa. Dopisuje jedną linię kodu np. zmianę stanu logicznego na wyjściu procka i po wgraniu programu procesor jest martwy. Wygląda jakby nawet nie wchodził w funkcję główną. Dopiszę kolejną linię kodu, nawet tą samą co poprzednio i wtedy już działa O_o !!
Czy ktoś kiedykolwiek spotkał się z podobnym problemem?
Wkurza mnie to, bo co dopiszę nową funkcję, to muszę dodawać jedną nieznaczącą linię kodu, lub ją zakomentowywać, bo program wydaje się jakby nie ruszał.
Piszę sobie program w c na atmega8. "main" ma około 800 linii kodu + używam bibliotek V-USB. Kompilacja WinAVR. Wgrywam go stk500.
W momencie gdy program po kompilacji zaczął zajmować więcej niż ok. 75% całej pamięci flash procesora, zaczęły dziać się dziwne rzeczy. Raz program po wgraniu działa, a zaraz po dopisaniu małej zmiany w kodzie już nie. Po kilkudniowym szukaniu błędu w kodzie :\ i ciągłym cofaniu się do poprzedniej wersji swojego programu zauważyłem jedną prawidłowość. Przykładowo mam n linii kodu. Po kompilacji wgrywam program i działa. Dopisuje jedną linię kodu np. zmianę stanu logicznego na wyjściu procka i po wgraniu programu procesor jest martwy. Wygląda jakby nawet nie wchodził w funkcję główną. Dopiszę kolejną linię kodu, nawet tą samą co poprzednio i wtedy już działa O_o !!
Czy ktoś kiedykolwiek spotkał się z podobnym problemem?
Wkurza mnie to, bo co dopiszę nową funkcję, to muszę dodawać jedną nieznaczącą linię kodu, lub ją zakomentowywać, bo program wydaje się jakby nie ruszał.