Цитата(Непомнящий Евгений @ Mar 19 2013, 13:56)

Насчет iar - не знаю, gcc - newlib под bare metal содержит нереентерабельные malloc/free (на которых основаны new/delete)
У тебя вероятно то же самое.
Как вариант, можешь переопределить глобальные new и delete (как обычные, так и для массивов) и лочить прерывания перед вызовом malloc/free.
Возможно, в iar есть готовые заглушки, переопределив которые можно добиться реентерабельности
это вероятные догадки... хотелось бы документального подтверждения