Fehlermeldung bei mspgcc

Gast #511347
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
Gast #511354
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.
Gast #511555
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
Gast #511654
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.
#573025
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren