Forum: Mikrocontroller und Digitale Elektronik .bss Overlaps previous section


von CH G. (Firma: FH) (aquado)


Lesenswert?

Hallo,

ich versuche aktuell auf einem Atmega 128 das schon etwas ältere TTP/A 
Protokoll zum laufen bekommen. Es existiert eine eigentlich voll 
funktionsfähige Version. Leider gibt mir diese eine Fehlermeldung beim 
Compilieren aus.

Ich nutzte Ubuntu 10.04 mit dem Avr-Gcc aus den Synaptics Quellen.

/usr/lib/gcc/avr/4.3.4/../../../avr/bin/ld: master.elf: section .bss vma 
0x800108 overlaps previous sections
make: *** [master.elf] Fehler 1

Kann dieses Problem mit neuen Compilerversionen auftreten. Bei der 
Entwicklung wurde anscheinend der GCC in Version 3.0 genutzt, wobei auf 
dem Ubuntu die Version 4.4.3 installiert ist

Das Programm wurde 2005 geschrieben.

http://www.vmars.tuwien.ac.at/ttpa/

Grüße

Christof

von Achim M. (minifloat)


Lesenswert?

Spiel mal ein bisschan mit der Optimierung rum. Wurde kein fertiges hex 
oder elf mitgegeben?
mfg mf

von CH G. (Firma: FH) (aquado)


Lesenswert?

nein. Es wird nur der Programmcode und die zugehörigen Makefiles 
mitgegeben. Es sollte als eigentlich so lauffähig sein.
Es scheint ja einfach so als ob das .bss segment zu groß ist, wobei dies 
normalerweise nicht auftreten sollte. Gibt es vielleicht eine 
Möglichkeit im Programm die Größe des Segmentes zu beeinflussen?`

von Achim M. (minifloat)


Lesenswert?

CH Gr schrieb:
> Gibt es vielleicht eine
> Möglichkeit im Programm die Größe des Segmentes zu beeinflussen?

Das .bss Segment ist doch nur der Platz der dauerhaft benutzten 
Variablen im RAM. Bei übermäßigem oder nicht sinnhaftem Gebrauch von 
static- und globalen Variablen kann das schon passieren. Vielleicht 
verbirgt sich da nur irgendwo etwas in der Verschachtelung von 
Header-Dateien.

mfg mf

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.