求助,SDRAM刷新异常以及写入数据的时候会覆盖所有的地址,这是什么回事??

2019-07-20 15:14发布

本帖最后由 木木的忧伤 于 2017-4-15 16:55 编辑

各位大神,调试SDRAM的时候遇到麻烦了,先说明现象:1.图中设置了4个断点,运行到第一个断点处的语句用于向SDRAM的首地址写入一个数。
运行到第一个断点 运行到第一个断点 图1


2.此时SDRAM中的内容如图2所示:
2.SDRAM中的数据 2.SDRAM中的数据 图2
3.当运行到下一个断点时,写入的数据会被写入所有的地址,如图3所示:
3.运行到第二个断点SDRAM中的数据 3.运行到第二个断点SDRAM中的数据 图3
4.再继续运行到delay函数时,写入另一个地址的数据也会被写入所有的地址,覆盖了上一次写入的数据,如图4
4.运行到delay时SDRAM中的数据 4.运行到delay时SDRAM中的数据
5.经过延时后会发现,之前写入的数据丢失了,如图5
5.运行到第4个断点SDRAM中的数据 5.运行到第4个断点SDRAM中的数据


请问:发生以上情况的原因是什么呢?

以下是SDRAM相关参数以及设置:
SDRAM 参数:行地址数:11 ,列地址数:8 ,数据位宽 32 bit。
                     TMRD: 2 CLK
                      TXSR: 77 ns
                      TRAS: 42 ns
                      TRC : 70 ns
                      TWR: 1 CLK+7ns
                      TRP: 20 ns
                      TRCD: 20 ns

以下是程序配置:
程序1.png
程序2.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。