Forum: Mikrocontroller und Digitale Elektronik eclipse c/c++ cortex m3 managed project.hilfe.


von BANANA BANANA (Gast)


Lesenswert?

Hi,
ich hab mein projekt derzeit mit eclipse, codesourcery g++ lite als 
makefile c projekt am laufen. Da ich die Vorteile von makefile 
projekten, übergeordnete mit einzubeziehen, nicht brauche, würde ich 
gern ein managed projekt draus machen. Und genau da fangen meine 
Probleme an, im makefile projekt konnte ich unter poject-> properties -> 
c/c++ build den build command auf cs-make umstellen/eintragen wie es 
codesourcery benötigt, bei einem managed projekt, also einem normalen 
projekt, ist die Option nicht änderbar.
ein anderer Punkt der damit wohl zusammenhängt ist: beim erstellen des 
makefile projekt wähle ich als toolchain "other toolchain" 
(auswahlmöglichkeit ist "other toolchain" und "mingw"), beim 
normalen/managed projekt hab ich nur mingw als Auswahlmöglichkeit.

ich hoffe mir kann da jemand weiterhelfen, kenn mich mit eclipse nicht 
sehr gut aus.

Grüße oder schönen Start ins (für manche) lange wochenende,
Chris

von 900ss (900ss)


Lesenswert?

Du brauchst das ARM-Plugin für Eclipse. So wie es sich anhört, hast du 
das nicht eingebunden.
Der STM32 Artikel sollte dir weiterhelfen.

von BANANA BANANA (Gast)


Lesenswert?

Danke,
das hat die genannten Probleme tatsächlich gelöst. Es kommen allerdings 
noch Fehler beim compilieren, weil ich wohl die Projekteinstellungen für 
ein managed Projekt noch nicht ganz richtig angepasst habe. Vielleicht 
kann mir ja nochmal jemand weiterhelfen. Ich habe folgenden Ausschnitt 
aus dem alten makefile, diese definiert den verwendeten controller, 
welches innerhalb eines header files (mittels #if defined(EFM..)) 
abgefragt wird. Wo trag ich das in einem managed Projekt ein?

DEVICE = EFM32GG990F1024
...

...
# Add -Wa,-ahld=$(LST_DIR)/$(@F:.o=.lst) to CFLAGS to produce assembly 
list files
CFLAGS += -D$(DEVICE) -mcpu=cortex-m3 -mthumb -ffunction-sections 
-fdata-sections \
-mfix-cortex-m3-ldrd -fomit-frame-pointer -Wall -DDEBUG_EFM  $(DEPFLAGS)
...

...
# Default build is debug build
all:      debug

debug:    CFLAGS += -DDEBUG -O0 -g3
debug:    $(OBJ_DIR) $(LST_DIR) $(EXE_DIR) $(EXE_DIR)/$(PROJECTNAME).bin

release:  CFLAGS += -DNDEBUG -O3
release:  $(OBJ_DIR) $(LST_DIR) $(EXE_DIR) $(EXE_DIR)/$(PROJECTNAME).bin


Viele Grüße,
Chris

von bananarama (Gast)


Lesenswert?

In deinem Projekt drückst du "Alt + Enter" oder übers Kontextmenü 
"Eigenschaften/Properties" -> C/C++ Build -> Settings

Sowas findet man durch "rumspielen" heraus oder einfach mal die 
Eclipse-Hilfe bemühen, schäm dich :-)

von BANANA BANANA (Gast)


Lesenswert?

bananarama schrieb:
> In deinem Projekt drückst du "Alt + Enter" oder übers Kontextmenü
> "Eigenschaften/Properties" -> C/C++ Build -> Settings
>
> Sowas findet man durch "rumspielen" heraus oder einfach mal die
> Eclipse-Hilfe bemühen, schäm dich :-)

Ja, da bin ich durch rumspielen schon hingekommen, und hab schon 
Kleinigkeiten wie den Processor auf "cortex-m3" umgestellt, allerdings 
eben noch nicht alles dort gefunden was ich suche.

von BANANA BANANA (Gast)


Lesenswert?

nagut, ich zieh meine Frage zurück, rumspielen scheint doch zu reichen

von BANANA BANANA (Gast)


Angehängte Dateien:

Lesenswert?

Guten Morgen,
1
**** Build Finished ****
2
3
**** Build of configuration Release for project test ****
4
5
cs-make all 
6
Building file: ../usb/src/em_usbd.c
7
Invoking: ARM Sourcery Windows GCC C Compiler
8
arm-none-eabi-gcc -DEFM32GG990F1024 -DDEBUG_EFM -I"C:\Users\csander\Neuer Ordner\test\EFM32GG\Include" -I"C:\Users\csander\Neuer Ordner\test\emlib\inc" -I"C:\Users\csander\Neuer Ordner\test\usb\inc" -I"C:\Users\csander\Neuer Ordner\test\CMSIS\Include" -I"C:\Users\csander\Neuer Ordner\test" -I"C:\Users\csander\Neuer Ordner\test\bsp" -I"C:\Users\csander\Neuer Ordner\test\drivers" -I"C:\Users\csander\Neuer Ordner\test\drivers\fatfs\src" -O0 -ffunction-sections -fdata-sections -Wall -Wextra -mfix-cortex-m3-ldrd -fomit-frame-pointer -MMD -MP -MF"usb/src/em_usbd.d" -MT"usb/src/em_usbd.d" -mcpu=cortex-m3 -mthumb -DNDEBUG -o "usb/src/em_usbd.o" "../usb/src/em_usbd.c"
9
c:/program files (x86)/codesourcery/sourcery g++ lite/bin/../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/bin/ld.exe: warning: cannot find entry symbol _start; defaulting to 0000800c

ich quäl mich schon seit gestern Mittag mit dieser Warnung rum. Laut 
google, welches mich zu vielen Websiten einschließlich 
mikrocontroller.net geführt hat, fehlt dem Linker das *.ld File. Dieses 
habe ich aber eingebunden (siehe Bild). Nach dem Warning kommen noch 
weitere Fehlermeldungen, hier ein kurzer Ausschnitt:

1
C:\Users\csander\AppData\Local\Temp\ccuRCnWB.o: In function `INT_Disable':
2
em_usbd.c:(.text.INT_Disable+0x2): undefined reference to `INT_LockCnt'
3
em_usbd.c:(.text.INT_Disable+0x6): undefined reference to `INT_LockCnt'
4
em_usbd.c:(.text.INT_Disable+0x12): undefined reference to `INT_LockCnt'

Ich habe auch mal das makefile meines Makefile-Projects (lauffähig) und 
das makefile welches vom normalen/managed Project generiert wird (spuckt 
die genannten Fehlermeldungen).

HIIILLLFFEEEEE,
Chris

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.