Цитата(Mikron @ Dec 21 2012, 13:08)

Здравствуйте, есть проблема с программой, не хватает памяти.
Вот что пишет компилятор CC5X
Код
Error[1] C:\pic\pr2\main.c 1241 : No space for global variable 'blink_b'
...
RAM usage: 89 bytes (23 local), 279 bytes free
...
Total of 1961 code words (23 %)
Вопрос, как сделать так, что бы программа была и на других codepage, с использованием pragma rambank я так понимаю?
CODE(page) и RAM(bank) в пиках непосредственно никак не пересекаются. Под программу у Вас используется только 23% наличной памяти.
В программе действительно нужны (89-23)=(64+1) байтов под глобальные переменные? (+1 - это как раз тот байт, под который не хватает памяти в bank0 _этого_ контроллера)
С глобальными переменными у компиляторов под пики проблемы - они размещаются только в bank0.
Со словом bank всё просто. Вы можете объявить глобальную или статическую локальную как
(static) bank1(2, 3, ...) int my_var;
По #pragma rambank могу только предложить почитать мануал компилятора, т.к. посредством #pragma описываются чудеса конкретного компилятора.
(скорее всего для размещения переменных в разных банках CC5X предполагает конструкцию типа
#pragma rambank 1
<переменные в bank1>
#pragma rambank 2
<переменные в bank2>
...
#pragma rambank // возвращает контроль за размещением переменных компилятору
)