__TMX__ (03.11.2005 18:48, просмотров: 997)
Проблема с указателями на функцию в IAR PIC18. Использую IAR для PIC18 (PIC18F6620).
В программе множество переходов по указателям на функции. В том числе в обработчиках прерываний.
По отдельности все компоненты программы протестированы - Ок.
Вложенность стека - не более 10 вызовов.
При сборке иногда возникает следующая проблема:
иногда контроллер перезагружается. В начале программы проверяется флаг переполнения стека (показывает, что все в порядке).
Делаю вывод, что указатель показывает не туда куда надо и программа прыгает на начало.
Помогают танцы с бубном:
1. Изменить оптимизацию при компиляции. Помогает ненадолго, через некоторое время можно восстановить обратно. Опять помогает (ненадолго).
2. Вставить неиспользуемую локальную переменную char в функцию, которая не вызывается.
3. Поменять местами операторы.
А теперь, внимание, вопросы:
1. Что это?
2. У кого-нибудь такое было?
3. Имеет ли смысл перейти на HT-PICC? Соответственно: где достать все необходимое. (9.50 скачал, там нет PIC18).