Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: HI-TECH PICC18 и распределение памяти
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > PIC
SergR
Я раньше работал с PIC16, там было всё понятно. Можно было написать
bank1 unsigned char var1;
И я знал где (по крайней мере в каком банке) находится моя переменная и сколько в этом банке есть ещё места.

Не давно я занялся проектом с процессором PIC18f4550 использую компилятор picc-18_9.50pl3_25jan2007. И у меня возникли вопросы с распределением памяти компилятором:

1. Что это и где их физическое расположение? RAM, BIGRAM, COMRAM, NVRAM

2. У меня есть структура:
...
#define STEC_STR_Length 83 // Размер Стека в Байтах

typedef volatile struct
{
unsigned char STEC_BODY[STEC_STR_Length];
unsigned char START_ADR;
unsigned char Quantity_Byte;
}STEC_STR;
...

Всё компилится прекрасно и выдаёт сообшение...

Data space:
RAM used 1ADh ( 429) of 400h bytes ( 41.9%)
BIGRAM used 18Eh ( 398) of 400h bytes ( 38.9%)
COMRAM used 10h ( 16) of 60h bytes ( 16.7%)
NVRAM used 0h ( 0) of 100h bytes ( 0.0%)
... вроде есть куча свободного места, но если поменять STEC_STR_Length со значения 83 на 84 то при компиляции будет ошибка:

(593) can't find 0x102 words (0x102 withtotal) for psect "bss" in segment "RAM"
(908) exit status = 1

В общем с чем это всё едят и как с ним бороться?
abivan
http://www.microchip.ru/phorum/search.php?...1&fldbody=1

там все ответы есть.
SergR
Спасибо за ссылочку, действительно почерпнул много полезной информации.
Но я там не понял что означает один момент
-L-ARAM=0-5FFh
В описании компилятора я этого не нашол, но оно помогло с моей проблемой... однако !?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.