完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我定义了一个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 |
|
相关推荐
1个回答
|
|
根据M4的内存限制,SRAM只有32K的容量,而你定义的数组大小为64K字节,无法完全存储于SRAM中。如果将数组定义为Const常量,则会存储在Flash中,因此可以正常运行。但如果将其定义为变量数组,则需要存储在SRAM中,由于SRAM空间不足,因此无法正常运行。解决这个问题的方式是考虑使用外部存储器,例如外部RAM。将数组存储在外部RAM中,这样就能规避内存限制的问题。需要注意的是,使用外部存储器会增加系统的成本和复杂度。
|
|
|
|
只有小组成员才能发言,加入小组>>
3319 浏览 9 评论
2997 浏览 16 评论
3495 浏览 1 评论
9065 浏览 16 评论
4088 浏览 18 评论
1185浏览 3评论
611浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
601浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2337浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1898浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 21:15 , Processed in 1.131105 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (威廉希尔官方网站 图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号