请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

一个大数组是不是不能同时跨用内外部SRAM?

[复制链接]
LeoMe 提问时间:2022-7-26 10:37 / 未解决
如题
STM32F407用FSMC挂外部SRAM,RAM大小512K*16bit,正好1MB
RsAM.png
外部SRAM已经测试可用(循环全写后读出来做数据比对),然后在MDK中启用外部ram的设置,并且申请一个1024*1024字节的大数组,编译后在map文件中已经能够看到
Total RW  Size (RW Data + ZI Data)           1049720 (1025.12kB)
说明数组确实已经编进去了
而且MDK自动给分配了RAM
    i                                        0x20000000   Data           4  main.o(.data)
    pSRAM                                    0x20000004   Data           4  main.o(.data)
    Data                                     0x20000008   Data           1  main.o(.data)
    uwTick                                   0x20000014   Data           4  stm32f4xx_hal.o(.data)
    uwTickPrio                               0x20000018   Data           4  stm32f4xx_hal.o(.data)
    uwTickFreq                               0x2000001c   Data           1  stm32f4xx_hal.o(.data)
    SystemCoreClock                          0x20000020   Data           4  system_stm32f4xx.o(.data)
    hsram1                                   0x20000024   Data          80  fsmc.o(.bss)
    __initial_sp                             0x20000478   Data           0  startup_stm32f407xx.o(STACK)
    BigData                                  0x68000000   Data       1048576  main.o(.bss)


BIgData就是那个大数组,大小1024*1024字节
那么问题来了,只要BigData的大小超过外部SRAM大小,哪怕超1字节,编译器就会报错说内存不够了
这是不是就说明单一一个变量不能跨内外部RAM使用,只能在内部或者在外部
收藏 评论7 发布时间:2022-7-26 10:37

举报

7个回答
cir2way 回答时间:2022-7-26 12:10:26
数组不是连续分配的么?
xmshao 回答时间:2022-7-26 13:03:10
没那么玩过。如果IDE不支持,如果说两块地址都不连续,不支持是可以理解的。如果说两块地址是连续的,你可以尝试拆分成2块来定义,指定地址定义。
HardwareMonkey1 回答时间:2022-7-26 13:34:01
这个提问挺有意思,个人觉得是不能跨段的,除非地址是连续的,但实际上是内外RAM地址是不可能连续的。
yr 回答时间:2022-7-26 14:34:42
编译器根据数组申请的个数分配存储器,不管数组放在哪里或者哪怕SRAM还有富余空间,只要数组个数超过申请的个数,编译器都报错,个人认为这跟跨区无关
yklstudent 回答时间:2022-7-27 06:37:59
内部RAM和外部RAM地址又不连续
废鱼 回答时间:2022-7-27 09:30:02
不会跨段的。编译器会自动处理的。可以看看堆栈说明中,变量的定义规则。
butterflyspring 回答时间:2022-7-27 14:48:04
如果跨越内部外部,那么地址就不是连续的,这让编译器为难了吧。对于硬件执行起来也有难度,速度就差很远哦。


关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版