Forum: Compiler & IDEs relocation truncated to fit: R_AVR_7_PCREL against `no symbol'


von Sam .. (sam1994)


Lesenswert?

Hi

In meinem Projekt sind Assembler und C gemischt. In Assembler ist eine 
sehr lange ISR implementiert. Das ganze hat auch gut funktioniert, bis 
ich plötzlich nach ein paar weiteren Asm Zeilen 2 Fehler ernte:
1
(.text+0x3e): relocation truncated to fit: R_AVR_7_PCREL against `no symbol'
2
(.text+0x42): relocation truncated to fit: R_AVR_7_PCREL against `no symbol'

Durch auskommentieren von nur 12 Codezeilen wird fehlerfrei compiliert. 
Ich denke mir fehlt ein Avrgcc-Schalter der das behebt - schätzungsweise 
müsste ich bei 512 Asm-Befehle angekommen sein. Dazu kommen noch ca. 2KB 
Daten im Asm-Code.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Ein Sprungziel ist zu weit von der Sprung-Instruktion entfernt, als daß 
das Sprungziel noch codiert werden könnte.

von Stefan E. (sternst)


Lesenswert?

Samuel K. schrieb:
> In Assembler ist eine
> sehr lange ISR implementiert.
> ...
> Ich denke mir fehlt ein Avrgcc-Schalter der das behebt

Ich denke eher, dir fehlt eine Modifikation der Stelle in deinem 
ASM-Code, an der du versuchst mit einem brXX zu weit zu springen.

von Sam .. (sam1994)


Lesenswert?

Wow, danke für die schnellen Antworten. Es war tatsächlich 2 breqs, die 
nicht mehr reichten. Das hätte ich wahrscheinlich niemals aus der 
Fehlermeldung herausgelesen.

Danke!

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

So ist es.

Die Tools können nur ein Relaxing

  langer Offset → kurzer Offset

durchführen falls möglich, aber sie können keine über-langen Offsets in 
andere, legale Sequenzen überführen. Schau dir an, wie avr-gcc das 
Problem löst!

von Sam .. (sam1994)


Lesenswert?

Johann L. schrieb:
> Schau dir an, wie avr-gcc das
> Problem löst!

Wahrscheinlich durch ein brxx+(r)jmp. Im Asm-Code reichte ein 
Umstrukturieren von Codeblöcken.

von Sahin (Gast)


Lesenswert?

Hallo, ich habe das selber problem und bin absolut neu können sie mir 
bitte helfen ich habe zwar gelesen aber habe überhaupt nicht verstanden 
wo ist was und so .
MfG Sahin

Beitrag #5222957 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.