Hallo! Nachdem mich das Aufsetzen der Entwicklungsumgebung für den STM32 bereits einige Nerven gekostet hat, gehen meine Probleme leider weiter. Prinzipiell klingt das folgende jedoch nach "irgendwo ein Häkchen vergessen" oder "Compiler-Option falsch angegeben". Von daher poste ich, auf der Suche nach Rat. Ich möchte die von ST gelieferten DSP-libs nutzen. (eigentlich nur die 64punkt-FFT) Wenn ich die Assembler-Dateien hinzufüge (per #include "cr4_fft_64_stm32.S") erhalte ich unten angefügte Compiler-Fehlermeldung. Die C-Programmierung ansonsten läuft einwandfrei. Wenn sich jemand darauf einen Reim machen kann, ..ich bin um jeden Tipp dankbar. Grüße ... 'Invoking: ARM Sourcery Windows GCC C Compiler' arm-none-eabi-gcc -DHSE_VALUE=8000000 -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER -I"D:\STM32\eclipse_workspace\test_02\include" -O0 -Wall -Wa,-adhlns="main.o.lst" -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -mcpu=cortex-m3 -mthumb -g3 -ggdb -o"main.o" "../main.c" In file included from ../main.c:9:0: ../cr4_fft_64_stm32.S:16:1: error: expected identifier or '(' before '.' token ../cr4_fft_64_stm32.S:43:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'r12' ../cr4_fft_64_stm32.S:43:13: error: stray '#' in program ../cr4_fft_64_stm32.S:45:9: error: stray '#' in program .....usw. usf. .... PS: Falls ich ne wichtige Info vergessen habe, dann kann ich die bestimmt nachliefern - ich habe nicht alles verinnerlicht, was ich da eingestellt habe. (viel copy&paste)
Hallo Matze, ohne jetzt genau in's Detail gegangen zu sein: Warum machst Du ein #include der Assembler-Sourcedatei in einem C-File? Die ist höchstwahrscheinlich dafür gedacht, separat assembliert zu werden. Die Fehler kommen daher, dass der Assemblercode für den C-Compiler unverdaulich ist... Und bevor Du fragst: Der Assembler heisst arm-none-eabi-as Dackel
Hallo Dackel, möglicherweise hat mir das schon geholfen. Ich dachte, man könnte auch die .S-Dateien in einem C-File inkludieren. (zu einfach gedacht.. ;-( ) Kannst du (bzw. jemand anderes) mir den Ablauf für's Einbinden von Assembler-Dateien stichwortartig erklären? Aus dem obig geschriebenen verstehe ich, daß ich die Assembler-Datei einzeln compilieren kann.. ..aber wie stelle ich den Bezug zu meiner main.c her? (bitte nicht als Antwort: "einfach linken" ) Alternativ wäre ich über einen Link zu einer klärenden Website genauso dankbar. Gegenfrage: Kann ich (erstmal unschön - aber vielleicht erfolgreich) in meiner main.c unten dran den Assembler-Code ähnlich einer Funktion einfügen? Mittels "__INLINE" oder "__ASM" oder sowas? Besten Dank!! Grüße aus dem verschneiten HH
Eine Assemblerdatei ist eine Sourcedatei ist eine Sourcedatei! Warum wehrst Du Dich so dagegen, das Ding einfach zu assemblieren und zu Deinen anderen Modulen zu linken? Geht auch nicht anders als mit C-Files und tut gar nicht weh... Habe jetzt mal spasseshalber ein Projekt angelegt in der Eclipse. Ein main.c und irgendein File mit '.S' Endung werden ohne weiteren Krampf assembliert und gelinkt... Bei einem Embedded Target ist natürlich noch die richtige Embedded Toolchain einzustellen, aber das scheinst Du ja mindestens für den C-Compiler geschafft zu haben. Kennst Du das GNU/ARM-Eclipse Plugin? Da sind einige Cross-Toolchains voreingestellt (project - properties - tool chain ...). Übrigens muss nicht mal explizit ein Assembler eingestellt werden. Das 'gcc' Frontend weiss anhand der Dateiendung, ob Assembler, C- oder C++-Compiler für eine gegebene Source aufzurufen sind. Bei www.gnu.org gibt´s mehr Dokumente als Du lesen willst... Dackel.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.