Forum: Mikrocontroller und Digitale Elektronik STM32F411 & Em::block - Schaffe es nicht, Nucleo board direkt aus der IDE heraus zu programmieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Thomas S. (thomas-st)


Lesenswert?

Moin, moin,

ich bin dabei, mich in die STM32-Welt einzuarbeiten und treffe gleich 
bei den ersten Schritten auf Probleme: ich schaffe es nicht den µC zu 
programmieren (zumindest nicht aus der IDE heraus):
- Nucleo-Board mit STM32F411RE - Programmierung über ST-Link/V2-1
- IDE: Em::blocks 2.30

Em::blocks habe ich nach der Anleitung in 
http://www.mikrocontroller.net/articles/STM32_-_Einstieg_mit_Em::Blocks 
konfiguriert - soweit läuft auch alles; ich kann Programme erstellen, 
compilieren und linken ... aber nicht auf das Board übertragen :(

Der Debugger meldet zwar "Loading section .text, size 0x694 lma 
0x8000000" aber im µC kommt nichts an.

Erst wenn ich das mit erstellte hex-File mittels ST-LINK_CLI.exe 
übertrage, funktioniert es.

Kann mir jemand helfen, und sagen, wo der Fehler liegt: bei mir, bei 
Em::blocks oder beim nucleo-board?

Schomal vielen Dank und viele Grüße,
Thomas

von O. H. (ohagendorf)


Lesenswert?

Welche Windows Version?

Unter Windows 8 und 8.1 gibt es Probleme mit dem Composite USB Gerät der 
Nucleo Boards. Im Moment gibt es keine Lösung für dieses Problem, 
zumindest keine mir bekannte.

Die Problembeschreibung findet sim im em::block Forum.

von Thomas S. (thomas-st)


Lesenswert?

Hi,

ist Windows 7 Professional, 64bit.

Ich werde mich dennoch mal im em::block Forum umsehen.

Vielen Dank,
Thomas

von npn (Gast)


Lesenswert?

Thomas St. schrieb:
> Hi,
>
> ist Windows 7 Professional, 64bit.
>
> Ich werde mich dennoch mal im em::block Forum umsehen.
>
> Vielen Dank,
> Thomas

Binde den ST-Link_CLI im Menue Tools einfach ein.
Tools -> Configure Tools
dort 'Add'

Name:
Load Hex

Executable:
C:\Program Files\..\ST-LINK_CLI.exe (vollständigen Pfad)

Parameters:
-P "${PROJECT_DIR}${TARGET_OUTPUT_DIR}${TARGET_OUTPUT_BASENAME}.hex"

Und unter Launching options den zweiten Punkt wählen (Launch tool 
hidden..)

Mit OK den Dialog schließen und ab sofort hast du unter dem Menue Tools 
den Punkt 'Load Hex' zum Flashen zur Verfügung.

von Thomas S. (thomas-st)


Lesenswert?

npn schrieb:
> Binde den ST-Link_CLI im Menue Tools einfach ein.

Das ist auf jeden Fall schon mal ein (teilweise - siehe unten zu SRAM) 
funktionierender work around. Dafür schon mal vielen Dank. Allerdings 
würde ich dennoch gerne ergründen, wo denn der Fehler steckt ... um 
nicht später an anderer Stelle wieder über ihn zu stolpern.

Was mit dem work around anscheint nicht funktioniert, ist das debuggen 
von Programmen aus dem SRAM heraus...

Viele Grüße,
Thomas

von Bernd K. (prof7bit)


Lesenswert?

Hast Du es zufällig an einem blauen USB-Port hängen? Wenn ja dann 
stöpsel mal um und probiers dann nochmal. Manche USB-3.0 host controler 
vertragen sich anscheinend nicht mit irgendwas was die libusb-Treiber 
des debugservers machen wollen.

Bei mir z.B. verhielt es sich dann so als hätte ich das Nucleo überhaupt 
nicht angestöpselt, es wurde nicht gefunden, weder vom em:blocks-eigenen 
debug server, noch von texane/stlink, noch von openOCD, obwohl es mit 
der proprietären ST-Link-Software am selben Port einwandfrei 
funktionierte.

Hat mich fast nen kompletten Arbeitstag gekostet, auf so was kommt man 
ja im Leben nicht.

: Bearbeitet durch User
von Thomas S. (thomas-st)


Lesenswert?

Bernd K. schrieb:
> Hast Du es zufällig an einem blauen USB-Port hängen? Wenn ja dann
> stöpsel mal um und probiers dann nochmal.

Ich habe es jetzt an verschiedenen USB-Ports versucht: 2.0, 2.0 mit 
dazwischenliegendem Hub, 3.0 -> keine für mich sichtbare Änderung ... 
leider.

Bisher hing es an einem 2.0-Port mit dazwischenliegendem Hub.

Viele Grüße,
Thomas

von Thomas S. (thomas-st)


Lesenswert?

Thomas St. schrieb:
> ich bin dabei, mich in die STM32-Welt einzuarbeiten und treffe gleich
> bei den ersten Schritten auf Probleme: ich schaffe es nicht den µC zu
> programmieren (zumindest nicht aus der IDE heraus):
> - Nucleo-Board mit STM32F411RE - Programmierung über ST-Link/V2-1
> - IDE: Em::blocks 2.30

Für alle, die eventuell auch vor diesem Problem stehen, ich habe die 
Ursache gefunden: die mit Em::blocks 2.30 mitgelieferte STLinkGDB.exe 
kennt den STM32F411RE noch nicht (http://www.emblocks.org/tickets/201). 
Wenn man den Links zum Patch folgt, landet man irgendwann bei 
Ticket#210. Die dort verlinkte STLinkGDB.exe funktioniert dann auch mit 
dem STM32F411RE.

Vielen Dank an alle die geholfen haben und viele Grüße,
Thomas

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.