nsl2004 писал(а):С удовольствием, но как это сделать, или хотя бы как сформулировать вопрос , что бы найти в Гугле

Размещение стека в памяти AVR ? Т.е в каком направление копать.
Для этого не надо прогугливать весь интернет, достаточно почитать даташиты.
Вот что я навскидку нашел в доке на Tiny2313 :
0x0013 RESET: ldi rl6, low(RAMEND);
0x0014 out SPL,rl6
0x0015 sei
Так что для инициализации стека не надо быть семи пядей во лбу. Важно, что сделать это надо сразу же после подачи питания, до sei. Надо следить за указателями собственных данных, чтобы они не зацепили стек. Вылет может быть и не только по переполнению или порче стека: выполнение несуществующей инструкции, запись по несуществующему адресу. Со стеком как раз проблем - минимум : соблюдать аккуратность : сколько положил в стек на входе в п/п, столько и извлек на выходе из нее. Не хулиганить : типа зашел по rjmp, а вышел по ret или наоборот.
Впрочем, все эти советы - для программера, пишущего на асме и ясно представляющего себе, что он делает. А когда пишешь на С или всяких извратах с рисованием квадратиков со стрелочками связей, не надо удивляться , что результат будет непредсказуемым. "Я написал вроде правильно, а что там компайлер наваял - неизвестно". А компилятор отвечает : "А мне вообще все по фигу - синтаксические ошибки есть? - нет. А дальше т...сь как хотите".
Рискуя прослыть ретроградом, все же считаю : учиться программить все же надо на асме, чтобы прочувствовать архитектуру МК, понять, как выполняется та или другая инструкция. А уж потом, когда почувствуешь себя корифаном и проги захочешь выпускать как горячие пирожки - берись за С с твердой уверенностью, что если он там ( или скорее ты с ним ) накосячили, в результирующем коде сумеешь разобраться.
Каждому -свое, как говорили в Освенциме.
PS А стек традиционно размещается в конце памяти, хотя это и не догма. Бывает, что для одного и того же компа, но для разных на нем операционных систем стек размещается по разному.
Ой, кажется, не в свою тему вломился - я Протеус не использую.
А то, что Роман советует вообще не использовать стек ( в т.ч. и прерывания, и подпрограммы ) - жжжесть !