Как в PIC 16f877 переключать страницы памяти?
Как в PIC 16f877 переключать страницы памяти?
Пишу примитивную прогу в CCS_PCWHD компиляторе. Дописал до 25% памяти и все - пишет типа нехватка памяти и т.д. Подскажите как в программе написать чтобы пошло обращение к след странице? И потом в конце всей проги надо опять к первой возвращаться или он сам вернеться?
- Реклама
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: Как в PIC 16f877 переключать страницы памяти?
может, все-таки банки, а не страницы ??? 
я совсем не знаю ццс, чтобы что-то толковое советовать, но попробуйте на какой-нить объемный массив в оперативке навесить не unsigned char array[] ,а bank1 unsigned char array[]
Компилятор распоряжается "автоматически" только 0 банком, остальные нужно подключать ручками.
я совсем не знаю ццс, чтобы что-то толковое советовать, но попробуйте на какой-нить объемный массив в оперативке навесить не unsigned char array[] ,а bank1 unsigned char array[]
Компилятор распоряжается "автоматически" только 0 банком, остальные нужно подключать ручками.
Re: Как в PIC 16f877 переключать страницы памяти?
мне не переменную туда надо писать а текст программы... У меня оператор switch на всю память 2к залазит с большим вложением. Вот мне надо чтобы прога пошла в 4к область памяти. Как это сделать?
Re: Как в PIC 16f877 переключать страницы памяти?
Память программ на банки не делится, а делится память данных.
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: Как в PIC 16f877 переключать страницы памяти?
Была когда-то проблема с каким-то компилятором - если файл, скажем, main.c , занимает больше какого-то размера, компиляция не происходит. Лечилось разбиением на несколько файлов.
и 2-х килобайтовый свитч... это нечто...
размер функции желательно выбирать такой, чтобы она влезала в размер экрана. Если не влазит - бить на отдельные функции.
Отладка ускоряется и ошибок меньше.
и 2-х килобайтовый свитч... это нечто...
размер функции желательно выбирать такой, чтобы она влезала в размер экрана. Если не влазит - бить на отдельные функции.
Отладка ускоряется и ошибок меньше.
- Реклама
Re: Как в PIC 16f877 переключать страницы памяти?
Хорошо, память данных. Но от этого суть проблемы не меняется ))
Re: Как в PIC 16f877 переключать страницы памяти?
разбивал функцию по 1му кейсу. Всего 8 кейсов в свиче. ничего
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: Как в PIC 16f877 переключать страницы памяти?
я предложить разбить файл на несколько, что тогда ?
Re: Как в PIC 16f877 переключать страницы памяти?
никогда не разбивал. Как это правильно сделать? Создать несколько Си файлов, подключить к проекту и компилятор потом сам откомпилит?
Re: Как в PIC 16f877 переключать страницы памяти?
Регистр PCLATH используется для адресации требуемой страници.
Им надо переключать страница.
Им надо переключать страница.
Re: Как в PIC 16f877 переключать страницы памяти?
как к этому регистру обращаться из моего компилятора? RA0 RA1 в этом регистре страницы переключает. Но как это записать?
Re: Как в PIC 16f877 переключать страницы памяти?
На асемблере так
BSF PCLATH,3 ; устанавливаем бит 3 в 1 выбор страницы 1 (800h-FFFh)
CALL метка ; переход на траницы 1 (800h-FFFh)
.
.
метка
.
RETURN ; назад
BSF PCLATH,3 ; устанавливаем бит 3 в 1 выбор страницы 1 (800h-FFFh)
CALL метка ; переход на траницы 1 (800h-FFFh)
.
.
метка
.
RETURN ; назад
Re: Как в PIC 16f877 переключать страницы памяти?
Переходы могу адресовать только 2к слов
Re: Как в PIC 16f877 переключать страницы памяти?
я незнаю как в этом компиляторе напрямую к регистрам обратиться.... Может кто знает подскажите... В атмегах такой проблемы не встречал...((((((((
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Re: Как в PIC 16f877 переключать страницы памяти?
Посмотрел код. Ну ужас.
Попробуйте воспользоваться массивами 4 байтных слов.
Попробуйте воспользоваться массивами 4 байтных слов.
- бгкот
- Мучитель микросхем
- Сообщения: 450
- Зарегистрирован: Пт фев 20, 2009 21:45:04
- Откуда: Болгария
- Контактная информация:
Re: Как в PIC 16f877 переключать страницы памяти?
Здесь дело попахивает "палённым" компилятором, что-то вроде демо-версии или подобное.miwutka07 писал(а):Пишу примитивную прогу в CCS_PCWHD компиляторе. Дописал до 25% памяти и все - пишет типа нехватка памяти и т.д. Подскажите как в программе написать чтобы пошло обращение к след странице? И потом в конце всей проги надо опять к первой возвращаться или он сам вернеться?
В подобных случаях ограничен размер кода, обычно до 2К.
Нормальный компилятор всё сам должен "переключать" и вообще в ум не может прийти заниматься переключением страниц, если, конечно, это не вызвано какими-то другими соображениями.
©"Good indian is dead one!"


