позволю себе поднять тему.
люди, подскажите... а то тоже возникли проблемы с нехваткой ОЗУ в АТмеге16. первый раз столкнулся с этим, необходима помощь в понимании.
вопрос первый: под что идут CSTACK и RSTACK соответственно при работе программы? насколько я понимаю, RSTACK - исключительно под адреса возврата из функций (может ещё под локальные переменные), а CSTACK под передаваемые в функции параметры?
я никак не могу понять, что куда и зачем мне в памяти размещает иар.
в карте линковщика написано 474 bytes of DATA memory (+ 21 absolute ) при 1 кб доступных. но стоит мне добавить 9-байтовый массив - всё, начинается фигня, как бы я ни крутил параметры стека.
TINY_I DATA 00000060 Predefined 0 TINY_Z DATA 00000060 - 000000C0 61 Relative 0 CSTACK DATA 000000C1 - 000000F5 35 Predefined 0 RSTACK DATA 000000F6 - 00000239 144 Predefined 0 помогите так же разобраться с этим. под что идёт куча?
у меня максимальная вложенность функций равна 5. но при размере RSTACK меньше 140 еначинаются зависания... совсем запутался. да, ещё: в программе не используется ничего больше uint. максимально объёмные передаваемые данные в функцию - в сумме не больше 4х байт.
--------------------
Вся жизнь - ништяк, все бабы - леди, а солнце - шар дающий свет
|