Ни кто не сталкивался с тем, что компилятор ХС8 игнорит ручное распределение переменных по банкам памяти? Т.е. пишу __bank1 но он все равно кладет куда считает нужным. Тестовая программа такая (процессор PIC16LF1657):
#include
На выходе получаю:
361
362 psect bssBANK0
363 0020 __pbssBANK0:
364 0020 _buf1:
365 0020 ds 32
366
Это создает проблему при написании обработчика прерываний на ассемблере, т.к. ему нужен буфер в BANK0, и нужны переменные в COMMON секции, а остальная программа на си занимает их не смотря на явные указания. В итоге не хватает места.