IAR 4.21 для AVR не проверяет стек
Век живи - век учись.
При отладке получил непонятный глюк, раскопал - оказывается, стек возвратов "наезжает" на переменные. В xcl файле под него отведено всего 16 байт, то есть 8 вложений. Одно тупо тратится на main - ну да ладно. Не сразу сообразил почему не хватает - вложения вроде не глубже 5, оказывается, не учел разрешенные cross-call
Ну ладно, сам дурак, но вот что мешает компилятору отследить самую глубокую цепочку вызовов, добавить один для прерывания и разрешенное число cross-call и хотя б предупредить, что стека не хватает?
Ранее никогда такое не вылезало, потому думал что компилер шибко умный и сам подстраивает стек под нужную глубину...
Да и вообще - что мешает отвести под стек весь остаток памяти? Непонятно.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|