Forum: Compiler & IDEs CooCox CoIDE mit STM32F4-Discovery Board


von Matthias K. (matthiask)


Angehängte Dateien:

Lesenswert?

Nachdem das Atollic TrueStudio in der Lite-Version nun auch auf 32 Kbyte 
Code-Größe beschränkt wurde, habe ich die CooCox IDE installiert. Diese 
hat keine Einschränkungen und basiert auch auf GCC und Eclipse als 
Editor. Das Gesamttpaket ist jedoch nicht so optimal programmiert wie 
Atollic. Installieren und loslegen ist nicht!

Download:
http://www.coocox.org/CooCox_CoIDE.htm
(mind. die Version 1.4.1 downloaden, sonst keine STM32F4 Unterstützng)

GCC-ARM muss vorher installiert werden, findet man hier:
https://launchpad.net/gcc-arm-embedded/4.6/2011-q4-major
(am besten die Windows-Installer Version downloaden)

Wenn beides installiert ist muss in der CoIDE noch der Pfad zum GCC-ARM 
eingetragen werden:
also bei "Project/ Select Toolchain Path"
"C:\Programme\arm-none-eabi-gcc-4_6\bin" eintragen (Bsp.)

Als Debugger stellt man ST-LINK im SWD-Mode ein.

In der Anlage ist ein fertig konfigurierter Workspace mit einem Blinky 
für das STM32F4 Discoveryboard. Es enthält die komplette STM32F4 FW-Lib, 
die CMSIS- und Device Lib.

(Ich weiß, dass es auch ohne die FW-Lib ginge, für den Einstieg und zur 
Nutzung der STM Beispiele ist die LIB aber schon eine Hilfe.)

Es ist alles so konfiguriert, dass das Board auch wirklich mit 168MHz 
läuft. Die Symbols sind entsprechend angepasst.

Nochwas:
Falls die "Tasklist.exe" fehlt (zB. bei XP Home) kann man sich eine von 
einen andern Windows besorgen oder im Netz downloaden (ist auch Teil der 
TweakUiPowertoys). (http://www.computerhope.com/download/winxp.htm)

von Matthias K. (matthiask)


Lesenswert?

@Moderator

Bitte in Codesammlung verschieben.

von Gerhard G. (g_g)


Lesenswert?

Hallo,


Matthias K. schrieb:
> Nachdem das Atollic TrueStudio in der Lite-Version nun auch auf 32 Kbyte
> Code-Größe beschränkt wurde, habe ich die CooCox IDE installiert. Diese
> hat keine Einschränkungen und basiert auch auf GCC und Eclipse als
> Editor.

bin begeistert, ist echt Klasse!!

Atollic TrueStudio kann man damit getrost vergessen.


Gruß xmega

von Micha (Gast)


Lesenswert?

Matthias K. schrieb:
> GCC-ARM muss vorher installiert werden,
Was ist der Unterschied zwischen GCC_ARM und Codesourcery?

von Michael G. (let)


Lesenswert?

Die Linaro Version unterstützt hard floats des M4. Beim Codesourcery 
lite fehlt die Unterstützung dafür in einer der Libs bzw. eine Lib 
fehlt.

Der GCC 4.5.1 des Codesourcery hat irgendeinen STREXB/STREXH Bug der in 
der v4.5.2 (Linaro) gefixt wurde. Bin mal beim Compilieren der FW-Lib 
für den STM32F1 darauf gestossen.

von Micha (Gast)


Lesenswert?

OK, danke für die Info. Im Endeffekt hinkt CodeSourcery also immer etwas 
hinterher - jedenfalls scheint es so (auch anhand der Versionsnummern).

Ist das oben verlinkte 
(https://launchpad.net/gcc-arm-embedded/4.6/2011-q4-major) quasi mit 
Linaro gleichzusetzen? Linaro ist ja nur für Linux soweit ich das 
verstanden habe.

von Martin T. (mthomas) (Moderator) Benutzerseite


Lesenswert?

Micha schrieb:
> OK, danke für die Info. Im Endeffekt hinkt CodeSourcery also immer etwas
> hinterher - jedenfalls scheint es so (auch anhand der Versionsnummern).

Eher nicht. Es kann zwar sein, dass die Version von gnu.org höher ist, 
jedoch sind/waren viele Codesourcery-Leute in der Entwicklung des GCC 
beteiligt. Die von Codesourcery bereitgestellten Versionen enthalten 
manchmal Korrekturen und Erweiterungen, die in den "offiziellen" GNU 
Quellen noch nicht enthalten waren. Vor langer Zeit war das z.B. der 
Thumb2-Support, den es nur bei Codesourcery gab.

Allerdings scheint sich im Hintergrund etwas geändert zu haben, den 
obwohl Codesourcery von ARM mit der Fortentwicklung der GNU Tools für 
ARM betraut war, gibt es mit gcc-arm-embedded auf Launchpad eine 
vorkompilierte Toolchain die scheinbar von ARM direkt herausgegeben 
wird.

> Ist das oben verlinkte
> (https://launchpad.net/gcc-arm-embedded/4.6/2011-q4-major) quasi mit
> Linaro gleichzusetzen? Linaro ist ja nur für Linux soweit ich das
> verstanden habe.

Nein, es gibt einen Download "Windows Installer" einer "bare metal" 
Toolchain (arm-none-eabi), würde man mit der Toolchain Linux Programme 
erzeugen können, sollte der Prefix anders sein (arm-linux-...). Laut 
Webseite unterstützt die Toolchain Cortex-Cores. Ab ARM7TDMI inkl. 
Thumb/Thumbinterwort unterstützt werden, weiss ich nicht.

weitere Alternative u.a: DevkitARM aus DevkitPro, Yagarto

von Micha (Gast)


Lesenswert?

Martin Thomas schrieb:
>> Ist das oben verlinkte
>> (https://launchpad.net/gcc-arm-embedded/4.6/2011-q4-major) quasi mit
>> Linaro gleichzusetzen? Linaro ist ja nur für Linux soweit ich das
>> verstanden habe.

> Nein, es gibt einen Download "Windows Installer" einer "bare metal"
> Toolchain (arm-none-eabi), würde man mit der Toolchain Linux Programme
> erzeugen können, sollte der Prefix anders sein (arm-linux-...). Laut
> Webseite unterstützt die Toolchain Cortex-Cores.

Ich meinte: Linaro ist nur zur Entwicklung von ARM-SW unter Linux und 
auf Windows nicht lauffähig (außer vielleicht durch kompilieren der 
Sourcen, falls verfügbar).

Martin Thomas schrieb:
> weitere Alternative u.a: DevkitARM aus DevkitPro, Yagarto

Gibt es eine Empfehlung für eine bestimmte dieser Toolchains 
(CodeSourcery, GCC-ARM-embedded, DevkitARM, YAGARTO)? Wo liegen die Vor- 
und Nachteile im einzelnen, welche ist am aktuellsten? Spielt es 
überhaupt eine Rolle welche verwendet wird?

von Michael G. (let)


Lesenswert?

Die aktuellste Version ist 4.6-2012-q1 von Ende März. Gibt es für Linux 
und auch für Windows:

https://launchpad.net/gcc-arm-embedded/4.6
(rechts, grün hinterlegte links)

> Ist das oben verlinkte
> (https://launchpad.net/gcc-arm-embedded/4.6/2011-q4-major) quasi mit
> Linaro gleichzusetzen?
Nicht quasi, das ist die Linaro Toolchain. Allerdings das nicht mehr 
ganz aktuelle LTS Release. Spielt wahrscheinlich keine Rolle aber die 
2012-q1 enthält soweit ich weiß nur Bugfixes, also keine neuen und 
möglicherweise experimentellen Features. Daher benutze ich die zur Zeit. 
Ich habe aber lange  Codesourcery lite verwendet. Bis auf die Sache mit 
der STM32 Lib hatte ich damit keine Probleme. Kann sein dass ich die mit 
Linaro noch bekomme ;).

von Micha (Gast)


Lesenswert?

M. G. schrieb:
> Daher benutze ich die zur Zeit.
In Verbindung mit CoIDE oder Eclipse auf Linux oder Windows?

von Michael G. (let)


Lesenswert?

Mit CoIDE unter Windows (spiele gerade mit CoOS) aber vor allem unter 
Linux mit Eclipse. Eclipse benutze ich aber nur als Editor zusammen mit 
einem Makefile da ich unabhängig von einer IDE compilieren will (und zum 
Teil auch muß). Und ich verwende keine Debugger. Geflasht wird mit dem 
Bootloader.

Dieses STREXB/H Problem hatte ich mit Codesourcery gestern Abend 
übrigens auch mit einem LPC1766 Projekt. Es knallt bei einer Datei vom 
CMSIS. War ein Beispiel von Coocox für das ich ein Makefile angepasst 
habe damit ich es auch unter Linux bauen kann. Tja und unter Linux ist 
gerade noch die Codesourcery Toolchain als Default eingerichtet.
Naja, es dürfte auch bald eine neue Version der CS Toolchain geben.

von Micha (Gast)


Lesenswert?

Ah, ok. Ich habe mich gestern an devkitARM mit Eclipse unter Windows 
versucht, bin aber gescheitert. Werde es jetzt mal mit 
gcc-arm-embedded/Eclipse angehen, da bin ich schon etwas weiter 
gekommen. CoIDE ist derzeit leider (noch) nichts für mich, da mein 
STM32L151xx nicht unterstützt wird... Prinzipiell macht es aber einen 
sehr guten Eindruck.

von Maxx (Gast)


Lesenswert?

Micha schrieb:
> STM32L151xx nicht unterstützt wird... Prinzipiell macht es aber einen
> sehr guten Eindruck.

Du kannst in der CoIDE auch einen anderen STM32 einstellen und dann per 
Hand die Änderungen zB. der Speicherbereiche vornehmen. Ordner zB. für 
die passende LIB kannst Du im Workspace erstellen. Die Pfade zu den INCs 
und die globalen Symbols kannst Du auch einstellen.

von tom (Gast)


Lesenswert?

Jepp, Danke an den TO für das Beispiel !

In der Debug Perspektive ist bei mir leider nix in der Peripherals view 
zu sehen. Fehlt da noch der support für das F4 derivat - und alle 
anderen haben die gleiche leere view, oder habe ich etwas noch nicht 
vollständig konfiguriert ?


gruss, tom.

von Micha (Gast)


Lesenswert?

@ Matthias K. (matthiask)
Woher stammt die startup_stm32f4xx.c? Bringt CoIDE die mit?

von Matthias K. (matthiask)


Lesenswert?

Micha schrieb:
> Woher stammt die startup_stm32f4xx.c? Bringt CoIDE die mit?

Ja, die wird nachgeladen, wenn Du in der Repository / Peripherals das 
"CMSIS BOOT for STM32F4x series" einbindest. Wenn man die einmal hat, 
sollte man sie sichern, denn man kann sie später auch per Hand in 
anderen Projekten verwenden.

CooCox verwendet als Startup eine C-Datei, während die meisten anderen 
hierfür eine ASM Datei verwenden. Ist im Prinzip egal, es muss nur alles 
passend zum Linkerscript sein.

von Matthias K. (matthiask)


Lesenswert?

Gibt es eine Möglichkeit das Linker-Script in der CoIDE zu erweitern? 
Ich kann es zwar editieren, aber die Änderungen sind nach jeden 
Buildprozess wieder weg.

von AVerr (Gast)


Lesenswert?

Matthias K. schrieb:
> Gibt es eine Möglichkeit das Linker-Script in der CoIDE zu erweitern?
> Ich kann es zwar editieren, aber die Änderungen sind nach jeden
> Buildprozess wieder weg.

Das Problem hatte ich auch ... die Datei mit Schreibschutz zu versehen 
war bisher der einzige Workaround, den ich gefunden habe ...

von Matthias K. (matthiask)


Lesenswert?

AVerr schrieb:
> Das Problem hatte ich auch ... die Datei mit Schreibschutz zu versehen
> war bisher der einzige Workaround, den ich gefunden habe ...

Ich habe es jetzt so gelöst, dass ich einfach bei "Locate Link File" 
eine andere eigene .ld eingebunden habe. Die lässt das System dann in 
ruhe. Die link.ld und memory.ld bleibt dann unbenutzt.

von AVerr (Gast)


Lesenswert?

Matthias K. schrieb:
> AVerr schrieb:
>> Das Problem hatte ich auch ... die Datei mit Schreibschutz zu versehen
>> war bisher der einzige Workaround, den ich gefunden habe ...
>
> Ich habe es jetzt so gelöst, dass ich einfach bei "Locate Link File"
> eine andere eigene .ld eingebunden habe. Die lässt das System dann in
> ruhe. Die link.ld und memory.ld bleibt dann unbenutzt.

Interessant ... ich hatte auch eine eigene angegeben und die wurde auch 
jedesmal beim Kompilieren überschrieben :(

Naja, eine andere Frage: Gibt es die Möglichkeit eines "Batch Build", 
also das selbe Programm z.B. mit unterschiedlichen Defines mehrmals ( am 
besten mit nur einem Knopfdruck ) zu kompilieren ?
Habe da was mit I2C gemacht und bei den Slaves unterscheidet sich 
eigentlich nur die Adresse ...

von Matthias K. (matthiask)


Lesenswert?

AVerr schrieb:
> Naja, eine andere Frage: Gibt es die Möglichkeit eines "Batch Build",
> also das selbe Programm z.B. mit unterschiedlichen Defines mehrmals ( am
> besten mit nur einem Knopfdruck ) zu kompilieren ?

Das würde mir nur ein spezielles Makefile einfallen.

von Uwe (Gast)


Lesenswert?

Könnte &B als Prefix für Binär funktionieren ?
Ich glaube &H war glaube ich für Hex und &O für Oktal.
Is aber schon lange her (18 Jahre)

von Michael K. (Gast)


Lesenswert?

das ist echt klasse, hab coIDE und deinen Workspace etc installiert.
aber irgendwie funktioniert das linken bei mir noch nicht:
1
...
2
[cc] Starting link
3
[cc] arm-none-eabi-gcc -O0 -nostartfiles "-Wl,-Map=Blinky mit SysTick.map" -mcpu=cortex-m4 -mthumb "-LC:\CooCox\CoIDE\workspace\Blinky mit SysTick" -Wl,--gc-sections "-Wl,-TC:\CooCox\CoIDE\workspace\Blinky mit SysTick\link.ld" -g -o '"Blinky mit SysTick.elf"' ..\obj\stm32f4xx_syscfg.o ..\obj\stm32f4xx_sdio.o ..\obj\stm32f4xx_hash.o ..\obj\stm32f4xx_cryp_aes.o ..\obj\stm32f4xx_hash_sha1.o ..\obj\stm32f4xx_usart.o ..\obj\stm32f4xx_pwr.o ..\obj\stm32f4xx_can.o ..\obj\stm32f4xx_wwdg.o ..\obj\stm32f4xx_hash_md5.o ..\obj\stm32f4xx_dac.o ..\obj\startup_stm32f4xx.o ..\obj\stm32f4xx_crc.o ..\obj\stm32f4xx_iwdg.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o ..\obj\stm32f4xx_it.o ..\obj\stm32f4xx_adc.o ..\obj\stm32f4xx_dcmi.o ..\obj\stm32f4xx_cryp_des.o ..\obj\stm32f4xx_cryp.o ..\obj\stm32f4xx_fsmc.o ..\obj\stm32f4xx_gpio.o ..\obj\stm32f4xx_flash.o ..\obj\system_stm32f4xx.o ..\obj\stm32f4xx_dma.o ..\obj\stm32f4xx_spi.o ..\obj\stm32f4xx_i2c.o ..\obj\stm32f4xx_rng.o ..\obj\stm32f4xx_exti.o ..\obj\misc.o ..\obj\stm32f4xx_rtc.o ..\obj\stm32f4xx_cryp_tdes.o ..\obj\stm32f4xx_tim.o ..\obj\stm32f4xx_dbgmcu.o
4
Program Size:
5
   Der Befehl "C:\Program" ist entweder falsch geschrieben oder
6
   konnte nicht gefunden werden.
7
   Result: 1
8
   Der Befehl "C:\Program" ist entweder falsch geschrieben oder
9
   konnte nicht gefunden werden.
10
   Result: 1
11
   Der Befehl "C:\Program" ist entweder falsch geschrieben oder
12
   konnte nicht gefunden werden.
13
   Result: 1
14
   Der Befehl "C:\Program" ist entweder falsch geschrieben oder
15
   konnte nicht gefunden werden.
16
   Result: 1
17
18
BUILD SUCCESSFUL

was will der denn mit c:\Program? ich hab alles genau so eingestellt wie 
du es beschrieben hattest..

von Formel (Gast)


Lesenswert?

Das duerfte das beruehmte "C:\Program 
Files"-Leerzeichen-im-Namen-Problem
sein....

von Michael K. (Gast)


Lesenswert?

ja, vermutlich... ich find nur nirgends ein "Program Files" in irgend 
einer Einstellung oder so. sonst könnte man das ja einfach ändern.

von Matthias K. (matthiask)


Lesenswert?

In welchem Verzeichnis liegt GCC-ARM?

Select Toolchain Path korrekt angegeben?

von Tim (Gast)


Lesenswert?

Wie bindet man denn die ST Standard Peripheral Library für den 
STM32F4... im CoIDE ein?
Für die kleineren STM32F1... ist das anscheinend schon drin.
Danke!

von Tim (Gast)


Lesenswert?

Ok, ich habe im obigen Beispiel (fertiger workspace) gefunden, wie die 
Lib eingebunden wurde. Kann ich das wirklich nur projektweise im CoIDE 
machen? Gibt es keine globale Einstellung?

von Matthias K. (matthiask)


Lesenswert?

Tim schrieb:
> Gibt es keine globale Einstellung?

In der jetzigen Version offenbar noch nicht. Die F4-Lib ist auch noch 
ziemlich beta. Das einbinden ist in wenigen Minuten erledigt, sollte man 
als ARM-Programmierer doch hinbekommen...

von Tim (Gast)


Lesenswert?

Ok danke.
Fange ja gerade erst an...
Braucht man für den ST-Link noch extra Treiber?
Ich kann zwar das Beispiel von oben kompilieren, aber nicht auf das 
Discovery aufspielen. Jumper CN3 sind beide gesteckt.
Error: Connect failed, check config and cable connection

von Tilo (Gast)


Lesenswert?

Die Treiber für den ST-Link hast du installiert? Damit ging es bei mir 
auf Anhieb.

An den ST-Libraries bin ich auch gerade dran. Ich habe ewig mit der 
Audio-Demo gekämpft bis ich bemerkt habe, dass in CooCox SystemInit() 
nicht standardmäßig ausgeführt wird :)

von Tim (Gast)


Lesenswert?

Jetzt geht es.
Habe hier das Tool installiert, da war der Treiber bei.
Musste aber dann doch noch mal händisch im Gerätemanager den Treiber 
suchen und installieren.
http://www.st.com/internet/evalboard/product/219866.jsp#SW_DRIVERS -> 
STM32 ST-LINK utility
Vielleicht geht es auch anders/einfacher, jedenfalls bin ich soweit mit 
der Toolchain erst einmal zufrieden.
Mit dem Beispiel ein relativ einfacher Start.
Das hier hat auch geholfen:
http://diller-technologies.de/stm32.html#ide

Mich hatten bisher immer die Demoversionen der komerziellen Tools 
angeschreckt, so ist alles Freeware.

von Matthias K. (matthiask)


Lesenswert?

Tim schrieb:
> Das hier hat auch geholfen:
> http://diller-technologies.de/stm32.html#ide

Interessantes Dokument.

von Tilo (Gast)


Lesenswert?

Genau das Ding meinte ich. Zumindest mir geht es so, dass ich auf der 
ST-Seite ziemlich wühlen muss, bis ich die Daten bzw. Dokumente finde, 
die ich haben will.

Hat sich einer von euch schon an die USB-Sachen ran gemacht?

von Tim (Gast)


Lesenswert?

Hab bis jetzt nur ein bisschen im Blinky-Programm rumgespielt.
Nix Weltbewegendes.
Gerade eben habe ich mal versucht den CooCox HD44780 Treiber 
einzubinden, aber das scheint für den F4 noch nicht unterstützt zu 
werden.
Zumindest lese ich das so aus der Hilfe und es fehlen auch die ganzen 
Includes aus der CooCox Lib.

von Tim (Gast)


Lesenswert?

Tilo Lutz schrieb:
> Genau das Ding meinte ich. Zumindest mir geht es so, dass ich auf der
> ST-Seite ziemlich wühlen muss, bis ich die Daten bzw. Dokumente finde,
> die ich haben will.

Geht mir auch so. Zumindest bei den Treibern und der Standard Lib.
Die Manuals sind ja beim Prozessor gut sortiert.

von Tilo (Gast)


Lesenswert?

und gerade bei der USB-Lib gibt es verschiedene Versionen.
Ich habe eine Version 3.3 von 2011 und eine Version 2.1 von 2012 
gefunden. Die Version 2.1 von 2012 ist definitiv aktueller und auch die, 
die dem Discovery Firmwarepaket beiliegt.
Ich habe ewig gesucht, bis ich die passende Dokumentation gefunden habe. 
Das Dokument heißt UM1021.

von Tilo (Gast)


Angehängte Dateien:

Lesenswert?

So langsam finde ich mich in CooCox zurecht.

Ich habe zwei Demos angehängt. "Try" ist eine Umsetzung der 
Audio-Recorder-Demo welche der ST-Firmware für das Board beiliegt. Der 
Beschleunigungssensor hat bei mir nur Mist gemacht, daher habe ich ihn 
auskommentiert. Die USB-Variante lässt sich kompilieren, allerdings 
konnte ich die mangels passendem USB-Kabel noch nicht testen. Die Demo 
aus dem interne Flash läuft und man hört die WAV in einer 
Endlosschleife.

"Try2" soll eine Demo mit USB und Audio werden. Ich wollte das Board 
über die USB-Audio-Klasse als externe Soundkarte verwenden. Leider tut 
das noch nicht richtig. Folgendes funktioniert:
* Das Baord wird als USB-Soundkarte mit Stereo und 48kHz erkannt.
* Ich konnte am Speicher erkennen, dass wenn die Soundkarte genutzt 
wird, Daten per USB im FIFO gespeichert werden.
* Wenn vom PC die Wiedergabe beendet wird, wird die entsprechende 
Funktion im Code aufgerufen, die Steuerung scheint also zu 
funktionieren.
* Der Audiocodec wird genauso wie in "Try" initialisiert und der 
DMA-Transfer korrekt gestartet.

Leider kommt aus dem Codec nichts heraus. Während dem Dubuggen habe ich 
zwar hören können, dass der Verstärker ab und zu aus und eingeschaltet 
wurde und einmal habe ich auch ein kurzes Geräusch hören können, 
allerdings konnte ich das bis jetzt nicht reproduzieren.

Eventuell hat von euch einer eine Idee wo es klemmen könnte?

Ich würde mich freuen wenn mir jemand weiterhelfen könnte.

von Tim (Gast)


Lesenswert?

Hey Tilo,

bei mir kompiliert das Beispiel aus Try.zip nicht.
Es kann usb_conf.h, windows.h, usbh_hid_mouse.h und usbh_hid_core.h 
nicht gefunden werden.

Für usb_conf.h finde ich nur ein usb_conf_template.h

Ne Idee?

Gruß
Tim

von Tim (Gast)


Lesenswert?

Ich habe noch "\STM32_USB_HOST_Library\Class\HID\inc" zu den include 
paths hinzugefügt.
Jetzt fehlt nur noch die usb_conf.h, die du vermutlich vergessen hast.
Die windows.h finde ich auch nicht, sie scheint irgendwas mit dem FAT zu 
tun zu haben.

von Tilo (Gast)


Lesenswert?

Hm ... versucht du gerade die USB oder die Flash Version?

von Tim (Gast)


Lesenswert?

Ich weiß nicht genau, was die USB Variante eigentlich machen soll...
Was ich gemacht habe: Ich habe die Try.zip entpackt und das Verzeichnis 
Try in meinen CoIDE workspace kopiert. Dann habe ich die Try.cob 
geöffnet und versucht zu kompilieren.

von Tilo (Gast)


Lesenswert?

OK, schon seltsam.
Was steht denn bei dir unter Project -> Configuration -> Defined 
Symbols?
Ich habe die Vermutung, dass das alles leer ist.

von Tim (Gast)


Lesenswert?

Ne, da steht eine ganze Menge (7 Einträge). Blöd, dass man hier nicht 
copy'n'paste machen kann. Eigentlich müsste doch alles in dem workspace 
enthalten sein.
Finde ich auch merkwürdig.

von Tim (Gast)


Lesenswert?

Aber wie gesagt, es gibt die usb_conf.h nicht.
Wo liegt sie denn bei dir?

von Tilo (Gast)


Lesenswert?

Hm, Ok. Ich glaub ich werde versuchen eine Version zusammenzupacken, in 
der das ganze USB-Zeug fehlt.

von Tim (Gast)


Lesenswert?

Ist aber auch nicht so wichtig.
Ich wollte dein Beispiel einfach nur ausprobieren und bei mir ging es 
eben nicht auf Anhieb. Daher wollte ich dir nur ein Feedback geben, da 
es anderen vielleicht genauso gehen könnte. Ich persönlich bin 
vermutlich noch nicht so weit, um mit dem Audio und USB Zeugs rum 
zumachen...

von Tilo (Gast)


Lesenswert?

Danke für das Feedback.
Ich habe gestern versucht über eine Sinustabelle per DDS ein 1kHz Signal 
aus dem CODEC auszugeben. Leider hat das nicht so geklappt. Ich habe mit 
einem Oszi nachgemessen, es wird überhaupt nichts zum CODEC geschickt.

Ich werde versuchen ein funktionierendes Sinusbeispiel zu schreiben und 
das dann posten. Ich vermute dann geht auch die USB-Version.

von Tilo (Gast)


Lesenswert?

Kleines update:

Leider kam ich bisher noch nicht dazu etwas mit dem CODEC zu machen. Ich 
habge doch gemerkt, dass ich den Chip erst noch besser kennenlernen 
muss. Die Library von ST ist zwar nett, nur wenns klemmt wird es 
schwierig den Fehler zu finden.

Aktuell bin ich gerade dabei einen externen Audiocode in Betrieb zu 
nehmen.

Wichtiger Tip für alle: Debuggen im Ram scheint problematisch zu sein! 
Ich habe im Ram bei Verwendung der StdLib einen Turbo-I2C mit 1MHz statt 
100kHz. Der Grund dafür war, dass die Taktkonfiguration nicht richtig 
verarbeitet wurde. Nach dem ich zurück ins Flash gegangen bin haben die 
Timings wieder gestimmt.

von Rolf D. (rolfdegen)


Lesenswert?

Hallo

Ich habe gesten mein STM32F4-Discovery Board bekommen und mit TrueStudio 
getestet. Alles funktioniert problemlos.

Jetzt wollte ich das ganze mit CoIDE testen (wegen der 
Code-Längenbeschränkung) und habe damit leider ein paar Problemchen.

Ich habe zuerst GCC-ARM (Version "arm-none-eabi-gcc-4_6-20111208.exe 
(md5)") und danach CoIDE (Version 1.2.4) installiert und das 
CoIDE_workspace von Matthias ausprobiert, indem ich es unter Open 
Projekt in CoIDE geladen habe.

Wenn ich dann auf Debug gehe erhalte ich folgende Fehlermeldung:

C:\Program Files (x86)\CooCox\CoIDE>"C:/Program Files 
(x86)/CooCox/CoIDE/bin\coflash.exe" program  --adapter-name=ColinkEx 
--port=SWD --adapter-clk=1000000 --erase=affected --driver="C:/Program 
Files (x86)/CooCox/CoIDE/flash/STM32F4xx_1024.elf"  0<Project 
1>"C:/Program Files (x86)/CooCox/CoIDE/workspace/Blinky mit 
SysTick\Debug/bin\Blinky mit SysTick.bin"
Das System kann die angegebene Datei nicht finden.
Program Download Failed !

Im Debug-Konfigurationsmenü ist ST-Link auch nicht vorhanden. Ich habe 
es auf ColinkEx und SWD eingestellt. Einen ST-Link-Adapter besitze ich 
nicht. Der wird auch nicht benötigt oder?

Wie müssen die Jumper auf CN3 auf gesetzt sein. Auf Diskovery oder 
ST-Link ?

Wie genau stell ich in CoIDE 1.2.4 den Pfad für GCC-ARM ein.

Im Voraus vielen dank für eure Hilfe.

Gruß Rolf

von Simon H. (simi)


Lesenswert?

Rolf Degen schrieb:
> Der wird auch nicht benötigt oder?

Nein.

Rolf Degen schrieb:
> Wie müssen die Jumper auf CN3 auf gesetzt sein. Auf Diskovery oder
> ST-Link ?

Auf Discovery. Wenn Du sie auf ST-Link setzt, hast Du einen Stand-alone 
ST-Link und kannst Deine eigene Platine damit debuggen (über die 
Stiftleiste).

Rolf Degen schrieb:
> C:/Program Files (x86)/CooCox/CoIDE/workspace/Blinky mit
> SysTick\Debug/bin\Blinky mit SysTick.bin

Ich würde mal versuchen, die Leerzeichen aus dem Pfad zu verbannen.

Gruäss
Simon

von Matthias K. (matthiask)


Lesenswert?

Rolf Degen schrieb:
> "Blinky mit SysTick.bin"

Ist die vorhanden?

von Peter (Gast)


Lesenswert?

Liegt bestimmt an den Leerzeichen im Pfad.
Siehe auch:
Beitrag "Re: STM32-Discovery mit CoIDE"

von Rolf D. (rolfdegen)


Lesenswert?

"Blinky mit SysTick.bin" ist nicht vorhanden.

Wenn ich auf Projekt Build gehe kommt "BUILD FAILED
A pseudo attribute name is expected.
Total time: 0 seconds"

????


Die IDE ist auf meinem PC richtig installiert unter C:\Program 
Files(x86)\CooCox\CoIDE

von Matthias K. (matthiask)


Lesenswert?

Bei mir (XP) klappt es auch mit Leerzeichen.

Leg den Workspace mal in den Dokumentebereich. Vielleicht ein 
Rechteproblem.

von Rolf D. (rolfdegen)


Lesenswert?

Das gleiche Problem. Ich arbeite unter Win7 64Bit. Die "Blinky mit 
SysTick.bin" ist auch im richtigen Verzeichnis.

Fehlermeldung beim debugen:

C:\Program Files (x86)\CooCox\CoIDE>"C:/Program Files 
(x86)/CooCox/CoIDE/bin\coflash.exe" program  --adapter-name=ColinkEx 
--port=SWD --adapter-clk=1000000 --erase=affected --driver="C:/Program 
Files (x86)/CooCox/CoIDE/flash/STM32F4xx_1024.elf"  0<Project 
1>"C:/Users/rolli/Documents/CoIDE_workspace/CoIDE workspace/Blinky mit 
SysTick\Debug/bin\Blinky mit SysTick.bin"
Program Download Failed !


Im Quelltext ist auch ein Fragezeichen bei "#include <stddef.h>"

von Rolf D. (rolfdegen)


Lesenswert?

Ich habe das ganze noch einmal auf meinen Laptop installiert, aber 
leider mit dem gleichen.

von Rolf D. (rolfdegen)


Lesenswert?

Hallo

Ich glaube das Problem gefunden zu habe. In der CoIDE wird der Kernel 
fuer den STM32F4 nicht mitinstalliert. Waehle ich einen anderen 
Prozessor aus zB aus der M3-Family funktioniert zumindest das debugen. 
Ich schau mal im INet ob ich was finde.

Ich melde mich dann spaeter noch einmal hier.

GruSs Rolf

von Rolf D. (rolfdegen)


Lesenswert?

Hallo

Ich habe die neue Version 1.4.2 von CoIDE wieder deinstalliert und die 
aeltere Version 1.4.1 installiert. Jetzt funktionierts und die Led's auf 
dem Board flackern lustig. Danke nochmals fuer eure super Unterstuetzung 
:)

MfG Rolf

von Matthias K. (matthiask)


Lesenswert?

Rolf Degen schrieb:
> Ich habe die neue Version 1.4.2 von CoIDE wieder deinstalliert und die
> aeltere Version 1.4.1 installiert. Jetzt funktionierts und die Led's auf
> dem Board flackern lustig.

Gut zu wissen. Ich habe auch V 1.4.1 im Einsatz.

von Rolf D. (rolfdegen)


Lesenswert?

Hallo Matthias

Wenn ich in deinem Programmcode etwas abändere und dann auf Build oder 
Rebuild gehe (der Unterschied ist mir nicht bekannt), dann kommt es zu 
dieser Fehlermeldung:

"GCC HOME: C:\Program Files (x86)\arm-none-eabi-gcc-4_6\bin
compile:
    [mkdir] Skipping D:\Download and Data\Download\STM32\Projekte\CoIDE 
workspace\Blinky mit SysTick\Debug\bin because it already exists.
    [mkdir] Skipping D:\Download and Data\Download\STM32\Projekte\CoIDE 
workspace\Blinky mit SysTick\Debug\obj because it already exists.

BUILD FAILED
Output filename conflict: startup_stm32f4xx.o would be produced from 
D:\Download and Data\Download\STM32\Projekte\CoIDE workspace\Blinky mit 
SysTick\cmsis_boot\startup\startup_stm32f4xx.c and startup_stm32f4xx.c
Total time: 0 seconds".

von Matthias K. (matthiask)


Lesenswert?

Rolf Degen schrieb:
> D:\Download and Data\Download\STM32\Projekte\CoIDE workspace\Blinky mit
> SysTick\cmsis_boot\startup\startup_stm32f4xx.c and startup_stm32f4xx.c

Du hast diese Datei (startup_stm32f4xx.c) doppelt, das geht nicht.

von Rolf D. (rolfdegen)


Angehängte Dateien:

Lesenswert?

Hallo Matthias

Wenn ich die doppelten Dateien löschen und den CMSIS Core und CMSIS Boot 
für den Cortex M4 in der Components-Auswahl selektiere, werde diese 
wieder automatisch in das Projekt eingefügt (siehe Bild). ????

von Rolf D. (rolfdegen)


Lesenswert?

So langsam steigt mein Frustpegel und Blutdruck. Ich bin kurz davor, den 
ganzen Krempel mit dem STM32F4 Discovery Board zu vergessen und mich 
wieder meinem "lahmen" ATxmega-Projekten zu widmen. Im Vergleich zu 
CoIDE war die Einrichtung und Einarbeitung mit Atmel Studio6 ein 
Kinderspiel.

Ich versteh auch nicht, warum STMicroelectronics keine eigene 
Entwicklungsumgebung für ihre schnellen Prozessor-Boards anbietet, so 
wie es Atmel macht. Es muss ja nicht kostenlos sein. Aber die IDE's von 
Keil und Co. sind für uns Hoppyisten einfach "unbezahlbar" und 
Code-Begrenzung auf 32KB ist bei anspruchsvolleren Projekten wzB die 
"Audio playback and recording" Demo von ST auch schnell überschritten. 
Für eine kleine Led-Spielerei reicht es natürlich..

Ich habe das Board jetzt in die Schublade gelegt und warte mal ab was da 
weiter kommen wird.


Nochmals vielen Dank für eure Unterstützung

MfG Rolf

von Matthias K. (matthiask)


Lesenswert?

Bisher haben es alle zum laufen bekommen. Wenn Du hier schon aufgibst, 
wird das mit ARM wohl nichts. Warte mal ab, bis Du die 1315 Seiten des 
Usermanuals vor Dir hast. Die CoIDE F4 Unterstützung ist noch recht 
frisch, erst ab 1.4.1 überhaupt integriert. Man sollte möglichst wenig 
mit der Regpository rumspielen, man kommt komplett ohne diese aus. Auch 
die STM FW-Lib ist noch ziemlich RC. Für den Einstieg ist die F1 Serie 
besser geeignet. Da gibt es unzählige Beispiele und Anleitungen im Net.

von Tim (Gast)


Lesenswert?

@Rolf Degen:
Also ich hatte das Debuggen noch nicht ausprobiert, aber das 
funktioniert mit dem Workspace aus dem 1. Post bei mir auch.

Ich musste den ST Link Treiber manuell nachinstallieren.
Siehe auch:
Beitrag "Re: CooCox CoIDE mit STM32F4-Discovery Board"
Vielleicht hilft dir auch das Tutorial von Moritz Diller weiter.

Ansonsten benutze ich CoIDE 1.4.1 und habe es nach C:\CooCox\CoIDE 
installiert und den Workspace nach c:\CooCox\CoIDE\workspace gelegt.
Das Flash Tool ist bei mir unter C:\Program Files (x86)\CooCox\CoFlash 
installiert.

Bis auf den Treiber, war es ein recht leichter Start.
Schade, wenn du schon aufgibst.
Ich finde es gut, dass man in letzter Zeit immer mehr zu den STM32 
liest.

von Eric (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, ich habe eine Frage zum CooCox und der Möglichkeit des Virtuellen 
Com Ports(VCP) (Code unter http://mcu.cz/comment-n2800.html mit Chrome 
kann man die Seite ins Deutsche übersetzen und einigermaßen verstehen). 
Unter dem Atollic True Studio läuft es ganz prima. Ich habe es jetzt in 
ein Projekt für die CooCox IDE mit dem GCC verpackt und es baut auch 
wunderbar. Nur leider findet er den VCP nicht. Mit dem Debugger habe ich 
noch keinen Fehler gefunden, es wäre aber super wenn es klappen würde da 
man so die 32Kb Beschränkung los wird. Gebaut braucht alleine der VCP 
mit dem drum herum optimiert so 10Kb. Damit sind alle größeren Libs so 
wie die Cmsis DSP Libs passe. Ich hänge mein Projekt mal an, vielleicht 
hat jemand eine Idee. Das schöne wäre dass man auf super einfache Art 
und Weise mit dem Discoveryboard ohne irgendwelche Zusatzhardware 
kommunizieren kann.

Vielen Dank und viele Grüße

Eric

von 900ss (900ss)


Lesenswert?

Rolf Degen schrieb:
> und dann auf Build oder
> Rebuild gehe (der Unterschied ist mir nicht bekannt)

Rolf, wenn ich das lese und auch die Fehler die du sonst beim 
kompilieren bekommst, dann wird sehr eutlich, dass du die absoluten 
Basics zum kompilieren von C Projekten nicht begriffen hast. Aber es muß 
jetzt natürlich schon ein Cortex sein.

Ehrlich: Nimm dir einen AVR (ein Tiny reicht) und lerne erstmal das 
Bedienen deiner Werkzeuge. Und wenn du die beherrscht, verschwinden auch 
die Fehler, die du oben heschildert hast. Läßt du dir hier alles 
vorkauen, scheiterst du beim nächsten eigenen Projekt. Versprochen!

von Rolf D. (rolfdegen)


Lesenswert?

Hallo 900ss D.

Learning by Doing ist auch mein Motto. Ich wollte das "Werkzeug" 
eigentlich nur benutzen und nicht selber herstellen.

PS: Ich habe noch nicht ganz aufgegeben, brauche ersteinmal ein wenig 
Schlaf :)

Bis die Tage und gute Nacht. Gruß Rolf

von Rolf D. (rolfdegen)


Lesenswert?

Tim schrieb:
> @Rolf Degen:
> Also ich hatte das Debuggen noch nicht ausprobiert, aber das
> funktioniert mit dem Workspace aus dem 1. Post bei mir auch.

Hallo Tim
Ich hatte den Workspace von Matthias in CooCox 1.4.1 auch am laufen und 
auch die Debug-Funktion klappte ohne Probleme. Nach der Einrichtung des 
Workspace in einem anderen Verzeichnis fingen die Probleme an. Werde es 
Morgen noch einmal im dem Original Workspace Verzeichnis von CooCox auf 
C: versuchen.

MfG Rolf

von Rolf D. (rolfdegen)


Angehängte Dateien:

Lesenswert?

Hallo zusammen

Ich wollte mich noch einmal melden und euch mitteilen, das der 
CoIDE_Workspace von Matthias jetzt auch bei mir funktioniert. Hat bei 
mir vielleicht etwas länger gedauert, aber wie sagt man so schön.. 
Mühsam ernährt sich das Eichhörnchen :-)

Ich bin wie folgt vorgegangen:
Zuerst habe ich die doppelt vorhandenen Files "startup_stm32f4xx.c" und 
"system_stm32f4xx.c" im Projektpfad von CoIDE deaktiviert. Danach habe 
ich den Namen des Projekts von "Blinky mit SysTick" auf "Blinky" ohne 
Leerzeichen abgeändert. Anschließend habe ich im Configurations-Menü 
unter "Locate Link File" den Eintrag auf den neuen Namen des 
Projekt-Ordner abgeändert (siehe Bild).

MfG Rolf

von Rolf D. (rolfdegen)


Lesenswert?

Hallo zusammen

Hier ein interessanter Link für alle, die sich für Sound auf dem STM32F4 
Discovery Board interessieren.

FM-Soundmodul 16stimmig polyphon, Samplingrate 48KHz und Midi

Link: http://d.hatena.ne.jp/pcm1723/20120418/1334746384
Download: http://www.geocities.jp/pcm1723/html2/download.htm

MfG Rolf

von Rolf D. (rolfdegen)


Lesenswert?

Hallo zusammen

Ich habe mir mal die Mühe gemacht und ein kleines Tutorial für den 
Einstieg mit dem STM32F4 Discovery Board geschrieben. Kann man sich hier 
ansehn: http://www.cczwei-forum.de/cc2/thread.php?threadid=6246

Gruß Rolf

von Matthias K. (matthiask)


Angehängte Dateien:

Lesenswert?

Rolf Degen schrieb:
> FM-Soundmodul 16stimmig polyphon, Samplingrate 48KHz und Midi

Als Anlage das Projekt angepasst als Workspace für CooCox (1.4.1).
Es läuft ohne Hardwarekonfiguration, nur Kopfhörer dran.

von Rolf D. (rolfdegen)


Lesenswert?

Hallo Matthias

Habe mir die Demo in CoIDE geladen und aufs STM32F4 Discovery Board 
übertragen. Was mir sofort aufgefallen ist, das die Musik zu langsam 
abgespielt wird. Ich weis nicht woran es liegen könnte. Die PLL-Werte 
für den Systemtakt in der "system_stm32f4xx.c" sind aber richtig (PLL_M 
8 und PLL_N 336). Der Configurationseintrag in "Defined symbols" ist 
auch korrekt (HSE_CLOCK=8000000).

So sollte die Demo klingen:
http://soundcloud.com/rolfdegen/st32mf4-demo-02

Hier ein paar Demosounds vom Discovery:
http://soundcloud.com/rolfdegen/st32mf4-demo-03


Habe jetzt auch die Version 1.4.2 von CoIDE am laufen. Wenn man ein 
neues Projekt anlegt, muss man nach der Auswahl des Prozessors ein paar 
Sekündchen warten, bevor die Core-Library für den Cortex M4 zur 
Verfügung steht. Das habe ich immer übersehen.

Gruß Rolf

von Matthias K. (matthiask)


Lesenswert?

Rolf Degen schrieb:
> was mir sofort aufgefallen ist, das die Musik zu langsam
> abgespielt wird. Ich weis nicht woran es liegen könnte. Die PLL-Werte
> für den Systemtakt in der "system_stm32f4xx.c" sind aber richtig (PLL_M
> 8 und PLL_N 336). Der Configurationseintrag in "Defined symbols" ist
> auch korrekt (HSE_CLOCK=8000000).

Ist mir später auch aufgefallen. HSE_CLOCK=8000000 ist natürlich falsch. 
Es muss "HSE_VALUE=8000000" heisen. Dann läuft es mit der richtigen 
Geschwindigkeit.

von Thomas R. (Gast)


Lesenswert?

Hallo,
bei mir läuft es auch zu langsam.
In welchem Fie steht denn "HSE_CLOCK=8000000"?
Ich habe alle verdächtigen *.c und *.h -Files durchsucht und das nicht 
gefunden.

von Micha (Gast)


Lesenswert?

Thomas R. schrieb:
> In welchem Fie steht denn "HSE_CLOCK=8000000"?
Lies nochmal den Post vor deinem.

von Thomas R. (Gast)


Lesenswert?

#define Fie File

von Matthias K. (matthiask)


Lesenswert?

HSE_VALUE=8000000

Als globales Symbol in der Projektkonfiguration.

von Rolf D. (rolfdegen)


Lesenswert?

Hallo Matthias

Danke fuer deinen Hinweis und die Anpassung an CoIDE. Manchmal sieht man 
den Wald vor lauter Baeumen nicht :-)

LG Rolf

von Thomas R. (Gast)


Lesenswert?

Hallo,
inzwischen läuft das Projekt von Mathias K mit der richtigen 
Geschwindigkeit. Besten Dank für diesen Thread!!!

Jetzt habe ich mein erstes eigenes CooCox-Projekt für das STM32F4-Board 
gestartet.
Ich möchte vorerst nur ein HD44780-Display ansteuern.
Dazu habe ich den HD44780-Treiber angekickt, weiter nichts.
Die main() wird mit einer endless-loop automatisch angelegt.
Beim Compilieren wird der ganze Rattenschwanz von *.c und *.h-Files, die 
der HD44780-Treiber für sich braucht, nicht gefunden.
Es beginnt mit "xhw_types.h not found".
Die ganzen vermissten *.c und *.h-Files befinden sich in den Tiefen der 
CooCox-Directory - und da unter dem Nuvoton-Verzeichnis.
Ich habe angefangen, die Include-Directories zu erweitern, dann kommt 
der Compiler immer ein Stückchen weiter bis zum nächsten vermissten File 
... das wird aber eine unendliche Geschichte.
Ich hatte erwartet, dass sich die IDE durch das Einbinden eines Treibers 
(hier HD44780) entweder Kopien aller benötigten *.c und *.h-Files in das 
Projektverzeichnis zieht oder die Include-Verzeichnisse entsprechend 
erweitert.
Tut sie aber nicht.

Mache ich irgendwas falsch?

von Matthias K. (matthiask)


Lesenswert?

Thomas R. schrieb:
> die Include-Verzeichnisse entsprechend
> erweitert.
> Tut sie aber nicht.

Das geht nicht automatisch. Du musst alle Ordner angeben, wo .h Files 
drin sind, sofern sie benötigt werden. Alternativ geht auch in den 
jeweiligen C-File beim Include der .h Datei einen Pfad mit anzugeben.

Ich kenne das auch, dass man bei neuen Projekten das compilieren und 
linken nur Schritt für Schritt hinbekommt.

von Thomas R. (Gast)


Lesenswert?

Danke!
Bei grösseren Projekten kann das Zusammenklicken der vielen 
Include-Pathes aber ganz schön aufwendig werden.
Siehst du eine Möglichkeit, die Include-Pathes in einem Textfile zu 
speichern und dieses File dann von CooIDE zu verwenden?
Dies wäre für die Übernahme von vielen Include-Pathes in neue Projekte 
doch sinnvoll.
Sorry, CooIDE ist noch ganz neu für mich.

von Matthias K. (matthiask)


Lesenswert?

Thomas R. schrieb:
> Siehst du eine Möglichkeit, die Include-Pathes in einem Textfile zu
> speichern und dieses File dann von CooIDE zu verwenden?

Eclipse ist sehr flexibel. Sowas ginge sicher zu machen.

Kuck Dir mal die jeweilige "build.xml" im Projekt an. Da stehen alle 
Angaben drin, auch die Include-Pfade. Ob händische Änderungen darin es 
dann zurück in die CoIDE schaffen kannst Du ja mal ausprobieren.

von Rolf D. (rolfdegen)


Lesenswert?

Hallo und guten Tag

Hier ist ein tolles Synthesizer-Projekt von Alessandro mit einem STM32F4 
Discovery-Board: http://www.youtube.com/watch?v=4JkhzH57Je4

Gruß Rolf

von Tobias S. (tryan)


Lesenswert?

Hallo,

leider habe das Gefühl der µC zu langsam ist.
In der Datei: "stm32f4xx.h" habe ich den Wert HSE_VALUE von 25000000 auf 
8000000 geändert
1
#if !defined  (HSE_VALUE) 
2
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
3
#endif /* HSE_VALUE */

Die Einstellungen für die PLL stimme auch:
  #define PLL_M      8
  #define PLL_N      336


Über PINC 9 versuche ich den Systemclock anzuzeigen und leider sind es 
nur 16Mhz.
1
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
2
  
3
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
4
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
5
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF  ;
6
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
7
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
8
  GPIO_Init(GPIOC, &GPIO_InitStructure);
9
  RCC_MCO2Config(RCC_MCO2Source_SYSCLK, RCC_MCO2Div_1);

Habe ich noch was übersehen?

Danke für jeden Tipp
Tobias

von Matthias K. (matthiask)


Lesenswert?

Toggle mal einen Pin, direkt ohne die FW-Lib und schau Dir die Zeiten am 
Oszi an. Interrupts sollten gesperrt sein.
1
  while(1) {
2
    GPIOB->BSRRH = GPIO_Pin_15; //PB_15_L;
3
    GPIOB->BSRRL = GPIO_Pin_15; //PB_15_H;
4
  }

von Tobias S. (tryan)


Lesenswert?

Okay... bekomme ein schönes Rechteck mit ca 1.461Mhz.

Da müsste doch mehr drinne sein oder?

von Matthias K. (matthiask)


Lesenswert?

Tobias S. schrieb:
> #if !defined  (HSE_VALUE)
>   #define HSE_VALUE    ((uint32_t)8000000)
> #endif /* HSE_VALUE */

Ist HSE_VALUE vorher noch woanders definiert? Mach es mal als globales 
Symbol, so das ggf. auch in anderen Headerfiles ankommt.

von Tobias S. (tryan)


Lesenswert?

Hmm nicht das ich wüsste. Ich habe "einfach" das Workspace von dir 
geöffnet und den wert von HSE_VALUE geändert. Der Quarz schwingt auch 
mit 8Mhz...komisch

von Matthias K. (matthiask)


Lesenswert?

Tobias S. schrieb:
> Hmm nicht das ich wüsste. Ich habe "einfach" das Workspace von dir
> geöffnet und den wert von HSE_VALUE geändert. Der Quarz schwingt auch
> mit 8Mhz...komisch

HSE_VALUE ist in dem Workspace nur in der Configuration bei "defined 
symbols" gesetzt, nicht in der stm32f4xx.h

von Uwe (Gast)


Lesenswert?

ist in der startup_stm32f4xx.c der Aufruf für die "SystemInit();" 
auskommentiert ?
Setz doch mal nen Haltepunkt in die SystemInit() rein und guck ob 
überhaupt reingesprungen wird.

von Matthias K. (matthiask)


Lesenswert?

SystemInit();

Ruf die mal als erstes in der main() auf.

von Tobias S. (tryan)


Lesenswert?

Ahh..super DANKE das war der Fehler.

Jetzt werden auf PINC9 auch die 168Mhz ausgeben.

Vielen Dank
tobias

von Fritz (Gast)


Lesenswert?

Da mich diese IDE sehr interessiert habe ich ein paar Fragen zu den 
CooCox experten:

@Eric (Gast): Hast du oder jemand anderer das VCP (Virtual Commport) mit 
dem STM32F4-Discovery schon in der IDE zum laufen gebracht?

Es gibt eine neue Version 1.5, funktioniert die nun besser mit dem 
STM32F4-Discovery?

Läuft das CoOs auch auf STM32F4xx, sind keine Beispiele auf der 
Webseite?

von Sam .. (sam1994)


Lesenswert?

Gibt es eine bessere Anleitung die Beispiele von ST zu kompilieren, als 
das Readme?
Z.B. I2S/Audio Beispiel:
 - Copy all source files from this example folder to the template folder 
under
   Project\STM32F4xx_StdPeriph_Templates
 - Open your preferred toolchain
 - Add the files "audio_sample.c" and "stm324xg_eval_audio_codec.c" to 
the project source list
     - "stm324xg_eval_audio_codec.c" file is located under 
Utilities\STM32_EVAL\STM3240_41_G_EVAL
 - Rebuild all files and load your image into target memory
 - Run the example

Was der Template Ordner bringen soll, verstehe ich nicht ganz, denn da 
sind keine wichtigen Dateien drin, die gebraucht werden. Ansonsten 
musste ich so ziemlich alles andere dme Projekt hinzufügen, damit es 
überhaupt kompiliert wurde. Eine bestimmte Datei "lcd_log_conf.h" musste 
ich sogar aus einem anderen Beispiel nehmen. Nachdem es fehlerfrei 
kompiliert wurde, erhalte ich ein leeres Programm (Program Size 0).

von Eric (Gast)


Lesenswert?

Bisher gibt es leider noch nichts neues. Mit dem TrueStudio klappt alles 
problemlos und der Virtuelle Com Port (VCP) läuft ohne Probleme. Will 
man nun aber die DSP Bibliotheken von STM dazulinken bebommt man den 
Fehler, dass man über 32kB gekommen ist. Schade... Ich werde mal bei 
CooCox nachfragen wie es mit dem Problem aussieht. Vielleicht weiß dort 
jemand Rat. Cool wäre es schon das Discovery Board einfach mit einem 
USB-Kabel zum Datentransfer zu benutzen.

von mikey (Gast)


Lesenswert?

Ich würde noch mal einen Schritt zurück machen wollen und etwas zur 
startup_stm32f4xx.c fragen.
Ich habe das Beispielprojekt (danke) versucht zu verstehen und folgendes 
ist schon problematisch -

bei einem coocox Projekt wie dem Blinky, WO wird denn startup code nun 
aufgerufen, ich finde es nicht im linker skript oder sonstwo. Im 
ResetVektor wird bss initialisiert und main() gestartet, aber auch kein 
SystemInit().
Die Diskrepanz, daß in den Kommentaren steht, daß SystemInit im 
startup.s aufgerufen wird, was ja gar nicht existent ist (wurde ja oben 
auch gesagt, daß coocox ein c-file benutzt) verwirrt mich auch noch. 
Außerdem findet man ja oft noch den M-3 erwähnt. Ich schätze daß dies 
durch die Anpassung der M3 lib an M4 liegt, wäre aber über feedback auch 
froh.

Von daher würde ich mich sehr freuen, wenn ihr mir noch mal dieses erste 
grundlegende erklären könntet! Was passiert da genau. Denn das sollte 
ich wohl erst mal verstehen wenn ich mit arm einsteigen will :-)

schönen Abend und hoffe auf Hilfe

von mr. mo (Gast)


Lesenswert?

mikey schrieb:
> bei einem coocox Projekt wie dem Blinky, WO wird denn startup code nun
> aufgerufen, ich finde es nicht im linker skript oder sonstwo. Im
> ResetVektor wird bss initialisiert und main() gestartet, aber auch kein
> SystemInit().

Also suchst du die Erklärung hierzu?
1
// SystemInit(); wird automatisch vor der MAIN-Funktion
2
// vom startup_stm32f4xx.s gerufen

von mikey (Gast)


Lesenswert?

Ne, dazu nicht. Vielmehr z.B. wo die startup_stm32f4xx.s befindlich ist 
und wie daraus eine Funktion gestartet wird. Ich hoffte das wäre rüber 
gekommen.

von Tilo (Gast)


Lesenswert?

Ich habe gerade auf 1.6.0 aktualisier und weiß nicht, wo ich dem 
Compiler -std=c99 mitgeben kann. Hat von euch einer schon etwas 
gefunden?

von Michael F. (startrekmichi)


Lesenswert?

Tilo Lutz schrieb:
> Ich habe gerade auf 1.6.0 aktualisier und weiß nicht, wo ich dem
> Compiler -std=c99 mitgeben kann. Hat von euch einer schon etwas
> gefunden?

Project -> Configuration -> Tab "Compile"
dann einfach bei "Misc Controls" eintragen

von Tilo (Gast)


Lesenswert?

Genau das hab ich versucht. Leider wird die Option dann auch für den 
Linker eingetragen:
 d:/program files (x86)/gnu tools arm embedded/4.6 
2012q2/bin/../lib/gcc/arm-none-eabi/4.6.2/../../../../arm-none-eabi/bin/ 
ld.exe:  unrecognized option '-std=C99'
 collect2: ld returned 1 exit status

:(

von Tilo (Gast)


Lesenswert?

Mir ist gerade aufgefallen, dass ei der Fehlermeldung C00 steht, also 
das C groß geschrieben ist. IRgend wie scheint da beim Projektupdate was 
schief gegangen zu sein.
Die Option wurde dem Linker hinzugefügt. Da die komplette Zeile in der 
Konfiguration grau ist, musste ich die Projektdatei editieren.
Danach gings.

Vielen Dank für den Hinweis!

von schneeblau (Gast)


Lesenswert?

Fang jetzt auch mit dem Board an.

Wo kommen die mitgelieferten Source und Header Dateien rein? Es werden 3 
Ordner mitgeliefert...(Std. Lib, USB, CMSIS)

wenn ich nun die stm32f4xx_conf.h einbinde, meckert er rum das er sie 
nicht findet...wenn ich sie in den gleichen Ordner kopiere geht es, aber 
dann will er alle anderen .h Dateien haben..die ich entweder in der 
...conf.h auskommentieren muss, oder jede einzelne in meinen 
Projektordner legen muss.

3. Möglichkeit, jede Library per Hand zum Projekt hinzufügen...

Gibt es keinen Standartordner dafür bzw. wenn ja wo ist er?

von tom (Gast)


Lesenswert?

Hi,

Habe gerade die aktuellste Version der verwendetetn gcc-toolchain 
installiert, neueste CoIde auch und bekomme vom Linker diese 
Fehlermeldung:

   [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -Wl -nostartfiles -g 
"-Wl,-Map=Blinky mit SysTick.map" -O0 -Wl,--gc-sections 
"-LC:\CooCox\CoIDE\configuration\ProgramData\Blinky mit SysTick" 
"-Wl,-TC:\CooCox\CoIDE\configuration\ProgramData\Blinky mit 
SysTick/arm-gcc-link.ld" -g -o '"Blinky mit SysTick.elf"' 
..\obj\stm32f4xx_syscfg.o ..\obj\stm32f4xx_sdio.o 
..\obj\stm32f4xx_hash.o ..\obj\stm32f4xx_cryp_aes.o 
..\obj\stm32f4xx_hash_sha1.o ..\obj\stm32f4xx_usart.o 
..\obj\stm32f4xx_pwr.o ..\obj\stm32f4xx_can.o ..\obj\stm32f4xx_wwdg.o 
..\obj\stm32f4xx_hash_md5.o ..\obj\stm32f4xx_dac.o 
..\obj\startup_stm32f4xx.o ..\obj\stm32f4xx_crc.o 
..\obj\stm32f4xx_iwdg.o ..\obj\main.o ..\obj\stm32f4xx_rcc.o 
..\obj\stm32f4xx_it.o ..\obj\stm32f4xx_adc.o ..\obj\stm32f4xx_dcmi.o 
..\obj\stm32f4xx_cryp_des.o ..\obj\stm32f4xx_cryp.o 
..\obj\stm32f4xx_fsmc.o ..\obj\stm32f4xx_gpio.o ..\obj\stm32f4xx_flash.o 
..\obj\system_stm32f4xx.o ..\obj\stm32f4xx_dma.o ..\obj\stm32f4xx_spi.o 
..\obj\stm32f4xx_i2c.o ..\obj\stm32f4xx_rng.o ..\obj\stm32f4xx_exti.o 
..\obj\misc.o ..\obj\stm32f4xx_rtc.o ..\obj\stm32f4xx_cryp_tdes.o 
..\obj\stm32f4xx_tim.o ..\obj\stm32f4xx_dbgmcu.o
       [cc] arm-none-eabi-gcc: error: unrecognized command line option 
'-Wl'


Manuell kann ich die -Wl option auch nicht entfernen, da das Feld in der 
Configuration nicht editierbar ist.

Hat jemand eine Idee ?

Danke + Frohes Fest noch, Tom ;o).

von Uwe N. (ulegan)


Lesenswert?

Der hier erwähnte Patch behebt (zumindest bei mir) auch das -Wl Problem 
:
http://www.coocox.org/forum/topic.php?id=2593

Gruß und ein frohes neues Jahr
Uwe

von tom (Gast)


Lesenswert?

Hi Uwe,

Danke und Dir auch einen Guten Rutsch !

cy, tom.

von Marcus H. (Firma: www.harerod.de) (lungfish) Benutzerseite


Lesenswert?

Was tun, wenn's hängt:
Ich steige gerade vom F1 auf den F4 um. Ich habe zwar ein eigenes 
Framework am Laufen, wollte aber ein paar Punkte an Matthias' Code im 
Debugger anschauen.
Wie auch immer - ich habe ein paar Zeilen angepasst und in das Olimex 
E407 (anderer Proz und Pinbelegung) geladen. Mit der Folge, dass der 
Prozessor vom OpenOCD nicht mehr gefunden wurde.

-> Gelöst wird das Problem, indem man die Bootkonfig-Jumper von "Flash" 
nach "Embedded SRAM" ändert, ungefährlichen Code programmiert und wieder 
zurückjumpert.

Vielleicht hilft der Tipp jemandem.

von Horst S. (h3aau)


Lesenswert?

Moin moin,

möchte mit dem stm32f4 anfangen.
habe:
coocox ide v1.6.1.
gcc-arm-none-eabi-4_7-20
CoIDE_workspace

ergebnis:

GCC HOME: C:\STM32\arm-none-eabi-gcc-4_6-20111208\bin
compile:
    [mkdir] Skipping G:\STM32\CoIDE workspace\Blinky mit SysTick\Blinky 
mit SysTick\Debug\bin because it already exists.
    [mkdir] Skipping G:\STM32\CoIDE workspace\Blinky mit SysTick\Blinky 
mit SysTick\Debug\obj because it already exists.

BUILD FAILED
Output filename conflict: stm32f4xx_gpio.o would be produced from 
G:\STM32\CoIDE workspace\Blinky mit 
SysTick\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c and 
stm32f4xx_gpio.c
Total time: 2 seconds

was mache ich flasch?

von vampire (Gast)


Lesenswert?

-exclude from build:
Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c
, denn stm32f4xx_gpio.c wird von irgenteinem *.h-file explizit 
eimgebunden;
(kenne jetzt aber deinen Code nicht!)

von vampire (Gast)


Lesenswert?

vampire schrieb:
> -exclude from build:
> Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c
> , denn stm32f4xx_gpio.c wird von irgenteinem *.h-file explizit
> eimgebunden;

...vergiss es:
Suche das *.h - file, das die stm32f4xx_gpio.c includet und ändere in
#include "stm32f4xx_gpio.h" ;

von Horst S. (h3aau)


Lesenswert?

moin moin,

alles etwas merkwürdig.....
also WIN7
COIDE 1.6.1
gcc-arm-none-eabi-4_7-20
Blinky mit SysTick

ach dem ich das verzeichnis aus C:/STM32/CoIDE workspace nach 
C:/.../Eigene Dokumente/STM32/CoIDE workspace verschoben habe geht es.
zum test habe ich das Eigene Dokumente/ST32 gelöscht, geht immer noch.

nehmen wir das mal als gegeben hin.
kann ich das nun ohne probleme in das disc-board flashen und wenn ja wie 
ohne das ich es für immer ins nirvana schicke?

von vampire (Gast)


Lesenswert?

Horst S. schrieb:
> kann ich das nun ohne probleme in das disc-board flashen und wenn ja wie
> ohne das ich es für immer ins nirvana schicke?

In diesem Forum wirst Du selten eine Garantie auf den Inhalt von 
Beiträgen erhalten ...
... schon allein, weil niemand weis, was DU machst, -außer Dir 
selbst(hoffentlich!)
Ich verwende CoIDE 1.5.1 , bis die neueren Versionen stabil sind --
Unter Debugger --> ST-Link --> SWD für debuggen und programmieren 
auswählen --> download Code to Flash
( es gibt auch "How-To's")

von vampire (Gast)


Lesenswert?

@ Marcus H. (lungfish)
Beitrag "Re: CooCox CoIDE mit STM32F4-Discovery Board"
-könnte es sein, das deine Beobachtung damit in Zusammenhang steht, daß 
das Olimex STM32-E407 nicht nur äusserlich einem Arduino-Board ähnelt?
Es meldet sich als STM-Device im DFU mode(USB-OTG1), wenn boot auf 
System Memory steht!
Demnach ist da ein Bootloader aktiv ...
(und es ist kaum der orig. von ST über com-port)
Ich kenne mich mit den Arduino-Bootloader nicht aus ...
Wäre es möglich, das das E407 ein Arduino-Board ist(oder werden sollte?)

von Horst S. (h3aau)


Lesenswert?

wow,
es geht.
ich komm aus dem staunen nicht mehr raus.

von Pete K. (pete77)


Lesenswert?

Schade, dass es mit den Compilern für die STM32 oder generell ARM 
Cortex3/4 nicht so eine plug-and-play Lösung gibt wie z.B. Atmel mit dem 
AVR-Studio.

Scheinen ja immer beliebter zu werden die STM32er :-)

von vampire (Gast)


Lesenswert?

@ Pete K. (pete77)
-wenn Du auf das "verfusen" verzichten kannst(beim AVR-Studio) dann 
probier COOCOX die CoIDE.
-entwickeln ,flashen, debuggen --
Herz, was willst Du mehr !?!
(und nicht zu verachten: mit Version 1.5.1 kann man noch KEIL-Projekte 
unverstümmelt compilieren...)

von Horst S. (h3aau)


Lesenswert?

wie macht man makefiles?

von Horst S. (h3aau)


Lesenswert?

ok, spass beiseite....

ich habe hier die CoIDE und das Disc.board am laufen.
ich würde mich gern zum einstieg mit einem webserver
beschäftigen.
fürs netzwerk liegen hier noch zwei stk01 (enc28j60).
hat wer was fertiges zum lernen für mich?

von Horst S. (h3aau)


Lesenswert?

moin moin,
habe was gefunden: STM32F4_SPI_Ethernet
geht nur noch nicht richtig.
warum will der linker hier noch nicht?


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
GCC HOME: C:\STM32\gcc-arm-none-eabi-4_7-20\bin
compile:
    [mkdir] Skipping C:\STM32\STM32F4_SPI_Ethernet\OpenMCP\Debug\bin 
because it already exists.
    [mkdir] Skipping C:\STM32\STM32F4_SPI_Ethernet\OpenMCP\Debug\obj 
because it already exists.
       [cc] Starting dependency analysis for 44 files.
       [cc] Parsing ..\..\..\Libraries\Ethernet\inc\ENC28J60.h
       [cc] Parsing ..\..\..\Libraries\Ethernet\src\enc28j60.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_spi.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rcc.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_gpio.h
       [cc] Parsing 
..\..\..\Libraries\Device\STM32F4xx\Include\stm32f4xx.h
       [cc] Parsing ..\..\..\Libraries\Delay\Delay.h
       [cc] Parsing ..\..\..\Libraries\CMSIS\Include\core_cm4.h
       [cc] Parsing 
..\..\..\Libraries\Device\STM32F4xx\Include\system_stm32f4xx.h
       [cc] Parsing ..\..\..\src\stm32f4xx_conf.h
       [cc] Parsing ..\..\..\Libraries\CMSIS\Include\core_cmInstr.h
       [cc] Parsing ..\..\..\Libraries\CMSIS\Include\core_cmFunc.h
       [cc] Parsing ..\..\..\Libraries\CMSIS\Include\core_cm4_simd.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_adc.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_can.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_crc.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_cryp.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dac.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dbgmcu.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dcmi.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_dma.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_exti.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_flash.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_fsmc.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_hash.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_iwdg.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_i2c.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_pwr.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rtc.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_rng.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_sdio.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_syscfg.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_tim.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_usart.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\stm32f4xx_wwdg.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc\misc.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_syscfg.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_sdio.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_aes.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_sha1.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_pwr.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_can.c
       [cc] Parsing 
..\..\..\Libraries\Ethernet\src\websrv_help_functions.c
       [cc] Parsing ..\..\..\Libraries\Ethernet\inc\ip_config.h
       [cc] Parsing 
..\..\..\Libraries\Ethernet\inc\websrv_help_functions.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_hash_md5.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dac.c
       [cc] Parsing ..\..\..\Libraries\Ethernet\src\EtherShield.c
       [cc] Parsing ..\..\..\Libraries\Ethernet\inc\ip_arp_udp_tcp.h
       [cc] Parsing ..\..\..\Libraries\Ethernet\inc\dnslkup.h
       [cc] Parsing ..\..\..\Libraries\Ethernet\inc\dhcp.h
       [cc] Parsing ..\..\..\Libraries\Ethernet\inc\EtherShield.h
       [cc] Parsing ..\..\..\Libraries\Ethernet\inc\net.h
       [cc] Parsing ..\..\..\src\startup_stm32f4xx.s
       [cc] Parsing ..\..\..\Libraries\Ethernet\src\ip_arp_udp_tcp.c
       [cc] Parsing ..\..\..\Utilities\STM32_EVAL\stm32f4_discovery.c
       [cc] Parsing ..\..\..\Utilities\STM32_EVAL\stm32f4_discovery.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_crc.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_iwdg.c
       [cc] Parsing ..\..\..\src\main.c
       [cc] Parsing ..\..\..\Libraries\Ethernet\src\dnslkup.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rcc.c
       [cc] Parsing ..\..\..\src\stm32f4xx_it.c
       [cc] Parsing ..\..\..\src\stm32f4xx_it.h
       [cc] Parsing ..\..\..\Libraries\Delay\Delay.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dcmi.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_des.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_fsmc.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_gpio.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_flash.c
       [cc] Parsing ..\..\..\src\system_stm32f4xx.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dma.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_i2c.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rng.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\misc.c
       [cc] Parsing ..\..\..\Libraries\Ethernet\src\dhcp.c
       [cc] Parsing 
..\..\..\Utilities\STM32_EVAL\stm32f4_discovery_lis302dl.c
       [cc] Parsing 
..\..\..\Utilities\STM32_EVAL\stm32f4_discovery_lis302dl.h
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_rtc.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_cryp_tdes.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_tim.c
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_dbgmcu.c
       [cc] 44 files are up to date.
       [cc] 0 files to be recompiled from dependency analysis.
       [cc] 0 total files to be compiled.
       [cc] Starting link
       [cc] arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -g -nostartfiles 
-Wl,-Map=OpenMCP.map -O0 -Wl,--gc-sections 
-LC:\STM32\CoIDE\configuration\ProgramData\myWeb_ENC28J60 
-Wl,-TC:\STM32\CoIDE\configuration\ProgramData\myWeb_ENC28J60/arm-gcc-li 
nk.ld  -g -o OpenMCP.elf ..\obj\enc28j60.o ..\obj\stm32f4xx_syscfg.o 
..\obj\stm32f4xx_sdio.o ..\obj\stm32f4xx_cryp_aes.o 
..\obj\stm32f4xx_hash.o ..\obj\stm32f4xx_hash_sha1.o 
..\obj\stm32f4xx_usart.o ..\obj\stm32f4xx_pwr.o ..\obj\stm32f4xx_can.o 
..\obj\websrv_help_functions.o ..\obj\stm32f4xx_wwdg.o 
..\obj\stm32f4xx_hash_md5.o ..\obj\stm32f4xx_dac.o ..\obj\EtherShield.o 
..\obj\startup_stm32f4xx.o ..\obj\ip_arp_udp_tcp.o 
..\obj\stm32f4_discovery.o ..\obj\stm32f4xx_crc.o 
..\obj\stm32f4xx_iwdg.o ..\obj\main.o ..\obj\dnslkup.o 
..\obj\stm32f4xx_rcc.o ..\obj\stm32f4xx_it.o ..\obj\Delay.o 
..\obj\stm32f4xx_adc.o ..\obj\stm32f4xx_dcmi.o 
..\obj\stm32f4xx_cryp_des.o ..\obj\stm32f4xx_cryp.o 
..\obj\stm32f4xx_fsmc.o ..\obj\stm32f4xx_gpio.o ..\obj\stm32f4xx_flash.o 
..\obj\system_stm32f4xx.o ..\obj\stm32f4xx_dma.o ..\obj\stm32f4xx_spi.o 
..\obj\stm32f4xx_i2c.o ..\obj\stm32f4xx_rng.o ..\obj\stm32f4xx_exti.o 
..\obj\misc.o ..\obj\dhcp.o ..\obj\stm32f4_discovery_lis302dl.o 
..\obj\stm32f4xx_rtc.o ..\obj\stm32f4xx_cryp_tdes.o 
..\obj\stm32f4xx_tim.o ..\obj\stm32f4xx_dbgmcu.o
       [cc] Parsing 
..\..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_exti.c
       [cc] ..\obj\startup_stm32f4xx.o:(.isr_vector+0x0): undefined 
reference to `_estack'
       [cc] 
c:/stm32/gcc-arm-none-eabi-4_7-20/bin/../lib/gcc/arm-none-eabi/4.7.3/../ 
../../../arm-none-eabi/lib/armv7e-m\libg.a(lib_a-init.o):  In function 
`__libc_init_array':
       [cc] init.c:(.text.__libc_init_array+0x40): undefined reference 
to `_init'
       [cc] collect2.exe: error: ld returned 1 exit status

BUILD FAILED
Total time: 3 seconds
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

von vampire (Gast)


Lesenswert?

schau mal hier!
Beitrag "stm32f4 Bord"
(hat mir damals geholfen --)

von Horst S. (h3aau)


Lesenswert?

moin moin,

danke vampire. hatte ich schon gefunden.
die lernphase ist bei den arms doch schon etwas länger als bei den avrs.
daher bin ich für jede hilfe dankbar.

von vampire (Gast)


Lesenswert?

- ich bin mir nicht ganz sicher, -aber probier mal die  gcc 4.6_2012q2
(nur mal auf "Verdacht").
Ich hatte vor langer Zeit ähnliche Probl. ;
- oder war's _ASSEMBLY_ in Configuration einfügen ?
- oder war's Link File: arm-gcc-link.ld ?

von vampire (Gast)


Lesenswert?

- oder bei deiner gcc-version unter Configuration --> Optimization: 
none;

von ss (Gast)


Lesenswert?

Hi MATTIHAS I AM STARTED WITH MY PROJECT STM32F407 DISCOVERY BOARD AND I 
HAVE INSTALLED Coccox COide .......but i have no idea how to begin 
with...i want to run some simple programs and i desperately need some 
help....so can i get ur mail id???....thanks in advance..my mail id is 
suhas_sajjan@yahoo.in

von Peter M. (lctromnml)


Lesenswert?

Hallo,

Ich nutze seit einigen Tagen CooCox CoIDE und das STM32F407VG Discovery 
Board. Ich bin mittlerweile allerdings recht verwirrt, was die Benutzung 
der "Standard Peripherals Library" angeht.

Nach der Installation ist diese anscheinend bereits integriert (?), 
jedenfalls konnte ich nach Wahl des Chips die einzelnen Komponenten der 
Library im Repository auswählen. Auch die Beispiele lassen sich 
einbinden, bei Klick auf eine Peripherie im Componentstab öffnet sich 
ein "Help" Tab in CoIDE.

Mein Problem ist, dass ich nicht weiß, in welcher Version die Bibliothek 
installiert ist, und wo sie ggf. auf meiner Festplatte liegt und die 
gesamte Hilfe abgespeichert ist (bzw. wie diese aus CoIDE heraus 
aufgerufen wird.)

Ich habe mir die Standard Peripherals Library auch manuell 
heruntergeladen in der neusten Version 1.2.0 und dort sind u.A. 
wesentlich mehr Beispiele enthalten...jetzt möchte ich entweder meine 
bereits integrierte Library updaten oder die V1.2.0 installieren...

Hoffe ihr könnt mir helfen,
Grüße,
Simon

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.