Показать сообщение отдельно
Старый 04.06.2019, 10:19   #8
AJ_1983
Junior Member
 
Регистрация: 16.04.2013
Сообщений: 11
Вес репутации: 100/27
AJ_1983 will become famous soon enoughAJ_1983 will become famous soon enough
По умолчанию Re: XC8 не выделяет память локальным переменным при наличии свободных банков

Еще поэкспериментировал с reentrant, просто убрал пока асм-функцию, с которой не компилилось.
С reentrant тот массив вошел уже и на 80 байт (с compiled предел был ~30), без видимого изменения оставшейся памяти в сводке (что многое говорит о ее адекватности, пишет 88%, на деле чуть не половина не занята). А вот на 180 байт уже:

reentrant void SyncEvent() {
BYTE i, mode;
volatile BYTE deb[180];
...

main.c:1165: error: (1465) the stack frame size for function "_SyncEvent" (182 bytes) has exceeded the maximum allowable (127 bytes)

Банки 11-15 по прежнему свободны...

Последний раз редактировалось AJ_1983; 04.06.2019 в 10:20. Причина: дополнение
AJ_1983 вне форума   Ответить с цитированием