Jus*_*ner 3 memory embedded microchip pic
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:将变量分配到源代码中的命名部分:
Run Code Online (Sandbox Code Playgroud)#pragma udata big_scn char big_array[0x180]; #pragma udata第2步:在链接描述文件中创建更大的区域:之前:
Run Code Online (Sandbox Code Playgroud)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第3步:仅通过指针引用:
Run Code Online (Sandbox Code Playgroud)char *big_array_ptr = &big_array[0]; big_array_ptr[0x100] = 5; while( big_array_ptr[x] != 20 )
注意:我相信您仍然可以直接引用数组而不是使用指针.似乎为我工作.
相同的信息可以在以下文档中找到:
第104页.