Forum: Mikrocontroller und Digitale Elektronik NUCLEO-L412KB: Läuft nur mit Debugger an


von Martin R. (mme)


Lesenswert?

Hallo,

ich habe ein NUCLEO-L412KB Board, das ich mit Segger-Software debugge.
Da man den Segger-Debugger nicht ans Board anschließen kann (SWD ist 
nicht auf Pins geführt) habe ich den auf dem Board integrieren ST-Link 
auf dem Board als J-Link konvertiert (Programm STLinkReflash.exe). 
Funktioniert auch problemlos.

Wenn ich aber den Debugger beende, läuft das Programm nicht los, auch 
wenn ich (USB-)Netzreset mache oder die Reset-Taste drücke.

Das selbe geht auch nicht, wenn ich "Restore ST-Link" mache und den 
Originalzustand des integrierten ST-Links erzeuge.

Habe auch schon den integrierten ST-Link auf V2.J35.M26 upgedated. 
Bringt alles nichts.

Warum läuft der Mikrocontroller nicht los?

Gruß
Martin

von Stefan F. (Gast)


Lesenswert?

Martin R. schrieb:
> Warum läuft der Mikrocontroller nicht los?

Zwei Möglichkeiten fallen mir da ein:

a) Er bekommt keinen Takt -> Auf R/C Oszillator umstellen
b) Der Programmieradapter zieht die Reset Leitung auf Low -> Leitung 
unterbrechen.

von Martin R. (mme)


Lesenswert?

Stefan F. schrieb:
> a) Er bekommt keinen Takt -> Auf R/C Oszillator umstellen
Läuft schon immer mit RC-Oszillator.

> b) Der Programmieradapter zieht die Reset Leitung auf Low -> Leitung
> unterbrechen.
Reset ist High.

Ich vermute der Mikrocontroller wird per Befehl über die 
SWD-Schnittstelle im Wartemodus gehalten.

von Johannes S. (Gast)


Lesenswert?

oder wenn semihosting aktiviert ist und etwas ausgegeben wird hängt der 
µC auch.

von Martin R. (mme)


Lesenswert?

Johannes S. schrieb:
> oder wenn semihosting aktiviert ist und etwas ausgegeben wird hängt der
> µC auch.

was kann man dagegen machen?

von Jim M. (turboj)


Lesenswert?

Martin R. schrieb:
>> oder wenn semihosting aktiviert

Martin R. schrieb:
> was kann man dagegen machen?


Semihosting in den Linker Optionen abstellen.

von Johannes S. (Gast)


Lesenswert?

Gucken ob das aktiv ist, wenn man eine IDE verwendet ist es evtl. nur 
ein Häkchen was mal unbedacht gesetzt wurde.

von Larry (Gast)


Lesenswert?

Wenn man den ST-Link nicht braucht, z.B. weil das Board sowieso
standalone laufen soll, einfach den RST vom ST-Link auf Low ziehen.

Das ist bei manchen sogar schon fuer eine optionale Loetbruecke
vorbereitet. (Pin 8 vom STM32F103)

Ob da ein JLinklight oder die originale Firmware drauf ist,
ist logischerweise egal...

von Larry (Gast)


Lesenswert?

P.S. Nebenwirkungen:

Der Controller bekommt vom ST-Link keinen Takt mehr.
Also Quarz bestuecken und Bruecke zum ST-Link auftrennen.
HSE-Bypass darf dann natuerlich nicht eingeschaltet werden.
Der interne Taktgenerator ist natuerlich nicht betroffen.

Der u.U. vorhandene serielle Adapter vom ST-Link ruht auch.

Die uebrigen Hinweise (Semihosting, ...) auch beachten.

von Martin R. (mme)


Lesenswert?

Semihosting: es gibt bei Segger keine entsprechende Option zum Auswählen

RST vom ST-Link auf Low ziehen: brachte nichts

USB nicht stecken und 5V an VIN einspeisen: brachte nichts

USB nicht stecken und 3,3V an VDD einspeisen (Jumper JP1 zum 
Spannungsregler offen): brachte nichts.

von moep (Gast)


Lesenswert?

Hast du am Linkerskript rumgespielt? Das ist mir mal passiert, als ich 
einen Bootloader auf einem ARM Cortex installiert habe. Der Code wurde 
hinter dem Bootloader ins Flash geschrieben. Wenn kein Bootloader drauf 
war, lief der Controller nur, wenn der Debugger die Ausführung an der 
richtigen Adresse gestartet hat..

von pegel (Gast)


Angehängte Dateien:

Lesenswert?

Möchtest Du ein Blinky probieren?

HSI RC, 1MHz am MCO.

von Martin R. (mme)


Lesenswert?

pegel schrieb:
> Möchtest Du ein Blinky probieren?

Gerne, aber ich habe nun das Problem, daß  der Cube-Programmer nun nicht 
mehr geht, um das HEX-File drauf zu schieben. Er kann keine Verbindung 
zum Board aufbauen:

13:41:54 : ST-LINK error (DEV_USB_COMM_ERR)
13:41:54 : Error: Problem occured while trying to connect

Im Gerätemanager wird jedoch nach dem Stecken COM7 erkannt.

von Martin R. (mme)


Lesenswert?

moep schrieb:
> Hast du am Linkerskript rumgespielt?

Nein, zumindest Nicht bewußt.

von pegel (Gast)


Lesenswert?

Martin R. schrieb:
> daß  der Cube-Programmer nun nicht
> mehr geht

Hast Du das Board mal vom USB getrennt?
Danach solltest Du vielleicht ein ST-Link Firmware Update probieren.

von Martin R. (mme)


Lesenswert?

Cube-Programmer geht nun wieder. Hatte sich komplett aufgehangen.

Das Blinky-Hex-File von "pegel" geht, wenn ich aber mein HEX-File drauf 
spiele, sollte es eigentlich auch blinken. Tut sich aber nichts.

von Martin R. (mme)


Angehängte Dateien:

Lesenswert?

Hab mal das Projektfile vom Segger als Textfile angehängt. Vielleicht 
fällt jemandem eine falsche Einstellung auf.

Ich habe den Cube für das Projekt verwendet und Toolchain MDK-ARM V5 
verwendet. Das damit erzeugte MDK-Projekt kann man dann im Segger 
importieren. Ob da was schief gelaufen ist? Ich arbeite erst seit diesem 
Projekt mit dem neusten Cube. Was mir auffiel, daß die C-Dateien nach 
dem Import (main.c) dann im Segger nicht erschienen sind, mußte ich dann 
per Hand dazu fügen.

von pegel (Gast)


Lesenswert?

Von Segger habe ich keine Ahnung, aber Du kannst die CubeMX Projekt 
Datei anhängen. (.ioc)

von Martin R. (mme)


Angehängte Dateien:

Lesenswert?

anbei die Cube-Datei.

von pegel (Gast)


Lesenswert?

Merkwürdig.

Deine ioc meint, dass die L4 v1.14.0 Lib oder eine Abhängigkeit fehlt.
Ist aber bei mir definitiv vorhanden. Habe die .hex damit erstellt.

Vielleicht kann das noch jemand anders testen bevor ich etwas bei mir 
verstelle?

von pegel (Gast)


Lesenswert?

Ob das vielleicht mit der CubeMX Version zu tun hat?

Du hast die 5.3.0, ich die aktuelle 5.4.0.

Ich kenne eigentlich eine andere Meldung, wenn die .ioc aus einer 
anderen Version kam, aber man weiss ja nie....

von Martin R. (mme)


Angehängte Dateien:

Lesenswert?

pegel schrieb:
> Du hast die 5.3.0, ich die aktuelle 5.4.0.

Ich habe nun Cube auf 5.4.0 upgedated und das alte Projekt geöffnet. Hat 
soweit plausible Einstellungen angezeigt. Aber beim Erzeugen des Codes 
bleibt das Programm hängen (siehe Anhang).

von pegel (Gast)


Lesenswert?

Hat er es noch geschafft?

Wie gesagt, habe keinen Schimmer von Segger.
Kann das ein Makefile Projekt importieren?
Das kann CubeMX auch erstellen.

Was meint Segger dazu?

von Martin R. (mme)


Angehängte Dateien:

Lesenswert?

Nein Cube bleibt generell hängen, auch mit neu angelegtem Projekt.
Habe auch Java neu installiert, brachte nichts.

Import-Möglichkeiten siehe Anhang. Segger an sich ist super, vor allem 
als Privatperson kostenlos! Und Debug-Box für Privatanwendungen kostet 
nur 60 €.

Bei Segger bekommt man keinen aktiven Support als Privatperson. Da hat 
man nur Möglichkeiten über Forum.
Und zum Thema Probleme ST-Link als J-Link mißbrauchen wollen sie keinen 
Support geben. Wollen ja schließlich ihre Box verkaufen...

von pegel (Gast)


Lesenswert?

Kann man, nachdem man in Segger schon gearbeitet hat, noch einmal 
Änderungen in CubeMX vornehmen?
Falls nicht, CubeIDE kann das ;)

von Martin R. (mme)


Lesenswert?

pegel schrieb:
> ann man, nachdem man in Segger schon gearbeitet hat, noch einmal
> Änderungen in CubeMX vornehmen?
> Falls nicht, CubeIDE kann das ;)

Ja, das geht problemlos. Wenn man vom Cube auf Segger umschaltet fragt 
er, ob man die extern geänderten Dateien verwenden will.

von pegel (Gast)


Lesenswert?

Dann ist gut.

Bleibt nur die Frage, ob CubeMX nicht korrekt exportiert, oder Segger 
nicht korrekt importiert.

Läuft denn das neue CubeMX jetzt richtig?

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.