[an error occurred while processing this directive] [an error occurred while processing this directive]
А дело в следующем (+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Беня 25 октября 2001 г. 12:37
В ответ на: HI-TECH ошибка при линковке отправлено mpo 25 октября 2001 г. 12:03

Эта ошибка говорит о том, что у Вас не хватает одного байта ОЗУ (памяти данных) в банке 0 для построения кода (линковки). ОЗУ из банка 0 используется для локальных переменных, а Ваша функция как раз содержит как минимум одну локальную переменную типа unsigned char ( а может "внутри" она использует еще какие-то локальные переменные). А если убрать вызов этой функции, то дополнительные переменные уже не требуется и данные "влазят впритык" в имеющееся ОЗУ. Выход из этой ситуации прост - нужно освободить хотя бы один (а может и несколько) байт из банка 0. Для этого "перебросьте" какую-либо из своих глобальных переменных в банк 1 (для этого используйте директиву bank1). Если Вы объявляете переменную "int i;" то она по умолчанию расположится в банке 0 (который используется и для локальных переменных), а если объявить как "bank1 int i;", то она расположится в банке 1.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru