Billiges Cortex-M4-Board STM32F4DISCOVERY jetzt erhältlich

Gast #2410832
Lesenswert?

Habe Atollic schon erfolgreich in Betrieb, würde aber gerne trotzdem 
Yagarto nutzen. Das Board ist für den Preis echt sehr günstig, dass kann 
man sogar für kleiner Projekte nutzen, wo es überdimensioniert ist, 
einfach weil es so günstig ist.
#2416350
Lesenswert?

Gibt es von ST noch kein "Programming Manual" speziell auch zu den "dsp 
instructions"? Ich habe dort nur eines für die älteren Typen gefunden:

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/PROGRAMMING_MANUAL/CD00228163.pdf

Von ARM selbst gibt es etwas:

http://infocenter.arm.com/help/topic/com.arm.doc.ddi0439b/DDI0439B_cortex_m4_r0p0_trm.pdf#page=33

Aber wie vollständig ist das von ST umgesetzt?
Gast #2416846
Lesenswert?

Christoph Kessler (db1uq) schrieb:
> Gibt es von ST noch kein "Programming Manual" speziell auch zu den "dsp
>
> instructions"?

Alles was den Core betrifft (CPU, FPU, NVIC, MPU...) ist Sache von ARM. 
ST verwendet die Module 1:1 und schließt daran lediglich eigene 
Peripherie an.
Es kann jöchstens sein, dass mal ein Modul weggelassen wird, wie z.B. 
die MPU bei den 103ern. Wenn es aber implemtiert ist, dann gilt die Doku 
von ARM.

Ansonsten ist das kleine Board wirklich das coolste Teil, das ich jemals 
für unter 20€ gekauft hab. Zu meiner Überraschung klingt der Audio DAC 
auch ganz gut. Und nachdem das mit WAV schon super klappt, bin ich 
gerade mal am schauen, was man da so mit AAC oder OGG anstellen könnte. 
Falls jemand dazu ein paar Tipps hat und mich in die richtige Richtung 
schubsen könnte? Hab mir gerade mal FAAD 2.7 downgeloadet.... die Doku 
dazu ist doch eher sehr spärlich...
Gast #2418767
Lesenswert?

Ich bekomme mein F4 auch vermutlich morgen, aber da ich kein Freund von 
Beschränkungen bin hab ich mir schon mal ein GCC Makefile gebastelt.
Es wird das Projekt IO_Toggle im seinem Verzeichnis erstellt und die 
main.* ins Hauptverzeichnis kopiert.

1. die Dateien Makefile und Makefile.common in das gleiche Verzeichnis 
legen in dem sich auch STM32F4-Discovery_FW_V1.1.0/ befindet

2. make erzeugt das Projekt (arm-none-eabi-*)

3. es kann damit auch ein Makefile Projekt in eclipse angelegt werden

4. als Loader/Debugger werde ich https://github.com/texane/stlink 
(STLINKv2)
verwenden. Läuft schon mit stm32l.

Das Ganze kann schon mal als Vorlage für andere eclipse/Makefile 
Projekte aus der STM32F4-Discovery_FW_V1.1.0/ benutzt werden.
Angehängte Dateien:
Gast #2419239
Lesenswert?

Ich schaue mir gerade die Cortex M3 Familie an und finde die sehr 
interessant.
Unterscheiden sich die M3 und M4 Familien sehr stark?
Kann man da die gleiche Toolchain nutzen?
Das Bord klingt sehr interessant!
Gast #2419277
Lesenswert?

Das Datenblatt verrät es:

2.1 Full compatibility throughout the family

The STM32F405xx and STM32F407xx are part of the STM32F4 family. They are 
fully pin-to-pin, software and feature compatible with the STM32F2xx 
devices, allowing the user to try different memory densities, 
peripherals, and performances (FPU, higher frequency) for a greater 
degree of freedom during the development cycle.

The STM32F405xx and STM32F407xx devices maintain a close compatibility 
with the whole STM32F10xxx family. All functional pins are pin-to-pin 
compatible. The STM32F405xx and STM32F407xx, however, are not drop-in 
replacements for the STM32F10xxx devices: the two families do not have 
the same power scheme, and so their power pins are different. 
Nonetheless, transition from the STM32F10xxx to the STM32F40x family 
remains simple as only a few pins are impacted.
Gast #2419283
Lesenswert?

Tom schrieb:
> Bekomme unter GCC 4.6 aus Yagarto Toolchain folgende Fehlermeldung
> (siehe Anhang) (Windows). Arbeitest du unter Linux oder Windows?

Ich benutze gcc 4.6.1 unter Linux.

Existiert eine readlink(.exe) Datei und ist diese auch im Suchpfad?

Hat schon jemand das Makefile unter Window$ erfolgreich getestet?
#2419286
Lesenswert?

Bernd schrieb:

> Unterscheiden sich die M3 und M4 Familien sehr stark?

Der M4 ist von der Software-Seite her ein M3 plus DSP-Befehlserweiterung 
plus Gleitkommaeinheit (sofern vom Chiphersteller verbaut).

> Kann man da die gleiche Toolchain nutzen?

Ja. Die sollte natürlich die zusätzlichen M4-Befehle nutzen, sonst hast 
Du vom M4 nichts.

fchk
Gast #2419402
Lesenswert?

Hallo,
hat schon jemand Erfahrung mit der VFP 
(Vector-Floating-Point-Coprozessor), Floating point unit (FPU), wie man 
den aktiviert und ob er in TrueStudio (free Version) unterstützt wird. 
Ich habe irgendwo gelesen, dass der VFP in CodeSourcery G++ lite nicht 
unterstützt wird, stimmt das?
danke
#2419406
Lesenswert?

Moin moin,

@hp-freund:
Verwendest du die Makefiles unter Linux ?
Welche Toolchain benutzt du ?
Um eine Toolchain zu bekommen hatte ich das Script 
"summon-arm-toolchain" aus dem git Repository 
"https://github.com/esden/summon-arm-toolchain.git"; verwendet. Geht 
soweit auch, jedoch wird soweit ich weiss keine Hardware FPU 
unterstützt.

Mit dem STlinkV2 Loader/Debugger von 
https://github.com/texane/stlink.git konnte ich bereits ein Programm aus 
dem RAM ausführen.

Gruß
Garag
Gast #2419482
Lesenswert?

Matthias K. schrieb:
> Gibt es readlink unter Win?
´
Ok also ich  konnte readlink bei mir unter WinXP nicht finden. Habe die 
Zeile ausgetauscht gegen festen Pfad:
TOP="C:\Dokumente und 
Einstellungen\test\Desktop\stm32f4discovery_firmware_new"
und jetzt kompiliert er auch, beendet aber mit einer Fehlermeldung (im 
Anhang), hat aber trotzdem ein Hex und Bin File erzeugt, dass sich 
flashn lässt und soweit scheinbar funktioniert.

Matthias K. schrieb:
> Ist das Mini USB Kabel dabei?

Nein, kann man bei dem Preis aber auch nicht verlangen.
Gast #2419490
Lesenswert?

Anhang vergessen.
Übrigens schon mal vielen Dank an hp-freund für die Bereitstellung der 
Make-Files. Schön wäre eine Anpassung an das Beispiel aus dem 
Demonstrations Ordner mit allen USB Bibos etc. Ich werde es mal selbst 
versuchen.
Angehängte Dateien:
Gast #2419528
Lesenswert?

Wieso steht
arm-none-eabi-size: 'main.elf': No such file
bei dir vor dem cp? Hast Du die Reihenfolge geändert/Dualcore?

Leerzeichen im Pfad könnten auch Probleme bringen, würde ich vermeiden.

Tom schrieb:
> Schön wäre eine Anpassung an das Beispiel aus dem
> Demonstrations Ordner mit allen USB Bibos etc. Ich werde es mal selbst
> versuchen.

Und dann wieder hier bereitstellen.
Genau das war mein Ziel :-)

Hier noch mal für das Projekt DAC_SignalsGeneration:

Das Ganze geht sicher auch besser, aber ich erstelle meine Makefiles 
extra so das ich keinerlei Veränderungen im STM32F4-Discovery_FW_V1.1.0 
Verzeichis vornehmen muss.

Vielleicht schreibt noch einer ein Universal Makefile für alle und 
eigene Projekte...
Angehängte Dateien:
#2419602
Lesenswert?

#2419617
Lesenswert?

Das Ding hat zwei USB-Buchsen, eine "Mini" für den ST-Link ( dafür sitzt 
noch ein zweiter kleinerer ARM-Cortex drauf) und eine "Micro" für den 
USB-OTG direkt am Controller.

Hab es erst heute bekommen, am USB-Port des PC angeschlossen blinken ein 
paar LEDs im Kreis herum. Es soll auch ein Testprogramm für den 
Bewegungssensor installiert sein.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf
das Handbuch mit Schaltplänen
Gast #2421051
Lesenswert?

Weiss jemand wo es diese Einzel-,Doppel- oder Mehrfach Steckbuchsen mit 
Kabel gibt, so wie die PC LED und Schalterkabel zu Motherboard? Ich 
glaube es gab hier schon mal einen Beitrag, komme aber nicht mehr auf 
den Namen der Teile...
Gast #2421201
Lesenswert?

Die Crimpkontakte und Gehäuse findest Du hier (nach "Crimp" suchen).

http://www.csd-electronics.de/de/index.htm

Ist der einzige mir bekannte Händler, der auch 1-polige Gehäuse führt.
Ab 2-polig und aufwärts bekommt man sie auch woanders (Farnell, etc.).
Passende Zange gibts da auch (Crimpzange LPV/CV).

Ich bin mir aber ziemlich sicher, dass die nicht auf den kurzen Stiften 
auf der Oberseite halten (kanns nicht testen, hab das Board nicht hier).
#2421220
Lesenswert?

Unter https://github.com/texane/stlink gibt es für Linux einen GDB 
Server für den STLink auf dem Board. Zusätzlich gibt es zwei 
Beispielprojekte.

Das ganze zusammen mit dem summon-arm-toolchain Script ( 
https://github.com/MikeSmith/summon-arm-toolchain ) ergibt eine nette 
Entwicklungsumgebung.

Momentan bin ich noch dran das Ganze mit zusammen mit Eclipse zum Laufen 
zu bekommen.
Gast #2421243
Lesenswert?

Xenu schrieb:
> Ich bin mir aber ziemlich sicher, dass die nicht auf den kurzen Stiften
> auf der Oberseite halten (kanns nicht testen, hab das Board nicht hier).
>
Effektiv sind ca. 4mm Stiftlänge nutzbar, könnte reichen.
Danke für die richtigen Stichworte. Dadurch bin ich auf die ebay Suche:

female jumper wire

gekommen. Werd mir mal einen Vorrat anlegen.

****************************************

@Noname

wenn Du die ST Library nutzen willst, nimm dieses Makefile:
Beitrag "Re: Billiges Cortex-M4-Board STM32F4DISCOVERY jetzt erhältlich"

Bei Bedarf kannst Du auch alle nötigen Dateien in ein Verzeichniss 
kopieren.
Gast #2421297
Lesenswert?

Kann mir jemand die *.bin Files vom blink und blink_flash
von https://github.com/texane/stlink
zur Verfügung stellen ? Ich habe sie zwar selbst gebaut,
aber irgendwo ist der Wurm drin, es blinkt nix...
Funktionieren die beiden *.bin Files, die erzeugt werden, überhaupt ?

Generelle Frage:
Muss man im Fall des Ausführens aus dem Flash wirklich so eine lange
Init-Sequenz ausführen (RCC_Configuration, RTC_Configuration, ...),
bzw. warum ist dies beim Ausführen aus dem RAM nicht nötig ?
#2421304
Lesenswert?

Und ich hatte schon Angst, Dir zu fest auf die Füsse getreten zu sein. 
:-) Schön, dass Du Humor hast! :-))

So. Und jetzt zurück zum Thema, sobald ich bei Mouser genug 
zusammengekrömelt habe, um mir so ein Ding versandkostenfrei schicken zu 
lassen, teste ich das Ding nämlich auch mal aus!
#2421432
Lesenswert?

Lutz Schulze schrieb:
> Was haltet ihr von diesem Board? Wollte mir das zu Weihnachten schenken
> :-)
> Kostet ca. 60 Teuronen und hat ein 3.2" TFT, LPC1768.
> 
http://www.ebay.de/itm/NXP-LPC1768-ARM-Development-Board-3-2-TFT-LCD-Module-/270653509451?pt=BI_Electrical_Equipment_Tools&hash=item3f0434cf4b

Hmm. Ja. Ganz nett. Denke daran, dass das TFT relativ langsam angebunden 
ist. Der Bildschirmspeicher liegt nicht im Adressraum des Prozessors, 
d.h. Du kannst nur ziemlich indirekt über den Controller im Display 
darauf zugreifen. Für statische Grafik reichts, für Video usw ist das zu 
langsam. Da brauchst Du einen Prozessor, der den TFT-Controller direkt 
eingebaut hat, plus dazu passend ein controllerloses Display.

Und für ein Linux ist das Teil auch zu klein - das war Dir aber wohl 
vorher schon klar gewesen, oder?

fchk
Gast #2421568
Lesenswert?

@hp-freund: Vielen Dank für den Hinweis ! Jetzt blinkts !!!

Noch ein paar Fragen an die Wissenden:

1) Weiß jemand, ob es ein (kleines) Win32 Command Line Tool (ohne GUI)
gibt, mit dem man den STM32F4 via SWD programmieren kann ?
Oder kann man das STLINK V2 Tool mit einem Command-Line
Parameter aufrufen, um ein *.bin / *.hex ins Flash zu laden ?
(OpenOCD geht bestimmt, dachte mehr an ein kleines, eigenständiges Tool,
dass man einfach via Batchdatei aufrufen kann...)

2) Stichwort: Debug-Ausgaben
Kann man die Ausgaben einer der seriellen Schnittstelle via STLINK V2
Hardware zum PC übertragen und sich dort anzeigen lassen ?
Vielleicht auch Daten vom PC zurück zum STM32F4 ?
Gast #2421628
Lesenswert?

Im User Manual UM1472 ist die Schaltung des STM32DISCOVERY zu finden:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf
(ab Seite 30)

Alle Details zur Peripherie finden sich im Reference Manual RM0090:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/REFERENCE_MANUAL/DM00031020.pdf

Pin-Belegung (ab Seite 38) und
Alternate Function Mapping (ab Seite 49) gibt es
im Data Sheet STM32F405xx STM32F407xx:
http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/DM00037051.pdf
Gast #2421640
Lesenswert?

Noname schrieb:
> 1) Weiß jemand, ob es ein (kleines) Win32 Command Line Tool (ohne GUI)
> gibt, mit dem man den STM32F4 via SWD programmieren kann ?
> Oder kann man das STLINK V2 Tool mit einem Command-Line
> Parameter aufrufen, um ein *.bin / *.hex ins Flash zu laden ?
> (OpenOCD geht bestimmt, dachte mehr an ein kleines, eigenständiges Tool,
> dass man einfach via Batchdatei aufrufen kann...)

Ja das STM32 ST-LINK Utility kann man über Console bedienen. Im Programm 
unter Help den ersten Punkt kommst du zum Datenblatt mit Beschreibung 
wie man das als Batch Datei machen kann ... Nutze das hier in der Firma.
Gast #2421840
Lesenswert?

@Tom: Danke !

Das Tool ist im UM0892 Kapitel 4 beschrieben. Man kann aber scheinbar
nicht mehr das ST-Link Utility selbst aufrufen, sondern es gibt eine
Command-Line Version ST-LINK_CLI (im gleichen Verzeichnis wie die
GUI Version).

Beispiel für das Programmieren eines HEX-Files und anschließendem Start:
1
"C:\Program Files (x86)\STMicroelectronics\STM32 ST-Link Utility\ST-Link Utility\ST-LINK_CLI.exe" -c SWD -P firmware.hex -V -Rst
Gast #2423735
Lesenswert?

mein STM32 Discovery ist grade von RS gekommen. hat schon jemand ein 
paar nette spielereien auf dem board realisiert? wofür bietet es sich 
an?

ich werde jetzt erstmal keil ans rennen bringen und schauen das ich ein 
paar der examples ausprobiere
Gast #2423841
Lesenswert?

irgendwie mag keil das board nicht ^^
die beispielprojekte sind ja eigentlich auch als keil projekt vorhanden 
und auch die einstellungen des programmieradapters sind bereits 
voreingestellt. trotzdem meldet keil immer das es keinen st link 
findet..
#2424066
Lesenswert?

Hier ein einfaches Blinky mit dem Atollic TrueStudio Lite V 2.2.0.
Die blaue LED sollte etwa im Sekundentakt blinken.

Ablauf:

In einem Workspace ein neues Projekt anlegen. Als EVA-Board im 
Assistenten gleich das F4Discovery auswählen. Dann werden einige 
Voreinstellungen automatisch gemacht. Alle anderen Einstellungen 
unverändert lassen.

Projekt Properties / C/C++ General  Paths und Symbols  #Symbols
Ein neues Symbol mit ADD anlegen Name: HSE_VALUE Value: 8000000
(Legt die Quarzfrequenz als Basis für die PLL fest).

Dann in die main.c folgenden Inhalt kopieren:
1
//***********************************************************************************************
2
// Hardwarebasis:   F4DISCOVERY
3
// Programm:        Blinky ohne SysTick
4
// Mikrocontroller: STM32F407VG (ARM 32-bit CORTEX-M4) F4-DISCOVERY Board
5
// Speicher:        1MB FLASH, 192KB SRAM
6
// Taktfrequenz:    Quarz: 8MHz, mit PLL auf: 168MHz
7
// Stand:           17.11.2011
8
// IDE/Compiler:    Atollic TrueStudio STM32-Lite 2.2.0
9
// STM FW-Lib:      V 1.0.0 RC1
10
//***********************************************************************************************
11

12
/* Includes */
13
#include <stddef.h>
14
#include "stm32f4xx.h"
15

16
/*
17
  Achtung!!
18
  HSE_VALUE = 8000000 als globales Symbol setzen (Quarzfrequenz 8MHz)
19
  Defaultwert ist 25MHz, sonst stimmt die PLL nicht.)
20
  Systemtakt wird dann automatisch auf 168MHz gesetzt.
21

22
  Alternativ: HSE_VALUE in stm32f4xx.h auf 8000000 setzen
23
*/
24

25
//***********************************************************************************************
26
// Defines
27
//***********************************************************************************************
28
#define LD_6_AUS      GPIO_ResetBits(GPIOD,GPIO_Pin_15) /* blaue LED  */
29
#define LD_6_EIN      GPIO_SetBits(GPIOD,GPIO_Pin_15)
30

31
//***********************************************************************************************
32
// Verzögerungsfunktion ohne Timer/SysTick
33
//***********************************************************************************************
34
void my_delay(void) {
35
  volatile uint32_t z = 1500000;
36
  while(z--);
37
}
38

39
//***********************************************************************************************
40
// Hauptprogramm
41
//***********************************************************************************************
42

43
// SystemInit(); wird automatisch vor der MAIN-Funktion
44
// vom startup_stm32f4xx.s gerufen
45

46
int main (void) {
47

48
  GPIO_InitTypeDef  GPIO_InitStructure;
49

50
  // GPIOD Takt freigeben
51
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
52

53
  // LED-GPIO als Ausgang konfigurieren
54
  GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_15;
55
  GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
56
  GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
57
  GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
58
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
59
  GPIO_Init(GPIOD, &GPIO_InitStructure);
60

61
  // Hauptschleife
62
  while(1) {
63
    LD_6_EIN;
64
    my_delay();
65
    LD_6_AUS;
66
    my_delay();
67
  }
68
}
Gast #2424560
Lesenswert?

Hallo,

ich arbeite unter Linux und versuche mich "mal wieder" an der Sache. 
Dank der git-Repositories, ist der Start inzwischen ja sehr einfach 
geworden. Die Beispiele funktionieren soweit.

Da stellt sich mir die Frage, wie man das bei eigenen Projekten sauber 
angeht.
Ich möchte mit Eclipse arbeiten, jedoch trotzdem möglichst unabhängig 
von der IDE bleiben. Daher bieten sich m.E. Makefiles an, wie sie auch 
in den Beispielen benutzt werden.

Wie binde ich eins der Beispiele in die IDE ein, sodass alles, also auch 
das Debugging funktioniert? Oder muss das Makefile dann spezielle 
Targets haben, damit es funktioniert?

Kann mir da jemand einen kleinen Einstieg geben? Es gibt zwar ne Menge 
Informationen dazu im Netz, aber man weiß nicht so richtig, ob man auf 
dem richtigen Pfad ist... So ein, zwei Sätze, wie man da rangeht, würden 
mir sehr helfen.
Gast #2424823
Lesenswert?

Wie sehe ich, ob das Teil wirklich mit 168MHz läuft?

HSE_VALUE habe ich auf 8000000 gesetzt, also die 8MHz Quarzfrequenz.

Der GPIO Ausgang ist auf 100MHz konfiguriert.

..
1
while(1) {
2
    GPIOB->BSRRH = GPIO_Pin_15; //PB15 = L;
3
    GPIOB->BSRRL = GPIO_Pin_15; //PB15 = H;
4
}
Ich messe:

L = 75ns
H = 130ns

Kommt mit etwas zu lang vor, für die 168 MHz.

Auch kommt bei mir nicht 168MHz raus, wenn ich die Berechnungsangaben in 
der system_stm32f4xx.c nachvollziehe.

/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      25
#define PLL_N      336

/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2
Gast #2424917
Lesenswert?

Maxx schrieb:
> Auch kommt bei mir nicht 168MHz raus, wenn ich die Berechnungsangaben in
>
> der system_stm32f4xx.c nachvollziehe.

Unter der folgenden Adresse gibt es unter Configuration Utilitys ein 
Excel Sheet mit dem du die Einstellungen überprüfen und eine 
system_stm32f4xx.c erzeugen lassen kannst. Vielleicht hilft es dir.

Alternativ kannst du auch eine Peripherie wie zum Beispiel den Timer, 
welcher von bestimmten Systemclocks abhängig ist, konfigurieren und 
nachmessen, z.B. PWM Signal am Oszi die eingestellte Frequenz 
überprüfen.
Gast #2424954
Lesenswert?

Tom schrieb:
> Link vergessen
> http://www.st.com/internet/mcu/product/252140.jsp

Tolles Tool, kannte ich noch nicht!

In der Tat stimmt die Berechnung in der system_stm32f4xx.c nicht für den 
8MHz Quarz. Der µC rennt also nur mit 53,76 MHz.

/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      8   /* 25 */
#define PLL_N      336 /* 336 */

/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P      2 /* 2 */

also muss neben HSE_VALUE = 8000000 auch noch PLL_M angepasst werden.
PLL_M muss von 25 in 8 geändert werden. Dann läuft der µC mit 168 MHz.

Ich messe jetzt:

L = 23ns
H = 40ns

Das passt jetzt.
Gast #2425419
Lesenswert?

So, ich hab auch das "BlinkProjekt" mal ausprobiert. Funktioniert. 
Jedoch würde ich gern das erzeugte Hex-File mit einem seperaten Tool 
flashen. Gibt's da was? Ich habe noch keinen Button "Flashn" gefunden. 
Nur wenn ich über debug gehe wird der Controller geflasht und danach der 
Debugger gestartet.

Zum Verständnis, ich will nur den Code (Hexfile) mit True Studio 
erstellen und das Hexfile seperat flashen.


Gruß
Knut
#2425497
Lesenswert?

Knut schrieb:
> Atollic hat soweit ich weiß den GCC.

Atollic kann in der Lite-Version kein Hexfile erzeugen, sondern nur ein 
.elf File. Um daraus ein .hex zu erzeuen brauchst Du ein objcopy aus 
einer anderen WINARM Installation, zB. arm-none-eabi-objcopy von 
YAGARTO:

Aufruf:
arm-none-eabi-objcopy -O ihex "Blinky.elf" "Blinky.hex"

Das ganze kann man bei Atollic als Afterbuild dann automatisch machen 
lassen.

ST-Link Utility geht dann zum flashen des .hex. Der STM32 hat auch einen 
UART-Bootloader ab Werk. Dazu müsstest Du aber noch einen RS-232 Treiber 
dazwischen bauen.

In der Software zum Board (STM32F4-Discovery_FW_V1.1.0) ist auch ein 
Projekt FW_Upgrade, welches per USB (Laufwerk) die Firmware flasht. Habe 
es noch nicht ganz verstanden und noch nicht ausprobiert.
#2425510
Lesenswert?

Nochwas:

Das Geschwindigkeitsproblem hatte ich auch. Mit den 
Standardeinstellungen nach einer Projekt-Neuanlage mit Atollic wird von 
einem 25MHz Quarz ausgegangen. Das Board hat aber nur 8MHz. Somit läuft 
es viel zu langsam.

HSE_VALUE = 8000000 als globales Symbol reicht allein nicht aus.

In der system_stm32f4xx.c noch ändern:

#define PLL_M      8   /* zuvor 25 */

Mit beiden Änderungen läuft der F4 dann mit seinen 168 MHz, also mehr 
als 3x schneller als zuvor. Dein Blinky wird sich feuen...
Gast #2425532
Lesenswert?

Sitze grad nicht am PC, daher noch ne dumme Frage:

Jagarto installieren, die non-arm-eabi-objcopy.?exe? in mein Verzeichnis 
kopieren und dann eine *.bat schreiben die obigen Aufruf macht und diese 
dann im Truestudio mit einbinden?

Sorry für die vielen Fragen, bin aber auf dem Zebit völliger Neuling.



Gruß Knut
Gast #2425562
Lesenswert?

Matthias K. schrieb:
> Atollic kann in der Lite-Version kein Hexfile erzeugen, sondern nur ein
> .elf File.

Knut schrieb:
> So, ich hab auch das "BlinkProjekt" mal ausprobiert. Funktioniert.
> Jedoch würde ich gern das erzeugte Hex-File mit einem seperaten Tool
> flashen.

Matthias K. schrieb:
> Atollic kann in der Lite-Version kein Hexfile erzeugen, sondern nur ein
> .elf File.

Etwas aufwendiger, aber es funktioniert:

Beitrag "TrueSTUDIO+Bootloader+ST Flash Loader Anleitung"
#2425593
Lesenswert?

Knut schrieb:
> Kannst du nicht die non-arm... hochladen, das währe später auch für
> einen neuen Artikel hier gut! Gibt sicher nochmehr Leute die dA Probleme
> haben.

Das Problem wurde hier schon mehrfach besprochen.

Knut schrieb:
> Sitze grad nicht am PC, daher noch ne dumme Frage:
>
> Jagarto installieren, die non-arm-eabi-objcopy.?exe? in mein Verzeichnis
> kopieren und dann eine *.bat schreiben die obigen Aufruf macht und diese
> dann im Truestudio mit einbinden?
>

ja.

Fritz M. schrieb:
> Etwas aufwendiger, aber es funktioniert:
>
> Beitrag "TrueSTUDIO+Bootloader+ST Flash Loader Anleitung"

oder so
Gast #2426067
Lesenswert?

So, ich habs ausprobiert wie Fritz M. es gemacht hat. Leider bekomme ich 
noch eine Fehlermeldung mit der ich nichts anfangen kann und der Build 
wird unterbrochen: (siehe Anhang)


Was habe ich übersehen?


Gruß
Knut
Angehängte Dateien:
Gast #2426071
Lesenswert?

OK, wenn ich den Namen der zu Hexenden Datei so angebe wie von Matthias 
K. erhalte ich ein *.Hex File (Juhu). Aber das is doch müßig, in der 
anderen Variabnte ist sicherlich nur n Syntax-Fehler.



Gruß
Knut
Gast #2426468
Lesenswert?

Knut schrieb:
> Habs:
>
> arm-atollic-eabi-objcopy -O ihex  "${BuildArtifactFileBaseName}.elf"
> "${BuildArtifactFileBaseName}.hex"
>
> da Fehlten die Gänsefüßchen!

Bei mir funktioniert es, wenn ich unter Project > Properties > C/C++ 
Build > Settings > Build Steps > Post-build Steps > Command:

arm-atollic-eabi-objcopy -O ihex ${BuildArtifactFileBaseName}.elf 
${BuildArtifactFileBaseName}.hex

eintrage. Ohne Gänsefüßchen!

Die Datei arm-atollic-eabi-objcopy.exe befindet sich beim mir (WIN7 64) 
unter:

C:\Programme(x86)\Atollic\TrueSTUDIO for STMicroelectronics STM32 Lite 
2.2.0\ARMTools\bin

Grüße
Fritz M.
#2426819
Lesenswert?

#2428868
Lesenswert?

Hi,

das Discovery-Board sieht ja ganz nett aus ... zur Ergänzung des 
Controller-Zoo's! :-)

Aber by the way: der STM32F407 hat ja ein Ethernet-Interface ob Board - 
gefällt mir. Nur: irgendwie bin ich noch nicht schlau genug, was ich an 
Hardware wie verschalten muss, um das Ganze real als Netzknoten mit 
Standard-TP-verkabelung zu nutzen. So einfach eines der üblichen 
Ethernet-Mag's anschließen scheint wohl nicht zu funktionieren. (wie 
z.B. bei dem MicroChip-ENC-Baustein)

Hat irgend jemand da schon mal einen funktionierenden Schaltplan zu 
gesehen?

Schönen Abend noch, Thomas
#2429519
Lesenswert?

Hi,

Frank K. schrieb:
> Du wirst das Problem haben, das einige vom (R)MII-Interface benötigte
> Pins schon für andere Dinge auf dem Board verwendet werden. Ärgerlich!

Jetzt hab ich's begriffen. Irgendwie scheint mir das die ENC-Variante 
einfacher (in Sachen Aufwand als Hobby-Bastel-Lösung!), auch wenn's ganz 
sicher langsamer ist. Und da sollte es dann auch keine Strubbeleien mit 
irgendwelchen schon verwendeten Pin's geben.

Schönen Tag noch, Thomas
Gast #2430373
Lesenswert?

ich suche gerade verzweifelt den Pinout von dem Class-D Verstärker, wo 
die beiden Lautstärker Ausgänge rauskommen (laut Datenblatt soll man da 
ja bis zu 2*1 Watt ohne weitere Beschaltung raus bekommen - wenn man 
denn so viel Strom zur Verfügung hätte ;-))

Hab ich die Lautsprecherausgänge des Verstärkers übersehen, oder ist der 
Class-D Verstärker nur Deko im Datenblatt (also wird im Endeffekt nur 
der Line-Out/Kopfhörer benutzt)?
Gast #2430434
Lesenswert?

Tobias W schrieb:
> Hab ich die Lautsprecherausgänge des Verstärkers übersehen, oder ist der
> Class-D Verstärker nur Deko im Datenblatt (also wird im Endeffekt nur
> der Line-Out/Kopfhörer benutzt)?

Wenn ich das Schaltbild (Figur 14 auf Seite 33) im Datenblatt richtig 
interpretiere, sind die Lautsprecherausgänge nicht beschaltet.

http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/USER_MANUAL/DM00039084.pdf

Grüße
Fritz M.
Gast #2430455
Lesenswert?

Dario B. schrieb:
> Bei den Preisen ist es ja günstiger, die Boards zu kaufen, und den Chip
> und das Hühnfutter runter zu löten.



wenn das nicht soch wer gemacht hat ^^

2tes discovery geholt
M4 runtergefönt auf eigenes board drauf

den sensor , das mic und den DAC in die grabbelkiste und gut is  :)
Gast #2437824
Lesenswert?

Hallo,

Noname schrieb:
> (OpenOCD geht bestimmt, dachte mehr an ein kleines, eigenständiges Tool,
> dass man einfach via Batchdatei aufrufen kann...)

OpenOCD kennt den ST-Link-Adapter "noch" nicht, da es sich um keinen 
Low-Level JTAG-Adapter handelt.

Mit OpenOCD könntest du auch über eine Batch-Datei NUR das Flash 
brennen. Ich denke das meintest du mit "kleines, eigenständiges Tool"!?


Grüße.
(Firma: EleLa - www.elela.de) #2438553
Lesenswert?

Kann es sein, dass man mit dem ST-LINK_CLI.exe Tool den STM32F4xx nicht 
flashen kann?

Mit dem GUI Tool klappt das.

Die Kommandozeilenparameter:
-ME -P BlinkLED_ROM.bin 0x08000000 -V -Hardrst

Mit dem STM32F103 klappt das CLI Tool. Ich wollte es so in Eclipse 
einbinden damit ich schneller über den im Discovery Board einbebauten 
ST-Link flashen kann.
Gast #2439673
Lesenswert?

Doch das STM32F4Discovery Board lässt sich damit prima flashn. Läuft bei 
mir auch in Eclipse.

Noname schrieb:
> Beispiel für das Programmieren eines HEX-Files und anschließendem Start:
>
> "C:\Program Files (x86)\STMicroelectronics\STM32 ST-Link Utility\ST-Link 
Utility\ST-LINK_CLI.exe" -c SWD -P firmware.hex -V -Rst
Gast #2489539
Lesenswert?

Die Funktion STM_EVAL_COMInit wird in deinem Projekt auch nirgend wo 
definiert.
Da fehlt wohl eine stm32xxx_eval.c/.h für dein Board. Wenn keine passt, 
such diese Funktion in einer anderen stm32xxx_eval.c und pass sie für 
dich an.
Gast #2490712
Lesenswert?

Hi,

 ich habe soweit alles mit Linux am laufen. Ich kann debuggen aus 
Eclipse heraus und den Flash beschreiben.

Was mich gerade aber ziemlich stutzig macht: Warum gibt es kein malloc? 
Weil ich gar keine libc zur Verfügung habe?

Danke.

Gibts eigentlich irgendwo ein einfacheres Beispielprogramm wie man ein 
USB-HID Gerät baut?
#2490843
Lesenswert?

Ich bekomme es nun übtragen, aber es kommt nichts über die RX Leitung...

#define EVAL_COM1                        USART3
#define EVAL_COM1_CLK                    RCC_APB1Periph_USART3
#define EVAL_COM1_TX_PIN                 GPIO_Pin_8
#define EVAL_COM1_TX_GPIO_PORT           GPIOD
#define EVAL_COM1_TX_GPIO_CLK            RCC_AHB1Periph_GPIOC
#define EVAL_COM1_TX_SOURCE              GPIO_PinSource8
#define EVAL_COM1_TX_AF                  GPIO_AF_USART3
#define EVAL_COM1_RX_PIN                 GPIO_Pin_9
#define EVAL_COM1_RX_GPIO_PORT           GPIOD
#define EVAL_COM1_RX_GPIO_CLK            RCC_AHB1Periph_GPIOC
#define EVAL_COM1_RX_SOURCE              GPIO_PinSource9
#define EVAL_COM1_RX_AF                  GPIO_AF_USART3
#define EVAL_COM1_IRQn                   USART3_IRQn

Ursprünglich war das PortC und Pin 10 und 11. Die sind aber belegt und 
laut der Beschreibung liegen RX und TX von USART3 auch auf diesen Ports.

Ich hatte irgendwo mal was über Pin Umleitungen gelesen. hmmmmm
Gast #2491080
Lesenswert?

Hier mal meine gcc/eclipse-Version eines Webservers für unser Board.
Es ist eine angepasste Version des Standalone httpserver aus:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f4x7_eth_lwip.zip

-PHY ist ein DP83848
-DHCP (Voreinstellung) oder manuelle IP
-PC2 als analoger Eingang Anzeige in mV im Browser
-LED schalten im Browserfenster

Die angehängte zip im gleichen Verzeichnis wie die 
stm32f4x7_eth_lwip.zip entpacken. Kann auch als makefile Project in 
eclipse geöffnet werden.
In der ST Firmware wird nichts verändert.


Viel Spass...
Angehängte Dateien:
Gast #2491086
Lesenswert?

riki schrieb:
> ich habe soweit alles mit Linux am laufen. Ich kann debuggen aus
> Eclipse heraus und den Flash beschreiben.

Kannst du dazu ein paar Worte sagen? Ich bin soweit, dass das direkte 
flashen usw. funktioniert. Ich habe es aber noch nicht geschafft, das 
Debuggen in Eclipse zum Laufen zu bekommen. Ich denke, ich mache noch 
eine Kleinigkeit falsch. In Eclipse wird das neue Programm nicht 
geflashed.

Ich benutze:
Toolchain: https://github.com/esden/summon-arm-toolchain
ST-Link:   https://github.com/texane/stlink

Toolchain und ST-Link installiert nach dieser Anleitung: 
https://github.com/texane/stlink/blob/master/doc/tutorial/tutorial.pdf?raw=true

Dann bin ich hiernach vorgegangen:
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:eclipse1
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:eclipse2
http://www.chibios.org/dokuwiki/doku.php?id=chibios:guides:stlink_eclipse

Allerdings wird in der Anleitung die Installation mit der Truestudio 
Toolchain beschrieben. Daher habe ich das für den texane-gdb Server 
angepasst, aber wohl irgendwas falsch gemacht.

Vielleicht sieht ja jemand auf die schnelle eine Sache, die bei 
texane-stlink anders gemacht werden muss als üblich. Mich irritieren ein 
wenig die Linker(?)-Adressen, die in dem Tutorial angegeben werden. Hat 
das damit etwas zu tun, dass es nicht geht?
Gast #2491344
Lesenswert?

Da ich unter 22 Euro bleiben musste hab ich nur 2 bestellt.
Muss auch noch mal welche besorgen ;)

Versand ging zwar schnell bis D, ist dann aber leider doch beim Zoll 
hängengeblieben. Wurden damit über 3 Wochen.
#2491374
Lesenswert?

Die habe ich vorher via Google gefunden, habe aber keinen Preis
(zumindest bei dem aus Deutschland) sowie auch keine Info,
ob es am STM32F4 benutzbar ist:

Deutschland:
http://www.morethanip.com/boards_10_100_dp83848.htm

Schweden:
http://www.limetronic.com/shop/index.php?main_page=product_info&cPath=10&products_id=25

Thailand:
http://www.thaieasyelec.net/index.php/Ethernet-Module/DP83848-Ethernet-Phy-Breakout-Board/p_179.html

Weiss jemand weitere billige Break-Out-Boards mit DP83848 ?
#2501666
Lesenswert?

Ich versuche jetzt den ADC zum laufen zu bringen.

Original ist es ADC3 den es ja auf dem DSICOVERY Board ja nicht gibt.

Ich scheine aber irgend etwas zu übersehen.
1
static void ADC_Configuration(void)
2
{
3
  ADC_InitTypeDef ADC_InitStructure;
4
  ADC_CommonInitTypeDef ADC_CommonInitStructure;
5
  GPIO_InitTypeDef GPIO_InitStructure;
6

7
  /* Enable ADC3 clock */
8
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
9

10
  /* Configure ADC Channel 7 as analog input */
11
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
12
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
13
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;
14
  GPIO_Init(GPIOA, &GPIO_InitStructure);
15

16
  /* ADC Common Init */
17
  ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
18
  ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div6;
19
  ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
20
  ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles; 
21
  ADC_CommonInit(&ADC_CommonInitStructure); 
22

23
  /* ADC3 Configuration ------------------------------------------------------*/
24
  ADC_StructInit(&ADC_InitStructure);
25
  ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
26
  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
27
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
28
  ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None; 
29
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
30
  ADC_InitStructure.ADC_NbrOfConversion = 1;
31
  ADC_Init(ADC1, &ADC_InitStructure);
32

33
  /* ADC3 Regular Channel Config */
34
  ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 1, ADC_SampleTime_56Cycles);
35

36
  /* Enable ADC3 */
37
  ADC_Cmd(ADC1, ENABLE);
38

39
  /* ADC3 regular Software Start Conv */ 
40
  ADC_SoftwareStartConv(ADC1);
41
}
#2517279
Lesenswert?

Ich Versuche gerade eine STM32F417ZGT (144 Pin) am STLINK V2 zum 
"laufen" zu bringen. Funktioniert leider noch nicht.

Was muss außer VDD, VDDA, VSS, VSSA, VCAP1+2 noch beschaltetet sein?

Das JTag habe ich laut ST Doku angeschlossen.

PDR_ON auf Masse gelegt

Was ist mit BOOT0 und BOOT1 ?
#2517485
Lesenswert?

Dazu müsste ich mir dann den Adapter auf 20 Pol vom STLink bauen. Für 
den Schaltungsentwurf ist es sicher zu überlegen später. Im Moment 
bringt es mich aber nicht wirklich weiter.

Ich habe jetzt die ganzen Spannungen usw. noch mal überprüft. Morgen 
werde ich noch mal einen Chip auf eine neue Adapterplatine löten. 
Vielleicht bringt das was...
#2521820
Lesenswert?

Ich mal wieder ;-)

Ich arbeite mich gerade durch die stm32f4xx_dsp_stdperiph_lib mit 
TrueStudio.

Da soll ich jetzt

Add the "stm324xg_eval_sdio_sd.c" file (under 
Utilities\STM32_EVAL\STM3240_41_G_EVAL) to the project source list

Wie macht man das im TrueStudio?

Grüße und Dank an alle die mir bis jetzt geholfen haben!

Jörg
Gast #2530678
Lesenswert?

Hi,

ich komme vom AVR und möchte für zukünftige Projekte auf 32-bit cores 
umsteigen. Das STM32F4 Discovery Board hört sich ja sehr interessant an 
:)
Wo ich noch nicht ganz durchblicke:
Das Board hat ja diesen STLink direkt drauf, sodass man im Grunde per 
USB direkt an den PC kann und keinen extra Programmer braucht. Das würde 
ich mir gerne für mein eigenes Board klauen :) Also STM32F4 und davor 
direkt so einen STLink. Leider habe ich bisher weder Schematics vom 
Discovery-Board, noch konkretere Hinweise gefunden, wie sowas zu 
realisieren wäre. Hat da jemand schon Ehrfahrungen gemacht, die er 
teilen würde ?

gruß
#2533347
Lesenswert?

Ich versuche immer noch mein selbst gebautes Board zum laufen zu 
bringen.

Klappt soweit auch, bin mir jetzt nur nicht sicher ob der Externe Takt 
läuft.

Wenn ich mit Atollic ein neues Projekt mache, dann gibt es nur einen 
loop wo 1 Variable hoch gezählt wird. Das lässt sich auch Debuggen.

Meine Frage, wird da der interne Takt benutzt oder der externe?
#2533373
Lesenswert?

ole schrieb:
> Das Board hat ja diesen STLink direkt drauf, sodass man im Grunde per
> USB direkt an den PC kann und keinen extra Programmer braucht. Das würde
> ich mir gerne für mein eigenes Board klauen :)

Das wird so ohne weiteres nicht gehen, wenn du nicht die Firmware für 
den kleine Controller hast, der als ST Link programmiert ist. Du kannst 
aber so ein STM32F4Discovery Board nehmen um andere Controller zu 
programmieren und zu Debuggen über die SWD Pin-Leiste. Musst nur die ST 
Link Jumper setzen/wegnehmen. Somit hast du dein Programmer und Debugger 
für 16 Euro.
#2533521
Lesenswert?

Jörg B. schrieb:
> Meine Frage, wird da der interne Takt benutzt oder der externe?

ja, aber der µC läuft nur mit knapp 54MHz, weil die STM FW Lib von einen 
25MHz Quarz ausgeht, aber nur ein 8MHz auf dem Discovery verbaut ist.

Wenn Du die 168MHz erreichen willst, musst Du folgendes ändern

In der "system_stm32f4xx.c" PLL_M auf 8 ändern
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M      8   /* 25 */
#define PLL_N      336 /* 336 */

und
HSE_VALUE = 8000000
in den Projektproperties von Atollic als globales Sysmbol eintragen.

Dann läuft das System mit externen Quarz und 168MHz.
Gast #2534469
Lesenswert?

Guten Morgen!

Hat zufällig noch jemand ein ungeflashtes Board rumliegen oder noch ein 
Backup? Ich hätte gerne nochmal das Binary von dem Demo-Programm, was 
bei der Auslieferung drauf war.

(Also das mit den LEDs, die in Abhängigkeit von der Lage blinken und der 
Maus-Emulation).

Danke und gute Nacht,
Olli
#2535696
Lesenswert?

Ich versuche seit Stunden das Demo Projekt Audio_playback_and_record als 
Media USB Key so einzurichten, dass man es verändern , sprich codefiles 
hinzufügen kann.

Compilieren lässt es sich nur wenn man die source nicht mit kopiert beim 
Import nach TrueStudio.


Ich habe mir also die Mühe gemacht es in ein neues Projekt zu kopieren.

Jetzt kommt aber immer der Fehler:

fatal error: ARMCM4.h: No such file or directory  arm_math.h 
/MEDIA_USB_KEY/Libraries/CMSIS/Include  line 263  C/C++ Problem

Hat jemand da einen Tip?

Grüße
#2535869
Lesenswert?

Hallo,

> Compilieren lässt es sich nur wenn man die source nicht mit kopiert beim
> Import nach TrueStudio.

Mit TrueSTUDIO v2.2 konnte man wunderbar importieren.

Mit TrueSTUDIO v2.3 geht gar nichts mehr.

Ich verwende mittlerweile die Keil-Software. Da funktioniert alles.

Nochmals zum TrueSTUDIO-Problem: wenn du unter der alten Version was 
erstellt hast, kann man es auch für die neue Version verwenden.

Man kann aber ein leeres STM32F4DISCOVERY-Board Projekt erstellen und 
die neuen Dateien (aus anderen Projekten) rein kopieren! Das haut super 
hin.

Als Anlage ein funktionierendes Projekt.

Gruß xmega
Angehängte Dateien:
#2537031
Lesenswert?

Hallo,

holst du die Daten von hier: STM32F4-Discovery_FW_V1.1.0/Projekte

Ich hab mir mit der Version  TrueSTUDIO v2.2  alle Projekt in meinem 
Workspace angelegt.

Kannst du nur das Demo Projekt Audio_playback_and_record nicht starten 
oder gehen andere Projekte auch nicht?

Gruß xmega
#2537054
Lesenswert?

Genau aus der STM32F4-Discovery_FW_V1.1.0/Projekte

Wenn ich die Sourcen nicht kopieren lassen dann laufen die projekte. 
Egal ob 2.2 oder 2.3

Wenn ich mit kopieren importiere wir zwar einiges kopiert, ab längst 
nicht alles.

Mich interessiert nur das Media_USB_KEY Projekt. Wenn du es exportieren 
kannst als Zip hätte ich das Zip dann gerne ;)
#2537488
Lesenswert?

Hallo,

als erstes mal MEDIA_USB_KEY.axf mit Keil µVision4 erzeugt.

Funktioniert bei mir!

Leider habe ich gerade das Teil nicht im Workspace. Vieleicht hat es 
auch nicht funktioniert! Ich weis es nicht mehr.

Ich würde dir empfehlen, die neue Keil µVision4 zu installieren.

Hier funktioniert wirklich alles. Die kennt das STM32F4-Discovery-Board 
und den St-Link.

Ich werde mich mal in den nächsten Tagen mit deinem Problem 
beschäftigen.


Gruß xmega
Angehängte Dateien:
#2538530
Lesenswert?

Hallo Gerhard,
das habe ich doch schon ein paar mal geschrieben.

Ich will die aber kopieren!!!! Weil ich das Projekt dann erweitern / 
ändern möchte.

Versuch mal in das User Verzeichnis eine Datei einzufügen... die 
erscheint dann gleich 2 mal im Dateibaum und es gibt compilerfehler 
dadurch...

Das echt alles großer Mist, ich möchte allerdings nicht weg von Atollic, 
die 30 K Codebegrenzung ist mir ein Dorn im Auge bei Keil.

Gruß

Jörg
Gast #2538700
Lesenswert?

@ Christoph: Danke, habs gefunden! ;)


Ich versuche nun schon seit Tagen das alles mir unter Mint/Debian 
einzurichten und bin auch schon zwei Anleitungen befolgt:

http://www.mikrocontroller.net/articles/STM32F4-Discovery
http://de.system-failures.org/projects/stm32f4discovery-board-unter-linux/

Aber irgendwie bringt mir das rein gar nichts. Ich bekomme nichts 
kompiliert, da der die "cstart_thumb2.asm" nicht kompilieren möchte:
1
Building file: ../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm
2
Invoking: ARM Sourcery Linux GCC Assembler
3
arm-none-eabi-gcc -x assembler-with-cpp -Wall -Wa,-adhlns="CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.o.lst" -c -fmessage-length=0 -MMD -MP -MF"CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.d" -MT"CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.d" -mcpu=cortex-m4 -mthumb -g3 -gdwarf-2 -o "CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.o" "../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm"
4
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm: Assembler messages:
5
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:3: Error: bad instruction `to allow the use of this file for both ARMv6M and ARMv7M,'
6
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:4: Error: bad instruction `we will only use 16-bit Thumb intructions.'
7
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:6: Error: bad instruction `usr/sys mode stack pointer'
8
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:7: Error: bad instruction `symbol required by debugger'
9
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:8: Error: bad instruction `rom to RAM copy table'
10
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:21: Error: non-constant expression in ".if" statement
11
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:24: Error: non-constant expression in ".if" statement
12
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:35: Error: bad instruction `anticipate possible ROM/RAM remapping'
13
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:36: Error: bad instruction `by loading the 114eal32program address'
14
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:40: Error: bad instruction `initialize the stack pointer'
15
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:41: Error: bad instruction `make this part of the vector table'
16
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:44: Error: bad instruction `call the clock system intitialization function.'
17
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:47: Error: bad instruction `copy initialized sections from ROM to RAM'
18
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:48: Error: ARM register expected -- `and clear uninitialized data sections in RAM'
19
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:53: Error: bad instruction `load type'
20
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:54: Error: bad instruction `dst address'
21
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:55: Error: bad instruction `src address'
22
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:56: Error: bad instruction `size'
23
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:65: Error: instruction not supported in Thumb16 mode -- `subs r7,r7,#1'
24
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:70: Error: instruction not supported in Thumb16 mode -- `adds r3,r3,#16'
25
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:74: Error: instruction not supported in Thumb16 mode -- `subs r7,r7,#1'
26
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:78: Error: instruction not supported in Thumb16 mode -- `adds r3,r3,#16'
27
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:84: Error: non-constant expression in ".if" statement
28
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:93: Error: bad instruction `load r10 with end of USR/SYS stack,which is'
29
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:94: Error: bad instruction `needed in case stack overflow checking is on'
30
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:95: Error: symbol `NOTE' is already defined
31
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:95: Error: bad instruction `use 16-bit instructions only,for ARMv6M'
32
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:101: Error: non-constant expression in ".if" statement
33
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:105: Error: non-constant expression in ".if" statement
34
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:109: Error: bad instruction `retrieve argc and argv(default argv[0]==NULL&argc==0)'
35
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:112: Error: bad instruction `call main'
36
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:116: Error: bad instruction `call exit using the return value from main()'
37
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:117: Error: unexpected character ` ' in type specifier
38
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:117: Error: bad instruction `note. Calling exit will also run all functions'
39
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:118: Error: bad instruction `that were supplied through atexit().'
40
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:121: Error: bad instruction `weak definition'
41
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:126: Error: unknown pseudo-op: `.endsec'
42
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:128: Error: unknown pseudo-op: `.calls'
43
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:129: Error: unknown pseudo-op: `.calls'
44
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:130: Error: non-constant expression in ".if" statement
45
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:135: Error: end of file inside conditional
46
../CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.asm:130: Error: here is the start of the unterminated conditional
47
make: *** [CMSIS/Device/ST/STM32F4xx/Source/Templates/TASKING/cstart_thumb2.o] Fehler 1

Bitte helft mir...
Gast #2538850
Lesenswert?

@Olli,
was genau hast Du vor? Willst Du etwas an den gemeldeten Dateien ändern 
oder nur den Auslieferungszustant wieder herstellen?
Im zweiten Fall leg einfach das Makefile in den gleichen Ordner in dem 
sich auch das originale STM32F4-Discovery_FW_V1.1.0 befindet und starte 
make.

Es wird nichts in STM32F4-Discovery_FW_V1.1.0 verändert.

Das ist dann dein Part ;-)

Ich benutze linux/gcc/eclipse.
Angehängte Dateien:
Gast #2538883
Lesenswert?

Ich hätte vielleicht genauer sagen sollen, was ich vor habe:
Ich wollte eigentlich "nur" das Blink-Beispiel aus dem Wiki hier zu dem 
Board in Eclipse kompilieren, und dann per QSTLink flashen.

Das mit dem Demo-Programm war ne andere Sache.

Aber ich danke schonmal fürs Makefile, ich probiere das mal ohne den 
Umweg über Eclipse....
Gast #2538957
Lesenswert?

Okay, das geht schonmal - DANKE!

Und wie mache ich das dann bspw. bei dem genannten Blink-Beispiel?
Ich habe in Projects den Ordner Blink angelegt mit der main.c und der 
stm32f4xx_conf.h und das Makefile versucht ein wenig anzupassen. Aber 
das will nicht so wirklich:
1
....
2
make: *** Keine Regel vorhanden, um das Target »arm-none-eabi-gcc«, 
3
  benötigt von »Blink.elf«, zu erstellen.  Schluss.

Im Anhang ist das akuelle Makefile.

Aber wirklich ergonomisch ist auch anders wenn man für jedes Projekt das 
komplette Makefile wieder umkrempeln muss, oder?!?
Angehängte Dateien:
Gast #2538991
Lesenswert?

Olli schrieb:
> Aber wirklich ergonomisch ist auch anders wenn man für jedes Projekt das
> komplette Makefile wieder umkrempeln muss, oder?!?

Das ist der Preis für die kostenlose Freiheit.

Zum Makefile:
-ich gehe mal davon aus das Du den Project/Blink Ordner auch erstellt 
hast
-als nächtes arbeite einfach die Fehler der Reihe nach ab
--stm32f4xx_conf.h: Datei oder Verzeichnis nicht gefunden
  > such die Datei und gib ihren Pfad als include mit an

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren