RTV forum PL | NewsGroups PL

Optymalizacja skoków w kodzie AVR dla ATmega128 przy użyciu avr-gcc

[avr-gcc] zby długie skoki

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Optymalizacja skoków w kodzie AVR dla ATmega128 przy użyciu avr-gcc

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 Smile 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 Smile 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.

elektroda NewsGroups Forum Index - Elektronika Polska - Optymalizacja skoków w kodzie AVR dla ATmega128 przy użyciu avr-gcc

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map