Не удается подогнать ошибку раздела для разделов памяти данных?

Вот краткое изложение моей проблемы...

Я не мог увеличить количество координаторов выше 16, а таблицы соединений ограничены для PAN и координаторов. PAN может иметь до 16 узлов в своей таблице соединений, в то время как координатор поддерживает только 8 узлов. У меня PIC18F87J11 FAMILY, и я использую компилятор MPLAB C18.

КООРДИНАТОР:

Координаторы могут иметь NUM_COORDINATOR равным 16, но в его таблице соединений отображаются только 8 узлов. CONNECTION_SIZE должен быть равен 8 или меньше, любое большее значение приводит к ошибке.

Увеличение размера соединения с 8 до 16 дает следующую ошибку.

Error - section '__CONNECTION_TABLE' can not fit the section. Section '__CONNECTION_TABLE' length=0x000001d0
Errors    : 1

Увеличение количества координаторов с 16 до 32 дает следующую ошибку.

Error - section 'RANDOM_SEND_BUFFER' can not fit the section. Section 'RANDOM_SEND_BUFFER' length=0x00000118
Errors    : 1

ПАНСИОНАТ:

В PAN для NUM_COORDINATOR может быть установлено значение 16, и 16 узлов отображаются в его таблице соединений. CONNECTION_SIZE должен быть 16 или меньше, любое большее значение приводит к ошибке. Конечным устройствам не удается подключиться к сети после того, как к сети уже подключено 16 узлов.

Увеличение размера соединения с 16 до 32 дает следующую ошибку.

Error - section '__CONNECTION_TABLE' can not fit the section. Section '__CONNECTION_TABLE' length=0x000001c0
Errors    : 1

Увеличение количества координаторов с 16 до 32 дает следующую ошибку.

Error - section 'RANDOM_SEND_BUFFER' can not fit the section. Section 'RANDOM_SEND_BUFFER' length=0x00000118
Errors    : 1

Это код, который я использую для ConnectionTable.

#if defined(__18CXX)
#pragma udata __CONNECTION_TABLE
#endif
CONNECTION_ENTRY    ConnectionTable[CONNECTION_SIZE];

Это код, который я использую для RANDOM_SEND_BUFFER.

 #if defined(__18CXX)
 #pragma udata RANDOM_SEND_BUFFER
 #endif

Может ли кто-нибудь объяснить мне, почему я получаю эти ошибки сборки?

Спасибо!


person cookie monster    schedule 17.06.2013    source источник


Ответы (1)


По умолчанию раздел компоновщика имеет максимальный размер 256 байт. Вы должны увеличить размер раздела в скрипте компоновщика.

Читайте также: Как создать переменную размером более 256 байт в MPLAB C18?

person GJ.    schedule 17.06.2013
comment
У меня нет компоновщика в папке скрипта компоновщика, я думаю, что использую автоматический. Где я могу найти раздел компоновщика, на который вы ссылаетесь? - person cookie monster; 18.06.2013
comment
Да, я все еще застрял, не знаю, как следовать руководству без скрипта компоновщика. - person cookie monster; 18.06.2013
comment
@cookie monster: имя файла скрипта компоновщика 18f87j11_g.lkr - person GJ.; 18.06.2013
comment
Это может быть основной вопрос, но где мне найти файл 18f87j11_g.lkr? Как только я найду его, я должен включить его в свой проект? - person cookie monster; 18.06.2013
comment
@cookie monster: сделайте копию файла, измените копию и включите ее в проект. - person GJ.; 18.06.2013
comment
Наконец-то я смог заставить его работать, я тоже нашел этот урок полезным. Как создавать объекты размером более 256 байт с помощью Microchip MPLAB C18. - person cookie monster; 19.06.2013
comment
Пожалуйста, взгляните на это, если у вас есть шанс. stackoverflow.com/questions/17182064/ - person cookie monster; 19.06.2013