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 Compiler Getting Started Guide
第104页