[avr-gcc] zby długie skoki

Aug 07, 2006 3 Replies

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


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

pioneer przemówił ludzkim głosem:

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.

Join the Discussion

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

Didn't find your answer?

Ask the community — no account required