Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Error - Recursion not supported for functions with locals of "overlay"
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Слесарь
Здравствуйте!
Разрабатываю достаточно большой проект пользуясь MPLAB 8.60 + C18 v4.20. PIC18F67J60.
Мне необходимо по сигналу таймера 1800 раз в секунду прерывание основной программы вычитать блок данных из одной микросхемы по SPI и записать в другую микросхему. Это достаточно объемный код, если еще учесть что переключает CS чипы третья микросхема подключенная последовательной шиной.
Не могу поместить весь объем кода в прерывание по таймеру. Собственно, не помещается всего десяток строк, но сокращать код больше некуда.
Линковщик пишет Error - Recursion not supported for functions with locals of "overlay"

Можно ли это как-то обойти?
volodya
Цитата(Слесарь @ Jun 3 2014, 22:13) *
Здравствуйте!
Разрабатываю достаточно большой проект пользуясь 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 обыгрывала ситуацию иначе и возникала проблема, возможно ситуация схожа.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.