Microchip PIC MPLAB(MCC18)编译器将其存储器分为256个块(0x100).
如何创建大于256字节的数组?
char buffer[256];
为了达到256,我需要制作一个单独的片段 #pragma
#pragma udata segment_name char buffer[256]; #pragma udata
所以我可以强制MCC18让我们分配更大的缓冲区?或组合两个内存段?
粘贴答案来自:
http://forum.microchip.com/printable.aspx?m=39357
以防万一它消失了.
在三个简单的步骤中步骤1:将变量分配到源代码中的命名部分:
#pragma udata big_scn char big_array[0x180]; #pragma udata第2步:在链接描述文件中创建更大的区域:之前:
DATABANK NAME=gpr3 START=0x300 END=0x3FF DATABANK NAME=gpr4 START=0x400 END=0x4FF后:
DATABANK NAME=big_scn START=0x300 END=0x47F PROTECTED DATABANK NAME=gpr4 START=0x480 END=0x4FF SECTION NAME=big_scn RAM=big_scn第3步:仅通过指针引用:
char *big_array_ptr = &big_array[0]; big_array_ptr[0x100] = 5; while( big_array_ptr[x] != 20 )
注意:我相信您仍然可以直接引用数组而不是使用指针.似乎为我工作.
相同的信息可以在以下文档中找到:
"MPLAB C18 C编译器入门指南"
第104页.