Gemäß der FreeRTOS-Taskplanungsdokumentation kann der Kernel eine Task austauschen, selbst wenn die Task gerade ausgeführt wird und keine blockierende Funktion aufgerufen hat. Sobald der Kernel also die Uhr mit dem Interrupt tickt und seinen ISR ausführt, kann er eine weitere Task planen, die danach ausgeführt wird.FreeSTOS-Task wird niemals vertauscht
Auf meinem System mit FreeRTOS starte ich 5 Aufgaben, von denen jede so programmiert ist, dass sie sich zu einem bestimmten Zeitpunkt verzögern. Daher kann ich sehen, dass alle Aufgaben ein- und ausgetauscht werden und jede Aufgabe ausgeführt wird. Aber wenn ich eine Endlosschleife innerhalb einer Aufgabe betrete, wird diese Aufgabe NIEMALS ausgelagert.
Wie ist das möglich?
Wo kann ich 'configUSE_TIME_SLICING' konfigurieren? – user2162550
Wenn Sie es nicht selbst definiert haben, denke ich, dass es automatisch in FreeRTOS.h gesetzt wird. Wenn Sie es selbst definiert haben, muss es 1 sein. Versuchen Sie, die Quellen zu suchen! –