gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 09:24:45 24 4
gpt4 key购买 nike

Microchip PIC MPLAB (MCC18) 编译器将其内存分段为 256 个 block (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

以防万一它消失。

In Three Easy Steps Step 1: Assign the variable into a named section in source code:

#pragma udata big_scn
char big_array[0x180];
#pragma udata

Step 2: Create the larger region in the linker script: Before:

DATABANK NAME=gpr3 START=0x300 END=0x3FF
DATABANK NAME=gpr4 START=0x400 END=0x4FF

After:

DATABANK NAME=big_scn START=0x300 END=0x47F PROTECTED
DATABANK NAME=gpr4 START=0x480 END=0x4FF
SECTION NAME=big_scn RAM=big_scn

Step 3: Reference only through a pointer:

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 页。

关于memory - 如何在 MPLAB 中增加内存块的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529252/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com