Засунул FreeRTOS в LPC2103. Первый раз не пришлось придумывать и обосновывать зачем я вставляю ОС в контроллер. Всетаки в природе попадаются такие задачи для микроконтроллеров...

Протрахался два дня c одной проблемкой. Была проблема с выделением памяти при инициализации задач и очередей. Вернее при выделении проблем не было - функция malloc исправно выдает указатели и тд. Но при некоторых вызовах, например
pbRes = xQueueSend(qhTwi_0_SignaledQueue, &pbTmp , portMAX_DELAY );
возвращался вместо результата 1 или 0 число позначение равное адресам попадавшим в кучу, стеки режимов процессора и тд. Тоест есть похоже чтото на чтото залазило. После такой ситуации есессено PAbort или DAbort.
Прикол в том что допишеш строку кода в какомнибудь любом модуле - работает, допишеш еще - глючит, и все в таком духе, закономерности поведения я не уловил.
Разгодать причину не получилось (стеки заведомо больше задавались чем нада - проверял ручным счетом, также при ручном выделении стало все работать безошибочно без изменения размеров). Поэтому взял попробывал ручное управление кучей а malloc из libc от CrossWork был послан нах, освобождение памяти мне не требуется, поэтому ручное выделение както проше, меньше жрет и так сказать я тут все регулирую.
Где проблема? я чето не понял как чтото работает или всетаки malloc у CrossWork кривой. Локально задачка решена, но не дает покоя вопрос ПОЧЕМУ? вдруг это почему вылезет потом в другом месте.