frager schrieb:
> zur Info: die Funktion: callfunctionOnOtherCore liegt auf einem anderen
> Kern.
Die Antwort hängt - wie so oft - vom Kontext ab, in dem das stattfindet.
Bei den üblichen Betriebssystemen vgl. Windows/*ix ist das meist kein
Problem, egal auf welchem Core. "Meist" deshalb, weil ein
Thread/Prozess, der in einem Device Driver hängt, nicht immer
abschiessbar ist.
Bei Bare Metal Programmierung ist das ebenfalls möglich und in Form von
Watchdogs auch recht verbreitet. Aber der sauberste und einzig sichere
Ausweg aus der als Folge möglichen Ressourcenkrise (z.B. I2C/... Status
bleibt mittendrin hängen) ist ein Reset, weshalb Watchdogs üblicherweise
damit operieren. Ohne Reset kann es funktionieren, oder kann alles
durcheinander bringen, je nachdem wo abgebrochen wurde.
Wer also in Bare Metal Programmierung so ein Problem hat, der schreibt
die betreffende Funktion so, dass sie selbst ihre Laufzeit kontrolliert
und ggf. abbricht. Das ist sehr verbreitet und unterhalb der Axt "Reset"
der sinnvollste Weg.