ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
20 апреля
988470
AlexBi (24.03.2020 12:15, просмотров: 1960)
Ни кто не сталкивался с тем, что компилятор ХС8 игнорит ручное распределение переменных по банкам памяти? Т.е. пишу __bank1 но он все равно кладет куда считает нужным. 

Тестовая программа такая (процессор PIC16LF1657):

#include 

На выходе получаю:

   361                          
   362                               psect    bssBANK0
   363  0020                     __pbssBANK0:   
   364  0020                     _buf1:   
   365  0020                         ds    32
   366                           

 

Это создает проблему при написании обработчика прерываний на ассемблере, т.к. ему нужен буфер в BANK0, и нужны переменные в COMMON секции, а остальная программа на си занимает их не смотря на явные указания. В итоге не хватает места.