嵌入式学习小组
直播中

张超

7年用户 1295经验值
私信 关注

定义了一个64K字节的数组,如果把数组定义成变量数组运行不了怎么解决?

我定义了一个64K字节的数组,如果把数组定义成Const常量,编辑之后运行都正常。
但如果把数组定义成变量数组,可以编译(占的空间比较大:Program Size: Code=8776 RO-data=432 RW-data=2112 ZI-data=1024  )、烧录,但运行不了,用仿真单步执行发现以下错误:
* AGDI-Warning: failed to read memory at 0x20010C04, size 4

我实际需要用到变量的64K字节的数组,这个有没有办法解决?
从KEIL看到IC是如下信息:
Part number: M453VG6AE
CPU Core:
  ARM 32-bit Cortex-M4
Memories:
- SRAM: 32K
- App Flash: 256K
- ISP Flash: 4K
- Data Flash: 0~256K


变量运行的时候是放ram中 ram只有32K


回帖(1)

云中云

2024-5-21 17:26:24
根据你提供的信息,问题可能是因为SRAM空间不足导致的。你可以考虑使用动态分配内存的方式,将要使用的内存分配到堆上。具体做法是使用malloc函数动态分配内存,并在不再需要使用内存时使用free函数释放内存。注意,使用动态内存分配需要额外的注意事项,如内存泄漏、内存碎片等。另外,你也可以考虑使用外部存储设备,如SD卡、EEPROM等来处理大量数据。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分