Перейти к содержанию
    

Error - Recursion not supported for functions with locals of "overlay"

Здравствуйте!

Разрабатываю достаточно большой проект пользуясь MPLAB 8.60 + C18 v4.20. PIC18F67J60.

Мне необходимо по сигналу таймера 1800 раз в секунду прерывание основной программы вычитать блок данных из одной микросхемы по SPI и записать в другую микросхему. Это достаточно объемный код, если еще учесть что переключает CS чипы третья микросхема подключенная последовательной шиной.

Не могу поместить весь объем кода в прерывание по таймеру. Собственно, не помещается всего десяток строк, но сокращать код больше некуда.

Линковщик пишет Error - Recursion not supported for functions with locals of "overlay"

 

Можно ли это как-то обойти?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте!

Разрабатываю достаточно большой проект пользуясь MPLAB 8.60 + C18 v4.20. PIC18F67J60.

 

Линковщик пишет Error - Recursion not supported for functions with locals of "overlay"

 

Можно ли это как-то обойти?

 

Уточните С18 by Microchip последняя - v3.47 от 20янв.2014. а что у Вас не ясно.

Если я правильно понял : линкер пытается сообщить - рекурсивный вызов для функции (посмотрите документацию)

расположенный в оверлейной области или с данными оверлейного типа не допустим. Какие-то претензии к порядку вызовов.

Возможно вызов в прерывании и фоне одновременно или др. причины.

Тут (на форуме) часто звучали рекомендации в прерывание не вносить большие блоки кода. Выставте флаг ,

а в фоновом блоке отреагируйте на него. Из личных ощущений - PIC18 не шустрый и как такового стека в нем нет. То-есть данные сохраняются в зависимости от компилятора. С18 искусственно выделял регистр косвенной адресации и формировал стек данных. HITECH обыгрывала ситуацию иначе и возникала проблема, возможно ситуация схожа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...