Forum: Offtopic HardFault will nicht!


von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Man so ne kacke.

Da will man mal ausnahmsweise einen Hardfault im STM32 erzwingen und es 
klappt nicht!

Schnell, ich brauche einen GoToHardfault() :>

von Icke ®. (49636b65)


Angehängte Dateien:

Lesenswert?

Brauchst du, kriegst du...

von Paul B. (paul_baumann)


Lesenswert?

Alternaria Solani ist die Hartfäule bei Kartoffeln -das will doch 
Niemand haben...
:)
MfG Paul

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Ach man, die Frage war eigentlich erst gemeint :> Vielleicht sollte ich 
umformulieren und in n anderes Topic rein :>

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Klasse. Ich habs geschafft in den Hardfaulthandler zu kommen. Keine 
Ahnung was ich gemacht habe. Allerdings komme ich nicht mehr raus.

von Kaj G. (Firma: RUB) (bloody)


Lesenswert?

Reginald L. schrieb:
> Da will man mal ausnahmsweise einen Hardfault im STM32 erzwingen und es
> klappt nicht!
Trage im Linker-Script eine max. Größe für den Stack ein (z.B. 1k), und 
dann sorge dafür, dass dein Stack größer wird als die max. erlaubte 
größe. So funktioniert es zumidnestens beim Atmel SAM3X.
Alternativ kannst du auch einfach den Stack überlaufen lassen mittels 
einer endlos rekursion. Dann solltest du auch im Hardfault landen ohne 
das Linker-Script anfassen zu müssen.

Reginald L. schrieb:
> Allerdings komme ich nicht mehr raus.
"Wie" willst du denn wieder raus? Am einfachsten wäre es einen Watchdog 
anzustoßen.

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Kaj G. schrieb:
> Trage im Linker-Script eine max. Größe für den Stack ein
Logisch! Danke :)

Kaj G. schrieb:
> "Wie" willst du denn wieder raus? Am einfachsten wäre es einen Watchdog
> anzustoßen.
Ach ich hab irgendwas gemacht und wusste nimmer was :>

von Johannes O. (jojo_2)


Lesenswert?

Kaj G. schrieb:
> Trage im Linker-Script eine max. Größe für den Stack ein (z.B. 1k), und
> dann sorge dafür, dass dein Stack größer wird als die max. erlaubte
> größe. So funktioniert es zumidnestens beim Atmel SAM3X.

Wie soll der STM32 erkennen können, ob du deinen Stack gerade gekillt 
hast? Ja, es wird langfristig irgendwie/irgendwo zu einem schweren 
Fehler (wenn auch nicht zwingend einem Hard-Fault!) führen, wenn der 
Stack zu groß wird, aber garantiert ist das meines Wissens nach nicht. 
Es findet kein Vergleich von Stackaddresse und Speicherbereichen statt. 
(eventuell lässt sich da was mit der MMU machen aber das würde erst zu 
einem MMU-Fault führen)

Laut Programming Manual des Cortex-M4 (welchem STM32 hast du?), gibt es 
zwei Gründe für einen Hard Fault:
- Bus error on a vector read
- Fault escalated to a hard fault (hier gibts nochmal mehr 
Möglichkeiten, siehe "Programming Manual" des Cortex)

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Gerade zufälligerweise in einem anderen Thread ein Top GoToHardfault():
1
  void(*fail) (void);
2
  fail = 0;
3
  fail();

Funktioniert supi :>

von Torben H. (bauteiltoeter)


Lesenswert?

LOL. Ja danke, der Code ist von mir. Eigentlich sollte der auch hier in 
den Thread, drüben passt er ja gar nicht... Das passiert, wenn man am 
Handy einen Thread liest, eine Antwort weiß und dann am Computer tippt^^

Freut mich, dass das funktioniert!

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Torben H. schrieb:
> Freut mich, dass das funktioniert!
Ja, ist klein und top, bussi ;D

von Paul B. (paul_baumann)


Lesenswert?

Reginald L. schrieb:
> ja, ist klein und top, bussi ;D

Bussi? Teufel, Teufel...
:)

Heißt das nicht "Busy"?

MfG Paul

von Winfried J. (Firma: Nisch-Aufzüge) (winne) Benutzerseite


Lesenswert?

tja Paul,
wenn man die eigene Suppenschüssel nicht hinter sich lässt können äußere 
Eindrücke verwirren.
 Namaste

von Paul B. (paul_baumann)


Lesenswert?

Winfried J. schrieb:
> tja Paul,
> wenn man die eigene Suppenschüssel nicht hinter sich lässt können äußere
> Eindrücke verwirren.

Am Sonntag wurden Klöße gegessen. Die Suppenschüssel blieb im Schrank.

MfG Paul

von Reginald L. (Firma: HEGRO GmbH) (reggie)


Lesenswert?

Wie kann einem eigentlich sooooo langweilig sein, und die Beiträge hier 
im Offtopic negativ bewerten :D

Unbekannter - go! Search for life!

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.