无法适应数据存储区的部分错误?

时间:2013-06-17 19:18:50

标签: c microcontroller pic microchip mplab

以下是我的问题的简要摘要......

我无法增加超过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:

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

有人可以向我解释为什么我会收到这些构建错误吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

默认情况下,链接器部分的最大大小为256字节。 您必须在链接描述文件中扩展节的大小。

另请阅读:How do I create a variable larger than 256 bytes in MPLAB C18?