Forum: Compiler & IDEs Fehlermeldung bei mspgcc


von Wolfgang (Gast)


Lesenswert?

Ich habe angefangen, ein Programm, welches ich bisher mit IAR Kickstart 
bearbeitet habe und das jetzt zu groß geworden ist, mit dem 
mspgcc-Programm zu übersetzen.
Folgende Fehlermeldung kann ich nicht deuten:
msp430-ld: address 0xd27 of EKG5V02.elf section .bss is not within 
region data

3 Fragen: Was bedeutet diese Fehlermeldungen?
          Was müsste ich ändern, damit dieser Fehler beseitigt wird?
    Wofür ist das Programm msp430-ld.exe zuständig?

Verwendet wurde mspgcc-20060502.exe

Mit freundlichen Grüßen
Wolfgang

von Stefan (Gast)


Lesenswert?

1/ Die Sektion .bss für die uninitialisierten Variablen kann nicht mehr 
untergebracht werden. Entweder ist sie selbst zu gross oder die anderen 
Sektionen (.text bzw. .code und .data) sind schon zu gross.

2/ Weniger Code und/oder weniger Variablen benutzen.

3/ msp430-ld.exe ist der Linker in der gesamten Toolchain.

von Wolfgang (Gast)


Lesenswert?

Danke Stefan,
darf ich zu Deiner Antwort einige Fragen nachschieben?
Welche Variablen sind die uninitialisierten Variablen?
Was versteht man unter Toolchain?

>Weniger Code und/oder weniger Variablen benutzen.
Ich dachte immer, mspgcc ist nicht begrenzt.
Ein MSP430F168 hat 48KB Programmspeicher und 2KB Arbeitsspeicher.
Oder hängt es damit zusammen?

Wolfgang

von Stefan (Gast)


Lesenswert?

> Welche Variablen sind die uninitialisierten Variablen?

char initialisierte_variable = 42;
char unintialisierte_variable;

C-Lehrbuch 1. Stunde ;-)

> Was versteht man unter Toolchain?

Brute-Force-Übersetzung:

engl. Tool = deutsch Werkzeug
engl. Chain = deutsch Kette

Toolchain = Werkzeugkette
Eine Auflistung von Werkezugen, die einen bestimmte Aufgabe erfüllen.

> Oder hängt es damit zusammen?

Ja, tut es. Man kann unbegrenzt Saufen, in die Blase passt 
typischerweise nicht mehr als 1,5 Liter.

von Gunb (Gast)


Lesenswert?

Gröl,

habe gerade meine Blase debugt - STIMMT, 1,5Liter!


:-))))


Spass muss sein!

von Christian R. (supachris)


Lesenswert?

Hmm...irgendwas läuft da falsch. Willst du den Bootloader überschreiben? 
Die Adresse 0xd27 liegt im Bootloader-Bereich, und ist natürlich kein 
Data.

Auszug aus dem Linker-File für den F168:

 bootloader(rx)  : ORIGIN = 0x0c00,  LENGTH = 1K

Der Bootloader geht also von 0x0C00 bis 0x0FFF und deine d27 liegt da 
drin.

Kannst du mal das Programm posten? Wirklich beim Kompiler, Linker und 
Assembler eingestellt, dass du einen F168 hast?

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.