如何在MPLAB中增加内存块的大小?

Jus*_*ner 3 memory embedded microchip pic

Microchip PIC MPLAB(MCC18)编译器将其存储器分为256个块(0x100).

如何创建大于256字节的数组?

char buffer[256];
Run Code Online (Sandbox Code Playgroud)

为了达到256,我需要制作一个单独的片段 #pragma

#pragma udata segment_name
char buffer[256];
#pragma udata
Run Code Online (Sandbox Code Playgroud)

所以我可以强制MCC18让我们分配更大的缓冲区?或组合两个内存段?

Jus*_*ner 5

粘贴答案来自:

http://forum.microchip.com/printable.aspx?m=39357

以防万一它消失了.

在三个简单的步骤中步骤1:将变量分配到源代码中的命名部分:

#pragma udata big_scn
char big_array[0x180];
#pragma udata
Run Code Online (Sandbox Code Playgroud)

第2步:在链接描述文件中创建更大的区域:之前:

DATABANK NAME=gpr3 START=0x300 END=0x3FF
DATABANK NAME=gpr4 START=0x400 END=0x4FF
Run Code Online (Sandbox Code Playgroud)

后:

DATABANK NAME=big_scn START=0x300 END=0x47F PROTECTED
DATABANK NAME=gpr4    START=0x480 END=0x4FF
SECTION  NAME=big_scn RAM=big_scn
Run Code Online (Sandbox Code Playgroud)

第3步:仅通过指针引用:

char *big_array_ptr = &big_array[0];
big_array_ptr[0x100] = 5;
while( big_array_ptr[x] != 20 )
Run Code Online (Sandbox Code Playgroud)

注意:我相信您仍然可以直接引用数组而不是使用指针.似乎为我工作.

相同的信息可以在以下文档中找到:

"MPLAB C18 C编译器入门指南"

第104页.