Цитата(kolobochishe @ Dec 22 2015, 22:07)

1. Как вы контролируете переполнение стека?
2. Какой размер считаете оптимальным?
3. В какой памяти его лучше располагать?
4. Как реально происходит приравнивание структур? Это спрятанное от глаз memcpy? И используется ли при этом динамическое выделение памяти?
5. Мириться ли с тем, что коллега создает такие огромные структуры или надо сменить подход? Можно ли их располагать в функции или лучше глобально?
5. Коллеге за такое в embedded без внешней памяти, надо не просто по рукам бить, а ампутировать их. Лучше не данные, а коллегу расположить где-нить в вынь-программинге.
2. Оптимальных размеров стека нет, есть необходимые.
1. Контроль - заполнением шаблоном.
3. Лучше внутренней, особенно касаемо DSP с его огромными контекстами.
4. Согласно языка си: поэлементно. Распределение памяти и инициализация - вещи суть разные и почти несвязанные.
Цитата(quarter @ Dec 22 2015, 22:55)

при вызове Си-шной функции все параметры, которые получает и возвращает функция, передаются через стек.
ложь.
Цитата(AlexandrY @ Dec 23 2015, 03:03)

Стек он в дивайсах с реальным временем на вес золота. Ибо организуется в быстрой внутренней RAM, даже TCM RAM.
В принципе можно и во внешней памяти стек располагать, даже на устройствах где есть жёсткий реалтайм.
Всё зависит от требуемого быстродействия данной задачи ОС и архитектуры CPU.
Если архитектура такова, что при возникновении прерывания контекст сохраняется на другом стеке (как на Cortex) или вообще не сохраняется (как в ARM TDMI), то стек некоей медленной задачи расположенный во внешней ОЗУ никак не затормозит ISR, но может затормозить переключение контекста данной медленной задачи ОС.
Как обстоит дело с сохранением контекста в Блэкфинах я не знаю.