реклама на сайте
подробности

 
 
> MPLAB и HI-TECH 9.60
tarasik
сообщение Apr 9 2008, 16:23
Сообщение #1





Группа: Новичок
Сообщений: 8
Регистрация: 9-04-08
Пользователь №: 36 618



Как программист я не очень сильный, как электронщик еще ничего... Посему не судите строго за может быть и дурацкий вопрос. Суть проблемы в следующем: Писал программу на С используя MPLAB v8 в cвязке с HI-TECH v9.60 для микроконтроллера PIC16F876A. Схема хорошо работает и я постепенно добавляю в нее новые сервисные возможности. И теперь компилятор выдает окно, что использовал я Program DATA на 99% в BANK 0 и при введении новых переменных естественно выдает ошибку. Господа, а как же другие банки? Ведь они вообще пустые, судя по отчету компилятора. Вот я и хотел бы знать как заставить HI-TECH размещать переменные в других банках, например в BANK1 ? Еще раз извините за каламбур.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
xemul
сообщение Apr 10 2008, 07:58
Сообщение #2



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Из manual.pdf от picc 9.60 PL2 STD
Цитата
3.4.9.2 Bank1, Bank2 and Bank3 Type Qualifiers
The bank1, bank2 and bank3 type qualifiers are used to place static variables in RAM bank 1,
RAM bank2 and RAM bank 3 respectively. Note that there is no bank0 qualifier. Objects default to
being in bank0 if no other bank qualifier is used. All auto objects are positioned into bank0, along
with function parameters.

Из manual.pdf от picc 9.60 PL0 PRO
Цитата
3.3.10.3 Bank1, Bank2 and Bank3 Type Qualifiers
The bank1, bank2 and bank3 type qualifiers are always recognised by HI-TECH C PRO for
the PIC10/12/16 MCU Family so that code may be easily ported from other compilers, however by
default, these qualifiers have no effect. If the --FORCEBANK option is used, the bank1, bank2
and bank3 qualifiers become a recommendation to place static variables in RAM bank 1, RAM
bank2 and RAM bank 3, respectively.

Для picc18 аналогично. (но он тоже не знает про квалификатор bank0:))
Могу предположить, что tarasik пользуется STD версией компилятора, которая требует рукопашного разведения переменных по банкам.
2tarasik: обратите внимание на "All auto objects are positioned into bank0, along with function parameters.", и, соответственно, не вводите лишних локальных переменных и аргументов функций.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 19:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.01363 секунд с 7
ELECTRONIX ©2004-2016