Цитата(dxp @ Oct 30 2015, 15:01)
Модель памяти к ос вообще отношения не имеет.
(freeRTOS portmacro.h) В зависимости от модели разрядность стека
и соотв-но его размер разные. Если компилировать в SMALL, а контекст переключать
"по полной" для MSP430X, то половина выделенного под стек RAM будет гулять.
Код
. . . .
/* The stack type changes depending on the data model. */
#if( __DATA_MODEL__ == __DATA_MODEL_SMALL__ )
#define portSTACK_TYPE uint16_t
#else
#define portSTACK_TYPE uint32_t
#endif
. . . .
Цитата(dxp @ Oct 30 2015, 15:01)
Переключение контекста, конечно, отличается, т.к. контексты там разные (у 430Х больше регистров со всеми вытекающими). А "непонятка"-то в чём?
Это было немного давно (с полгода). Поэтому могу быть неточен.
(появится время, я могу попробовать "восстановить стек")
Проект довольно большой, флеш MSP430F2618 занята около 80-90проц.
4 потока. После наращивания текста программы (безобидные вещи, работа меню)
ПО начало "валиться", что проявлялось в "авторесете" при входе в ранее работавшие (и не изменявшиеся) пункты (блоки кода) .
Начались танцы с бубном - размеры-контроль стеков, проверки размеров массивов,
комбинациии настроек компилятора во всех вариантах и позах.
Все это в "debug".
------------
Непонятка: Не нашел док по ньюансам настройки ОС под различные модели памяти и опции компилятора.
------------
Опятьже, не факт, что причина в ОС. Авторесет, думаю, может происходить по причине "влета" процессора в некорректный опкод.
А это уже компилятор-дебаггер.