• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32内部SRAM

123456yhs 2018-05-23 浏览量:835

首先我使用的处理器的型号是STM32F407ZGT6内部的FLAH为1MB,SRAM为192KB在使用lwip例程时,发现keil编译后的存储空间使用情况为:

code =86894 ;RO-data=1930;RW-data=456;ZI-data=407792;也就意味着使用的sram的大小为(456+407792)=408248(B)=398(KB)

已经超过了stm32自身的sram的大小,但是编译器并没有提示错误,并且在开发板上能够正常运行,

想问一下大家这是为什么?


说明,我并没有使用外部的sram,虽然板子上有外部的sram,但是我已经在程序中将对应的代码已经屏蔽掉,


0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 随机存储器的值是根据满载值参考的,实际上单片机运行过程中堆栈大小不断变化,不一定每时每刻都全部占用RAM的大小,所以只要峰值时不超出RAM的承受范围,都不会报错。

    • 发布于 2018-05-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 随机存储器相当于手机内存,并不是任何时刻都是满载的,只有任务开多了才会
    • 发布于2018-05-23
    • 举报
    • 评论 2
    • 0
    • 0
123456yhs 回复了 幻月星辰 :那是不是意味着,我的板子运行久了,便会死机呢 回复
123456yhs 回复了 幻月星辰 :那是不是意味着,我的板子运行久了,便会死机呢 回复

  • 这个跟你的程序设置有关的,MDK里面有个地方可以设置RAM区间,只要你的RAM使用没有超过这个区间它都不会报错。虽然你在程序里面屏蔽了外部RAM,但是这里没有修改。

    如下图

    TIM截图20180523221556.jpg

    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

  • ZI虽然很大,但都是没有用到的,在烧写时是不烧写的。
    • 发布于2018-05-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个是跟你KEIL的软件设置有关的,要两个地址对应才可以使用
    • 发布于2018-06-22
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32内部SRAM