Für ein richtiges Scheduling wirst du an einer Stack-Manipulation nicht vorbei kommen, ebensowenig wie an einer korrekten Sicherung/Restaurierung der Register.
Im Beispielcode werden nicht alle Regs gesichert! Was, wenn ne Task R2 oder R28 verwendet?! Zudem kümmern sich die "Tasks" offenbar selber um das Scheduling![]()
Eine andere Möglichkeit wäre, in einer ISR bestimmte Jobs abzunudeln. Das ist dann aber kein Scheduling und setzt voraus, daß die einzelnen Jobs kooperativ sind; die Jobs sollten linear sein und dürfen keine Endlosschleifen enthalten (im Gegensatz zu einer Task, die ja *immer* in einer Endlosschleif laufen *muss*).







Zitieren

Lesezeichen