Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: can't find 0x895 words for psect...
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
Roman_V
Привет!
пишу на HT-PICC 9.60PL3 для контроллера PIC16F887. У него на борту 8 кБ программной памяти. Пока программа была маленькой, то все нормально, но тут надо было увеличить программу и компилер выдал ошибку: can't find 0x895 words (0x895 withtotal) for psect "text2" in segment "CODE"
Читал инет, но так и не понял причину. То ли компилятор не дает больше 2 кБ компилить, то ли моя функция main() слишком длинная. В main() перечисляются куча операторов сравнения. Нет вызовов никаких функций.
Вопрос: как же мне победить эту ошибку? Если все же моя main() длинная, то как указать компилятору чтобы он начал использовать и оставшуюся память?
Спасибо!
xemul
Цитата(Roman_V @ Jan 24 2012, 20:59) *
Вопрос: как же мне победить эту ошибку?

Прочитать расталдычку по этой ошибке (указывайте номер ошибки в дальнейшем) в <path_to_picc9.60>\docs\manual.pdf.
Обратить внимание на
Цитата
These functions may need to be placed in new modules.
Roman_V
Цитата(xemul @ Jan 24 2012, 21:39) *
Прочитать расталдычку по этой ошибке (указывайте номер ошибки в дальнейшем) в <path_to_picc9.60>\docs\manual.pdf.
Обратить внимание на


Спасибо за расталдычку sm.gif Не знал что там есть дока.
В отдельный модуль тоже не знаю как засунуть. Понимаю что мой огромный цикл надо как то разбить на функции и засунуть функции в отдельный файл. Я правильно понимаю? Сам цикл у меня по тактам расчитан. Наверное все это сдвинется...
Не дадите пример простой как подключить файл и описать переменные?
Danis
Цитата(Roman_V @ Jan 24 2012, 22:51) *
Сам цикл у меня по тактам расчитан. Наверное все это сдвинется...

естественно!
Цитата(Roman_V @ Jan 24 2012, 22:51) *
Не дадите пример простой как подключить файл и описать переменные?

Если есть затруднения при создании много-файлового проекта, можно и в один файл несколько функций поместить, нет в этом ничего страшного.
Код
void f1(void);  // Простейший прототип
void f2(void);
void f3(void);

void main(void)
{
while(1)
   {
  f1();
  f2();
  f3();
   }
}
void f1(void) { /* ваши объявления и расчеты*/ }
void f2(void) { /* ваши объявления и расчеты*/ }
void f3(void) { /* ваши объявления и расчеты*/ }
Roman_V
Функции как определять то я знаю.
В общем выделил блоки в функции и все уместилось как надо. еще половина памяти свободно.
Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.