MSPGCC Problem beim Compilieren

Gast #181915
Lesenswert?

Hallo GCC-Forum

Da ich noch nicht so lange in C programmiere und zwischen den einzelnen
Projekten immer relativ große Zeiträume liegen habe ich noch einige mehr
oder weniger große Wissenslücken.

Ich habe ein Problem bei der Compilierung mit MSPGCC für einen
MSP430F123. Nach einer gewissen Größe des Quelltextes gibt mir der
Compiler folgende Meldung zurück:

msp430-ld: region text is full (a.out section .text)
msp430-ld: section .vectors [0000ffe0 -> 0000ffff] overlaps section
.text [0000fc00 -> 00010365]
msp430-ld: a.out: section .vectors lma 0xffe0 overlaps previous
sections

Ehrlich gesagt bin ich mir nicht im klaren welche Bedeutung die Sektion
.text (sowie .bss, .noinit) hat und man diese anpassen kann.
Im erzeugten MAP-File ist unter der Memory-Config "text" Origin:
0xfc00 Lenght: 0x03e0 zu finden, ist dies denn richtig ?
Im Listfile wird der Code auf die für den µC richtige Adresse gelinkt
und läuft korrekt.

Deklariere ich nun weitere z.B. globale Arrays gibt mir der Compiler
folgende Fehlermeldung zurück:

msp430-ld: address 0x45a of C:\MSPGCC\Projekte\test1\test1.exe
section .bss is not within region data
msp430-ld: address 0x45a of C:\MSPGCC\Projekte\test1\test1.exe
section .noinit is not within region data

Dies sagt mir nun leider gar nichts.
Für ein paar erklärende Worte wäre ich sehr dankbar.
Gast #181920
Lesenswert?

^^ (siehe link)
oder so:

Sourcecode für msp430x1121 kompilieren

 $ msp430-gcc -Os -mmcu=msp430x1121 -o test1.elf test1.c



 Sourcecode für msp430x1121 kompilieren, wenn math.h includiert wird

 msp430-gcc -Os -mmcu=msp430x1121 -o test1.elf test1.c -lm


Wichtig ist hierbei -lm als letzte Option.



 Assemblerlisting erzeugen (optional)

 $ msp430-objdump -DS test1.elf > test1.lst



 Hex-Datei erzeugen

 $ msp430-objcopy -O ihex test1.elf test1.hex
Gast #181921
Lesenswert?

Dear Sir/Madam;
beim Compilieren scheint die folgende fehlenmitteilung

C:\cygwin>msp430-gcc -Os -mmcu=msp430x1611 -o rf_blink_led.elf
rf_blink_led.c
rf_blink_led.c: In function `ledFlash':
rf_blink_led.c:206: `for' loop initial declaration used outside C99
mode

Ich habe nicht verstanden , was c99 bedeutet.
Danke
Gast #181922
Lesenswert?

C99 ist das ANSI-C von 1999; das ist der letzte offizielle C-Standard (
www.ansi.org ).
Weil Programmierer häufig sehr konservativ sind und es viel alten Code
gibt, wird auch seit 6 Jahren offiziell gültiger Code nicht immer
klaglos akzeptiert.
Die Warnungen kann man aber einfach ignorieren.
Gast #181923
Lesenswert?

Hello Mr.Rolf;
Vielen Dank fuer Ihre Antwort.
Neben dem Fehler konnte diese Datei ****.elf nicht generiert werden,
ist diese fehlermeldung diese Ursache, und wie kann man diesesn Fehler
beheben.
Danke
Gast #181924
Lesenswert?

Ich habe den MSPGCC bisher nur unter Linux verwendet, so daß ich zum
MS-Win nicht allzu viel sagen kann. Es sieht so aus, als ob man unter
MS-Win erstmal Cygwin installieren muß, als Unix-ähnliche Umgebung:
http://www.cygwin.com/
Mit dem Klick auf "Install auf Cygwin now" sollte das schnell
erledigt sein.

Weiteres steht auch im Manual vom MSPGCC:
http://mspgcc.sourceforge.net/manual/c49.html#windows-installation

Vielleicht reicht auch die Exe mspgcc-win32, die ein "one step
installer" ist; einfach mal ausprobieren.

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