Цитата(GDI @ Apr 28 2010, 12:57)

Ну переместите вашу переменную в другое месть или жестко задайте ей другой адрес по дальше от границы стека или просто измените порядок объявления переменных в исходнике. Если уверены что дело в стэке, то почему бы вам чисто для отладки не уменьшить его значение, тогда по идее должна увеличится частота возникновения ошибок. В ИАРе (вы ведь им пользуетесь?) в настройках проекта можно включить показ дополнительной информации в мап-файле, в частности можно включить показ рекомендуемого/расчетного размера стека.
P.S. А защитить что-либо при порче стека, конечно же невозможно, по крайней мере в архитектуре АВР.
Да, я пользуюсь именно ИАРом. И стек я выбираю именно по рекомендациям из МАР файла.
Скажите, а вот для такой конструкции ИАР корректно может вычислить размер стека:
printf("трали вали %u", f(x));
где f(x) возвращает int ???
Есть у меня именно такие конструкции, грешу на них.
Есть мысли по этому поводу?
А чтобы переместить критическую переменную подальше от границ стека, я и задавал вопрос - куда будут писаться локальные переменные при нарушениии границ CStack?
в RStack? в регистовый файл? или в область старших адресов SRAM?