-
- Ну вроде как во FreeRTOS на C8051F как-то похоже. Там при переключении задачи ее стек копируется в XRAM. Соответственно указатель на локальную переменную становится своеобразной сущностью. - LightElf(25.07.2013 14:03)
- Мысль гениальная, но очень стремная при использовании "где попало". Evgeny_CD(895 знак., 24.07.2013 21:53)
- Есть подвох: поскольку стек "ползает", нельзя использовать указатели на локальные переменные, например sprintf(local_buf, ...). Ну и что там с прерываниями, когда стек копируется, - не помню. - SciFi(24.07.2013 23:24)
- Черт, счастье было так близко... - Evgeny_CD(25.07.2013 11:57)
- Сегментные регистры их бы спасли. - poe(25.07.2013 10:49, )
- Есть подвох: поскольку стек "ползает", нельзя использовать указатели на локальные переменные, например sprintf(local_buf, ...). Ну и что там с прерываниями, когда стек копируется, - не помню. - SciFi(24.07.2013 23:24)
- Не могли бы разъяснить "стек активной сдвигается"? Пока мои представления о RTOS такие: есть 5 задач, есть жестко отведенные 5 массивов под стек. Как стек можно сдвинуть, не представляю. - mazur(24.07.2013 16:52)
- Там на картинке нарисовано. Сдвигается == копируется. Конечный результат состоит в том, что не нужно каждому потоку давать стек с запасом: запас общий для всех потоков. Востребованная фича, на мой взгляд. - SciFi(24.07.2013 16:54)
- Куда копируется? В ОЗУ? Тогда в чём экономия? - Apтём(24.07.2013 16:56)
- На мой взгляд, там всё достаточно понятно написано и нарисовано. Хватит тормозить. - SciFi(24.07.2013 17:12)
- Куда копируется? В ОЗУ? Тогда в чём экономия? - Apтём(24.07.2013 16:56)
- Там на картинке нарисовано. Сдвигается == копируется. Конечный результат состоит в том, что не нужно каждому потоку давать стек с запасом: запас общий для всех потоков. Востребованная фича, на мой взгляд. - SciFi(24.07.2013 16:54)