Forum: Compiler & IDEs GNUARM Fehlermeldung und Frage


von GNUARM_NEW (Gast)


Lesenswert?

Hallo ,

ich stelle gerade ein Programm für den LPC2138/48 von einem
anderen C-Compiler auf GCC um.
Dabei gibt es folgende Probleme bei denen ich um Hilfe bitte:

1. Ich bekomme folgende Fehlermeldungen und weiss jetzt nicht
   wo ich nach was suchen muss.

GNU C version 4.2.2 (arm-elf)
compiled by GNU C version 3.4.4 (cygming special, gdc 0.12, using dmd 
0.125).
GGC heuristics: --param ggc-min-expand=100 --param 
ggc-min-heapsize=131072
Compiler executable checksum: aa6792d977dfcb1158cc7131e51a7a40
/cygdrive/c/Programme/GNUARM/bin/../lib/gcc/arm-elf/4.2.2/../../../../ar 
m-elf/bin/as.exe  -mcpu=arm7tdmi-s -mfloat-abi=soft -o HSPIMMC.o 
/cygdrive/c/temp/ccLYwsfL.s
/cygdrive/c/temp/ccLYwsfL.s: Assembler messages:
/cygdrive/c/temp/ccLYwsfL.s:499: Error: flag for {c}psr instruction 
expected -- `msr CPSR_C,#0xDF'
/cygdrive/c/temp/ccLYwsfL.s:505: Error: flag for {c}psr instruction 
expected -- `msr CPSR_C,#0x1F'
make: *** [HSPIMMC.o] Error 1

2. Ich möchte bestimmte Funktionen des Programms in bestimmte
   Flash Sektoren legen. Der ganze Sektor muss dann ausschliesslich
   für diese reserviert sein. Auch wenn er nicht voll ist
   dürfen keine anderen Funktionen den Bereich belegen.
   Wie macht man das bei GCC?

Vielen Dank.

von G. L. (sprintersb)


Lesenswert?

1) Das sieht eher nach einem Problem mit dem Assembler aus als mit dem 
Compiler. Problem könnte sein, dass der Code Inline-Assembler enthält, 
der portiert werden muss.

2) In gcc legt man die Funktion in eine bestimmte Section mittels 
__attribute__((section ("name"))) oder falls es vom Backend unterstützt 
wird mit #pragma. Die Lage der Section wird per Lnker-Script dem Linker 
mitgegben.

Denkbar ist auch ein Bug in dieser doch recht neuen gcc/binutils 
Version, also auch mal die gcc-bugs für arm durchlesen.

von GNUARM_NEW (Gast)


Lesenswert?

Danke sehr.

Der Tip zu Pkt. 1 war prima ! Problem gefunden. Hatte tatsächlich
eine #asm Anweisung übersehen.

Zu 2 kann ich mir jetzt vorstellen was ich tun muss.

Danke nochmals.

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.