... но не любой ценой.
- 
	- а чем кооперативка не устраивает? и с меньшим озу работает. ядро 13 байт озу для stm8 и 5 байт на задачу - abivan(14.09.2015 18:05 - 18:07, ссылка)
			- А они по большому счёту и не нужны. Это вечное громоздкие переключение контекстов, эти недосервисы - имхо, полноценной осью типа фриртос ей не стать, а потребности программеров-крестьян покрываются отлаженной годами каруселькой, где каждая задача  Олдфаг(149 знак., 15.09.2015 09:45,  ) )
- Что-то не могу разобраться как она со стеком при OS_Yield() поступает... Ткнёте пальцем? - Скрипач(14.09.2015 21:32 - 22:59)
					- Да это считай те же прототреды, и со стеком та-же беда. - =AlexD=(15.09.2015 07:27)
							- Точно? У них ни слова об этом. И в примерах локальные переменные есть. - Скрипач(15.09.2015 10:11)
									- Там сказано, что не статические переменные разрешается использовать только между переключениями задач.  SciFi(365 знак., 15.09.2015 10:19 - 10:30)
											- а как иначе в кооперативке без использования стека? У задачи нет стека и память под него не расходуется. считайте эти статики стеком. С моей точки зрения это плюс. - abivan(15.09.2015 12:02)
													- Т.е. SciFi всё правильно правильно продиагностировал? - Скрипач(15.09.2015 12:06)
															- Скорее, это Vit правильно диагностировал: setjmp/longjmp.  SciFi(45 знак., 15.09.2015 12:12)
																	- к сожалению внутри задачи нельзя вызвать ф-ю переключающую контекст. Если это необходимо то делается костыль. ф-я оформляется задачей. abivan(205 знак., 15.09.2015 12:41)
- Да. Так и есть. - Скрипач(15.09.2015 12:25)
																			- зырь чё напереговнокодил:)  Vit(1488 знак., 15.09.2015 12:58 - 13:01)
																					- А вот у меня давно стоит вопрос: у AVR,даже у взрослых,  setjmp не сохраняет RAMPZ. Безопасно ли это? - Олдфаг(15.09.2015 20:25,  ) )- Опасности не вижу потому как это не прерывание, неожиданностей нет, и этот регистр всегда заполняется нужным значением непосредственно перед elpm, spm, icall etc. - Petrovich(17.09.2015 10:44,  ) )
- Не у верен, что не сохраняет Vit(11859 знак., 15.09.2015 23:29)
 
- Опасности не вижу потому как это не прерывание, неожиданностей нет, и этот регистр всегда заполняется нужным значением непосредственно перед elpm, spm, icall etc. - Petrovich(17.09.2015 10:44, 
- Что-то то мне подсказывает, что сам и близко не так делаешь. Я прав? :) - Скрипач(15.09.2015 13:09)
																							- угу. у меня почти прототридсы с гото, со стейтом, объявленным внутри функции, или (очень редко) ванильные прототридсы. но есть и событийно-управляемый шедулер, только я его использую там, где нужно. он заточен на спатоньки, но фурычит и без  Vit(13 знак., 15.09.2015 13:18)
																									- Подумывал запилить в Protothreads PT_LEVEL + PT_GOTO. Чтобы сделать из struct pt честный state. Теперь висит некая недоделка, больше трёх лет, никому не нужная. Скрипач(281 знак., 15.09.2015 13:26 - 19:59)
 
 
- угу. у меня почти прототридсы с гото, со стейтом, объявленным внутри функции, или (очень редко) ванильные прототридсы. но есть и событийно-управляемый шедулер, только я его использую там, где нужно. он заточен на спатоньки, но фурычит и без  Vit(13 знак., 15.09.2015 13:18)
																									
 
- А вот у меня давно стоит вопрос: у AVR,даже у взрослых,  setjmp не сохраняет RAMPZ. Безопасно ли это? - Олдфаг(15.09.2015 20:25, 
 
- зырь чё напереговнокодил:)  Vit(1488 знак., 15.09.2015 12:58 - 13:01)
																					
 
 
- Скорее, это Vit правильно диагностировал: setjmp/longjmp.  SciFi(45 знак., 15.09.2015 12:12)
																	
 
- Т.е. SciFi всё правильно правильно продиагностировал? - Скрипач(15.09.2015 12:06)
															
- Ну тогда этот монстр ничем (кроме апломба) от protothreads не отличается. - Скрипач(15.09.2015 10:34)
													- да я ж не настаиваю. Не нравится не пользуй. Монстр то где? То что уже реализованы все необходимые сервисы и самому не нужно их реализовывать это недостаток? Наглядность кода это ерунда, конечно.  Если что, более убогая кооперативка salvo была  abivan(52 знак., 15.09.2015 11:17)
															- Лично мне, на одном килобайте, из "всех необходимых сервисов", нужен только yeild(). Остальное - балласт. OS_Yield() у них толком не работает. И чё? А монстр - это из-за нескольких слоёв макро. - Скрипач(15.09.2015 11:21 - 11:39)
																	- про монстр ясно. А зачем внутрь то лезть. Если система работает отлажена и не содержит(не выявлены) ошибок какая разница как она реализована? Если компилятор генерит компактный код это не достаточно? Есть платные оськи где исходный код вообще не  abivan(197 знак., 15.09.2015 11:56)
																			- __ЕСЛИ!__ (Филлипа II даже немного жалко) - Скрипач(15.09.2015 12:00)
 
- задержка нужна(светодиодиками мигать с нужной частотой), бинарный семафор нужен чтобы сообщить что посылка по uart принята в прерывании, ожидание бинарного семафора с таймаутом полезно чтобы принять решение о сбросе флагов вочдога при отсутствии abivan(302 знак., 15.09.2015 11:42)
 
- про монстр ясно. А зачем внутрь то лезть. Если система работает отлажена и не содержит(не выявлены) ошибок какая разница как она реализована? Если компилятор генерит компактный код это не достаточно? Есть платные оськи где исходный код вообще не  abivan(197 знак., 15.09.2015 11:56)
																			
 
- Лично мне, на одном килобайте, из "всех необходимых сервисов", нужен только yeild(). Остальное - балласт. OS_Yield() у них толком не работает. И чё? А монстр - это из-за нескольких слоёв макро. - Скрипач(15.09.2015 11:21 - 11:39)
																	
- взглянул. ИМХО больше похоже на закат Солнцаsetjmp/longjump вручную - Vit(15.09.2015 10:54)
 
- да я ж не настаиваю. Не нравится не пользуй. Монстр то где? То что уже реализованы все необходимые сервисы и самому не нужно их реализовывать это недостаток? Наглядность кода это ерунда, конечно.  Если что, более убогая кооперативка salvo была  abivan(52 знак., 15.09.2015 11:17)
															
 
- а как иначе в кооперативке без использования стека? У задачи нет стека и память под него не расходуется. считайте эти статики стеком. С моей точки зрения это плюс. - abivan(15.09.2015 12:02)
													
 
- Там сказано, что не статические переменные разрешается использовать только между переключениями задач.  SciFi(365 знак., 15.09.2015 10:19 - 10:30)
											
 
- Точно? У них ни слова об этом. И в примерах локальные переменные есть. - Скрипач(15.09.2015 10:11)
									
 
- Да это считай те же прототреды, и со стеком та-же беда. - =AlexD=(15.09.2015 07:27)
							
- Цитата: "бывает три вида секса: Секс простой. Секс по телефону. И секс по барабану." - De_User(14.09.2015 18:33)
					- а есть фразеологизм про бисер. - abivan(15.09.2015 11:22 - 11:25)
- :) - Make_Pic(14.09.2015 19:13)
 
 
- А они по большому счёту и не нужны. Это вечное громоздкие переключение контекстов, эти недосервисы - имхо, полноценной осью типа фриртос ей не стать, а потребности программеров-крестьян покрываются отлаженной годами каруселькой, где каждая задача  Олдфаг(149 знак., 15.09.2015 09:45, 
 
- а чем кооперативка не устраивает? и с меньшим озу работает. ядро 13 байт озу для stm8 и 5 байт на задачу - abivan(14.09.2015 18:05 - 18:07, ссылка)