STM32 aussperren möglich?

OP #7602269
Lesenswert?

Hallo,

ich habe bei einem STM32 einen externen Oscillator als Taktgeber vorgesehen. Diesen kann ich jedoch über einen GPIO an/ausschalten.

Wenn ich zuerst versuche den Oscillator zu verwenden, ohne dass dieser aktiviert ist, kann ich mich dann aus dem Controller aussperren, vor allem wenn ich dafür die HAL Routine nutze?

Persönliche Seite #7602280
Lesenswert?

J. S. schrieb:

die STM haben einen Bootloader in den man starten kann wenn der Pin BOOT=1 ist. Dann kommt man wieder per SWD dran und kann korrigierten Code hochladen.

Nicht nötig. So gut wie alle Programmer ziehen den Reset-Pin auf Low und flashen dann. Da spielt es keine Rolle was für Code im Flash ist. Der Code kann völlig kaputt sein, den Takt abschalten, egal.

Aussperren kann man sich nur indem man per Option Bytes den Bootloader und das SWD/JTAG-Interface permanent abschaltet und zuvor kaputten Code flasht.

#7602300
Lesenswert?

wenn der Reset Pin am SWD angeschlossen ist. Ich habe mehrere Boards wo das nicht so ist, teilweise ist Reset nicht mal auf einem Headerpin rausgeführt und ich musste den am Reset Taster anlöten. Boot Button ist da vorhanden, aber lästig wenn die App die MCU ständig in den deep sleep schickt. Bei den LPC hat im deep power down auch der Reset keine Funktion mehr, den muss man über WakeUp wieder starten, der liegt aber auch nicht auf dem SWD Interface.

#7602322
Lesenswert?

Ada J. Quiroz schrieb:

ich habe bei einem STM32 einen externen Oscillator als Taktgeber vorgesehen. Diesen kann ich jedoch über einen GPIO an/ausschalten.

Tja, es gibt mittlerweile über 1300 verschiedene (ohne wenn's teilweise nur Gehäusevarianten sind). Bei machen lässt sich die PLL gar nicht auf HSE umschalten, wenn der HSE gar keinen stabilen Takt liefert. Bei anderen wird bei Ausfall des HSE automatisch (oder konfigurierbar) auf HSI umgeschaltet. Also: Nichts genaues weiß man nicht ... Wer nicht mal den Typ des "STM32" benennen kann, ist m. E. einfach ein Chaot.

#7602465
Lesenswert?

J. S. schrieb:

wenn der Reset Pin am SWD angeschlossen ist. Ich habe mehrere Boards wo das nicht so ist

Das ist ja wohl dein Problem. SWD ohne Reset ist Mist und fällt einem irgendwann auf die FÜße.

Mit Reset kann man die Dinger immer wieder neu flashen, egal was man bei den Clock Einstellungen verzockt hat. Ein großer Vorteil gegenüber den Fuse-Bits bei AVR. Aber klar, schmeiß den Vorteil weg und lass Reset weg. Und dann heul im Forum rum. Kein Mitleid. Kriege deine Entwicklung auf die Kette.

Gast #7602500
Lesenswert?

J. S. schrieb:

Ich habe mehrere Boards wo das nicht so ist

Cyblord -. schrieb:

Aber klar, schmeiß den Vorteil weg und lass Reset weg. Und dann heul im Forum rum. Kein Mitleid. Kriege deine Entwicklung auf die Kette.

Stell dir mal vor, er hat die Boards im Sinne von "besitzen" oder "damit arbeiten müssen", aber er hat sie nicht selbst entwickelt und kann das auch nicht beeinflussen. Ist jetzt nicht soooo ungewöhnlich, oder?

#7602518
Lesenswert?

Steve van de Grens schrieb:

Stell dir mal vor, er hat die Boards im Sinne von "besitzen" oder "damit arbeiten müssen", aber er hat sie nicht selbst entwickelt und kann das auch nicht beeinflussen. Ist jetzt nicht soooo ungewöhnlich, oder?

Natürlich ist das ungewöhnlich. Man akzeptiert nicht einfach irgendeine Hardware. Wenn die entsprechenden Belegung für SWD nicht drauf sind, kann man damit nicht entwickeln. Dann kann man vielleicht noch Fädeln o.ä. Aber einfach akzeptieren ist nicht.

(Firma: Schweigstill IT) Persönliche Seite #7602698
Lesenswert?

Cyblord -. schrieb:

Natürlich ist das ungewöhnlich. Man akzeptiert nicht einfach irgendeine Hardware. Wenn die entsprechenden Belegung für SWD nicht drauf sind, kann man damit nicht entwickeln. Dann kann man vielleicht noch Fädeln o.ä. Aber einfach akzeptieren ist nicht.

Gerade in großen Unternehmen, in denen die Hardware- und Firmwareentwicklung streng getrennt sind, kann man sich als Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse überhaupt auf der Leiterplatte vorhanden sind.

#7602719
Lesenswert?

Cyblord -. schrieb:

Aber klar, schmeiß den Vorteil weg und lass Reset weg. Und dann heul im Forum rum. Kein Mitleid. Kriege deine Entwicklung auf die Kette.

Hat dein Chef dich heute morgen wieder gefickt?

SWD kommt ohne Resetleitung aus, Reset kann über die SWD Daten/Taktleitungen ausgelöst werden. Es funktioniert zuverlässig solange man den CPU Kern nicht schlafen lässt. Krieg du deine Software Entwicklung in den Griff, ich kann es auch ohne HW Reset wenn nötig.

#7602721
Lesenswert?

Andreas S. schrieb:

Gerade in großen Unternehmen, in denen die Hardware- und Firmwareentwicklung streng getrennt sind, kann man sich als Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse überhaupt auf der Leiterplatte vorhanden sind.

ja, Arduino mit seiner professionellen Portenta Machine Control SPS hat das auch fertiggebracht die SWD Pins für IO und Steuersignale zu verbraten.

#7602838
Lesenswert?

Andreas S. schrieb:

Gerade in großen Unternehmen, in denen die Hardware- und Firmwareentwicklung streng getrennt sind, kann man sich als Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse überhaupt auf der Leiterplatte vorhanden sind.

J. S. schrieb:

SWD kommt ohne Resetleitung aus, Reset kann über die SWD Daten/Taktleitungen ausgelöst werden. Es funktioniert zuverlässig solange man den CPU Kern nicht schlafen lässt. Krieg du deine Software Entwicklung in den Griff, ich kann es auch ohne HW Reset wenn nötig.

Kann ich auch. Will ich aber nicht.

Mir scheint ihr habt wenig zu melden und müsst fressen was die HW euch hinwirft. Ich entscheide welche HW akzeptabel ist oder nicht. Ich reviewe die Schaltung vorher, gerade im Hinblick auf Debug-Schnittstellen usw. Und SWD hat einen Reset oder die HW entwickelt die SW dafür selber. Da müsst ihr wohl erst noch hinkommen. Braucht ihr ein Rezept für ein paar Eier von Dr. Cox?

Persönliche Seite #7602855
Lesenswert?

Cyblord -. schrieb:

Ich entscheide welche HW akzeptabel ist oder nicht.

Also Arbeitsverweigerung? In welchen Betrieben kann man vom Vorgesetzten angelieferte Schaltungen ablehnen ohne gegangen zu werden? Gerade in Zeiten von Rezession und Massenentlassungen wo selbst hochqualifizierte Fachkräfte Schwierigkeiten haben Stellen zu finden?

Ich habe tatsächlich letztens mit einem Board ganz ohne SWD arbeiten müssen, programmieren ging nur über den Bootloader. Das Board wurde von einem ehemaligen Mitarbeiter entwickelt und sollte wiederverwendet werden. Hätte ich dem Vorgesetzten, und damit auch dem Kunden, sagen sollen "kann ich nicht machen"? Es hing ein lukrativer Auftrag dran.

#7602883
Lesenswert?

Und ich rede von Chinaboards, z.B. ein STM32H743 Board das ich noch für ca 25 € gekauft hatte. Wenn der Controller davon schon 15 € kostet, dann mache ich mir auch nicht die Mühe ein eigenes Board zu entwerfen nur weil am SWD keine Resetleitung liegt. In der 4ma machen meine Kollegen die Entwürfe und da wurde die Resetleitung bisher auch nicht auf dem Programmieranschluss herausgeführt. Aber wir reden wie normale Menschen miteinander und jetzt wird das gemacht, inklusive Rx/Tx auf dem SDC14 Stecker. So einfach geht das.

#7602919
Lesenswert?

Niklas G. schrieb:

Also Arbeitsverweigerung?

Unsinn.

In welchen Betrieben kann man vom Vorgesetzten angelieferte Schaltungen ablehnen

Mein Vorgesetzter liefert keine Schaltungen an. Macht der Paketdienst.

Die Entscheidung was da drauf kommt, trifft man hoffentlich vorher.

Ich habe tatsächlich letztens mit einem Board ganz ohne SWD arbeiten müssen, programmieren ging nur über den Bootloader. Das Board wurde von einem ehemaligen Mitarbeiter entwickelt und sollte wiederverwendet werden. Hätte ich dem Vorgesetzten, und damit auch dem Kunden, sagen sollen "kann ich nicht machen"? Es hing ein lukrativer Auftrag dran.

Wenn es um kritische Dinge im Bestand geht, muss man natürlich kreativ werden. Wie gesagt, man kann auch immer was fädeln, Stecker irgendwo anlöten usw.

#7602925
Lesenswert?

J. S. schrieb:

In der 4ma machen meine Kollegen die Entwürfe und da wurde die Resetleitung bisher auch nicht auf dem Programmieranschluss herausgeführt.

Ist schlicht ein Problem der Person die das entscheidet. Eine Debug-Belegung sollte ja nun kein Zufall sein. Es sollte jemanden geben der sich das ausdenkt. Mit einer Begründung.

So einfach geht das.

Jaja so einfach. Wenn man die HW machen lässt, wälzen die EINFACH solche Probleme auf die SW ab. Deshalb muss man Tacheles reden und dafür sorgen dass die das richtige machen. Oder sie löten dann halt bei 25 Mustern höchstselbst Stecker auf oder fädeln. Geht auch. Woran erkennt man den netten und verständigen Mitarbeiter? DER fädelt am Ende den Unsinn von anderen und das ganze Projekt verzögert sich auch noch. Nett hat keinen Erfolg.

#7603259
Lesenswert?

Niklas G. schrieb:

J. S. schrieb:

die STM haben einen Bootloader in den man starten kann wenn der Pin BOOT=1 ist. Dann kommt man wieder per SWD dran und kann korrigierten Code hochladen.

Nicht nötig. So gut wie alle Programmer ziehen den Reset-Pin auf Low und flashen dann. Da spielt es keine Rolle was für Code im Flash ist. Der Code kann völlig kaputt sein, den Takt abschalten, egal.

Leider ist das nicht immer so ... Im aktuellen CubeMx V6.10.0 Code Generator ist ein Bug der bei einem H7 mit 400/480 MHz die Flash wait-cycles falsch einstellt und dann lässt er sich nicht mehr mit VS-Code und GDB über ST-Link neu beschreiben. Meldung: can't reset Target. Mit dem ST stand alone Programmer kann man aber löschen oder ein funktionierendes Programm darüber bügeln.

Gast #7604687
Lesenswert?

Andreas S. schrieb:

Gerade in großen Unternehmen, in denen die Hardware- und Firmwareentwicklung streng getrennt sind, kann man sich als Softwareentwickler nicht darauf verlassen, dass die Debuganschlüsse überhaupt auf der Leiterplatte vorhanden sind.

Dann liefert man eben eine SW aus und lässt den HW-Entwickler testen. Dann lernt der das.

Persönliche Seite #7604688
Lesenswert?

🐻 Bernie - Bär schrieb:

Dann liefert man eben eine SW aus und lässt den HW-Entwickler testen. Dann lernt der das.

Der war gut! Die finalen Tests machen immer die SW-Leute. Die finden dann auch die Fehler in Mechanik und Elektronik und müssen sich drum kümmern dass es funktioniert, während der Rest schon die nächsten tollen Projekte konzipiert.

Gast #7604760
Lesenswert?

Niklas G. schrieb:

Die finalen Tests machen immer die SW-Leute.

Es ging mir nicht um die finalen Tests. Die machen die Tester. Es ging um die angedeutete Inbetriebnahme der Software, wenn das debuggen nur eingeschränkt möglich ist, weil der Prototyp das nicht angemessen berücksichtigt ist.

Dazu möchte ich mit Heinweis auf dieses Thema hier Beitrag "Meeting-Hölle/Scrum"

anmerken, daß in meinen Projekten die anfängliche Diskussion über die zu implementierenden inbetriebnahmeunterstützenden Testfunktionen ein zentraler Bestandteil der Konzeptphase ist. Würden das mehr Leitende im Auge haben, täten sich beide, SW- und HW-Entwickler, erheblich leichter. Etwas mehr Investition in Planungsdokumentation und damit weniger Stress bei Fehlersuchen. Dazu allerdings ist ein ausgereiftes Konzept nötig, das in der Vorentwicklungsphase niedergelegt und manifestiert wird; besonders was die Schnittstellen zwischen den Personen und die zu übergebenden Infos und Leistungen angeht. Das aber möchten manche nicht, weil sie sich in ihrer Denkfaulheit alle Türen offen lassen möchten, um alles aus dem Stegreif entscheiden zu können, womit sie das Projekt verscrummmen. Dieser Sorte fällt alles was sie brauchen erst ein, kurz bevor sie darüber stolpern und erwarten dann, dass es die anderen "agil" umsetzen und liefern.

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