Цитата(AlexandrY @ Jun 3 2016, 16:18)

Не в каждой RTOS надо делать в задачах циклы.
В MQX RTOS когда задача доходит до конца ее RTOS стирает из системы без следа а заодно и все ресурсы которые задача захватила, и освобождает все объекты синхронизации захваченные задачей и не освобожденные ею.
Понятно, т.е. если задача не удаляется, то после завершения остается висеть в idle и шедулер ее в общем случае тупо пропускает при переключениях?
Цитата(AlexandrY @ Jun 3 2016, 16:18)

Какие регистры сохранять решает компилятор на основании соглашения с производителем чипов. Для ARM есть такое соглашение которое соблюдают все производители компиляторов под ARM.
Эммм, извините конечно, но может быть это решает разработчик ОС, а не компилятор? Не просто так же ручками пишется асмовый код для сохранения именно этих, вот этих и еще вон тех регистров.
Цитата(yes @ Jun 3 2016, 16:22)

2. в порте RTOS уже сделано. если собираетесь портировать, то вообще-то сохраняют все регистры - так как в общем случае переключение задачи асинхронно к процессу - то есть может произойти в любой момент, а вернуться нужно туда же в том же состоянии.
3. какая RTOS?
Не портирую, а пишу свой велосипед. Чисто из интереса и ради лулзов.
Цитата(AlexandrY @ Jun 3 2016, 18:14)

Есть и другие ухищрения при переключении контекста для уменьшения количества сохраняемых регистров.
А можно парочку примеров?