Может не хватить ОЗУ для стека, что чаще всего и происодит. Если не хватает ОЗУ под переменные, то IAR тебе скажет. А в стек переменные и адреса возврата пишутся во время выполнения проги. И сколько подпрограмм может быть вызвано и прерываний сработать - IAR не знает. Если есть JTAG mkII, то поставь DATA breakpoint на вершину стека (смотри адрес стека и его размер в map-файл). Если туда пишутся данные - то это очень плохо. Тебе не хватает стека, увеличь его размер в настройках.