Ich habe Erfahrung mit mehreren RTOS (pSOS, VxWorks, QNX), aber ich bin neu bei MicroC/OS II (ucos ii). Ich sehe, dass etwas Einzigartiges an ucos ii ist, anstatt eine eindeutige ID für Aufgaben zu haben, die die Priorität zur eindeutigen Identifizierung von Aufgaben verwendet und dass alle Aufgaben unterschiedliche Prioritäten haben müssen und somit die Round-Robin-Planung nicht unterstützt wird. So viel verstehe ich. Hier ist die Frage:Änderung der Priorität in MicroC/OS II (ucos ii) ändert Task ID?
Wenn ich die Priorität einer Aufgabe mit OSTaskChangePrio() ändern, verursacht das nicht Probleme für Code oder andere Aufgaben, die die Priorität (Task-ID) der Aufgabe gespeichert hatte, die gerade ihre Priorität geändert. Die Änderung der Priorität ändert die Identität der Aufgabe. Wie ist das kein Problem?
Nur ein Beispiel, ich möchte die Aufgabe haben, die andere Aufgaben startet, reduzieren ihre Priorität, wenn es fertig ist. Wenn einer Aufgabe erlaubt wird, ihre Aufgaben-ID effektiv zu ändern, kann ich mich nicht darauf verlassen, diese zu verwenden, um die Aufgabe zu identifizieren. Ich fand es auch unklar, wenn Ucos ii Prioritätsinversion tut, ändert es tatsächlich die Aufgaben-ID (Priorität), wie von anderen Aufgaben gesehen. Das heißt, wenn ich versuche, die ursprüngliche Task-ID (Priorität) zu verwenden, während die Prioritätsumkehrung auftritt, um diese Task zu identifizieren, schlägt der OS-Aufruf fehl, weil keine Task diese Task-ID (Priorität) in diesem Moment hat? – JonN