pioneer
Guest
Mon Aug 07, 2006 6:45 pm
Witam!
Mam nie lada problem z poprawnym skompilowaniem programu w avr-gcc dla
atmega128, pojawia mi się następujące błędy podczas kompilacji:
....
C:\DOCUME~1\wojtaas\USTAWI~1\Temp/ccmYaaaa.s:98471: Error: value of
67256 too large for field of 2 bytes at 3486
....
No i jest tego sporo. Wiem że problem tkwi w tym, skoki są większe niż
2^16, jak można zoptymalizować kod żeby te skoki były krótsze? może
zastosować po 2 krótsze skoki

ale jak ??
Zmiana poziomu optymalizacji też nic nie pomaga.
Proszę o pomoc!
pozdrawiam
wojtaas
pioneer
Guest
Mon Aug 07, 2006 8:16 pm
Piotr Chmiel napisał(a):
Quote:
On Mon, 7 Aug 2006, pioneer wrote:
Mam nie lada problem z poprawnym skompilowaniem programu w avr-gcc dla
atmega128, pojawia mi się następujące błędy podczas kompilacji:
...
C:\DOCUME~1\wojtaas\USTAWI~1\Temp/ccmYaaaa.s:98471: Error: value of
67256 too large for field of 2 bytes at 3486
...
No i jest tego sporo. Wiem że problem tkwi w tym, skoki są większe niż
2^16, jak można zoptymalizować kod żeby te skoki były krótsze? może
zastosować po 2 krótsze skoki

ale jak ??
Rozkazem JMP k - jesteś w stanie skakać w przedziale: 0 < k < 4M (word)
Więc to chyba nie o skoki chodzi, a raczej o jakąś zmienną.
Wklej błędną linijkę kody to się dowiesz.
Już poradziłem sobie:) W MAKEFILE zmieniłem z:
DEBUG = dwarf-2
na
DEBUG = stabs
Tylko że nie mam za bardzo pojęcia w czym rzecz, może ktoś podpowie ?
pozdrawiam
Zbych
Guest
Mon Aug 07, 2006 9:04 pm
pioneer przemówił ludzkim głosem:
Quote:
Już poradziłem sobie:) W MAKEFILE zmieniłem z:
DEBUG = dwarf-2
na
DEBUG = stabs
Tylko że nie mam za bardzo pojęcia w czym rzecz, może ktoś podpowie ?
Dwarf-2 to sposób zapisu informacji dla debugera (używa tego np.
avrstudio). Problem polega na tym, że adresy w pamięci programu są
liczone bajtowo (a nie słowami po 2 bajty), a dwarf-2 używa dwóch bajtów
do przechowywania adresów. Powyżej 64kB nie da się więc zapisać
informacji dla debugera. Były jakieś plany wprowadzenie 4bajtowego
adresu do dwarf-2, ale nie wiem jak to się skończyło.