OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4516|回复: 3

在SRAM那课发现个个问题

[复制链接]

47

主题

255

帖子

1

精华

高级会员

Rank: 4

积分
641
金钱
641
注册时间
2012-11-3
在线时间
6 小时
发表于 2013-4-19 21:25:16 | 显示全部楼层 |阅读模式
开发板载一个1m字节的IS62WV51216,用FSMC来进行读写,我现在把数据写入IS62WV51216外面(意思就是没有把数据写在IS62WV51216),然后在读回来,也能得到我们刚刚写入的数据。

假如这个函数是测试外部内存容量的,那么我感觉例程这个 外部内存测试  的函数就有点问题了,如果不是测试容量的,我就多虑了


//外部内存测试(最大支持1M字节内存测试)    
void fsmc_sram_test(u16 x,u16 y)

 u32 i=0,j;    
 u8 temp=0;   
 u8 sval=0; //在地址0读到的数据         
   LCD_ShowString(x,y,239,y+16,16,"Ex Memory Test:   0KB");
 //每隔4K字节,写入一个数据,总共写入256个数据,刚好是1M字节
 for(i=0;i<1024*1024;i+=4096)
 {
    FSMC_SRAM_WriteBuffer(&temp,i,1);
    temp++;        
 }
 //依次读出之前写入的数据,进行校验   
  for(i=0;i<1024*1024;i+=4096)
 { j++;
      FSMC_SRAM_ReadBuffer(&temp,i,1);
     if(i==0)sval=temp;
     else if(temp<=sval)break;//后面读出的数据一定要比第一次读到的数据大.        
     LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);//显示内存容量
  }     
}      这个函数测回来的内存是1024k 

假如用这个函数测小于1024k的内存,的到的测试结果应该也是1024k,为什么这么说呢,第一个for循环  循环256次,假如测试小于1024k的内存,那么在循环结束时,有一些数据肯定溢出了(因为内存<1024k,已经满了),那么在通过第二个for循环进行读,也是循环256次,读回来的数据肯定和写入的一样啊,不可能执行else if(temp<=sval)break;,因为溢出的那些数据读回来也是我们写入的数据,那么在进行 LCD_ShowxNum(x+15*8,y,(u16)(temp-sval+1)*4,4,16,0);的时候,无论是不是1024k额内存,显示的数据也是1024k

我把这个函数改为   最大支持2M字节内存测试       时     ,显示的就是2048k,验证了我得想法。 
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-4-19 22:36:04 | 显示全部楼层
回复【楼主位】liyanchao153:
---------------------------------
这里确实有bug.
谢谢指出.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

23

主题

106

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2013-9-5
在线时间
8 小时
发表于 2013-12-29 15:37:08 | 显示全部楼层
回复【楼主位】liyanchao153:
---------------------------------
那您说溢出的数据存到哪了?
回复 支持 反对

使用道具 举报

221

主题

501

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1238
金钱
1238
注册时间
2013-1-9
在线时间
121 小时
发表于 2014-1-18 16:50:32 | 显示全部楼层
同问,溢出的数据存哪儿了?无法测试小于1M的外接SRAM
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-6 09:24

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表