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*).