mikrocontroller.net

Forum: Compiler & IDEs GNUARM Fehlermeldung und Frage


Autor: GNUARM_NEW (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: G. L. (sprintersb)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: GNUARM_NEW (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.