[an error occurred while processing this directive]
|
в компиляторах обычно надо задать размер стека (который используется для сохранения адреса возврата функции, для PUSH и POP в обработчиках прерывания). Я работал с IAR-ским компилятором, так там в опциях для линкера надо было задавать этот размер, и если памяти не хватало под этот размер, то линкер ругался (но все равно под стек отводилась все оставшееся ОЗУ, так что этот параметр скорее для контроля).
Этот размер должен задать сам программист (обычно просматривают вложенность функций, возможность "вклинивания прерываний", сколько PUSH в прерывании, может ли из одного прерывания вызваться второе и прикидывают этот размер).
Так может в новом проекте на Keil где-то по задано, что надо под стек байт эдак 100, а линкер видит, что нет столько свободного места и ругается? Ну это только догадка.
E-mail: info@telesys.ru