硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3895|回复: 3
收起左侧

大神看看我的这个sdram 读写速度如何啊 ???

[复制链接]

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
发表于 2016-11-1 12:14:51 | 显示全部楼层 |阅读模式
SDRAM Test 8Bit Data Write Start ...[2016-10-28 07:14:41.350]           // 表示写入开始
SDRAM Test 8Bit Data Begin Check ...[2016-10-28 07:14:47.760]        // 6.41 表示写入 完成 用时读 开始
SDRAM Check Num = 0                 [2016-10-28 07:14:53.587]             // 5.827     读取数据完成, 以下类同

SDRAM Test 16Bit Data Write Start ...[2016-10-28 07:14:53.587]
SDRAM Test 16Bit Data Begin Check ...[2016-10-28 07:14:57.954]  // 4.367
SDRAM Check Num = 1                  [2016-10-28 07:15:02.085]  // 4.131


SDRAM Test 32Bit Data Write Start ...[2016-10-28 07:15:02.085]
SDRAM Test 32Bit Data Begin Check ...[2016-10-28 07:15:04.077]  // 1.992
SDRAM Check Num = 2                  [2016-10-28 07:15:05.959]  // 1.882


---------------------------------------------------------------------
SDRAM Test 8Bit Data Write Start ...[2016-10-29 08:00:17.771]
SDRAM Test 8Bit Data Begin Check ...[2016-10-29 08:00:24.179]   // 6.408
SDRAM Check Num = 0                 [2016-10-29 08:00:30.009]   // 5.83

SDRAM Test 16Bit Data Write Start ...[2016-10-29 08:00:30.009]
SDRAM Test 16Bit Data Begin Check ...[2016-10-29 08:00:34.377]  // 4.368
SDRAM Check Num = 1                  [2016-10-29 08:00:38.456]  // 4
  
SDRAM Test 32Bit Data Write Start ...[2016-10-29 08:00:38.456]
SDRAM Test 32Bit Data Begin Check ...[2016-10-29 08:00:40.481]  // 2.025
SDRAM Check Num = 2                  [2016-10-29 08:00:42.379]  // 1.898

----------------------------------------------------------------------------------------
SDRAM Test 8Bit Data Write Start ...[2016-10-29 08:01:06.998]
SDRAM Test 8Bit Data Begin Check ...[2016-10-29 08:01:13.421]  // 6.423
SDRAM Check Num = 6                 [2016-10-29 08:01:19.247]  // 5.826

SDRAM Test 16Bit Data Write Start ...[2016-10-29 08:01:19.247]
SDRAM Test 16Bit Data Begin Check ...[2016-10-29 08:01:23.615]  // 4.368
SDRAM Check Num = 7                  [2016-10-29 08:01:27.698]  // 4.083

SDRAM Test 32Bit Data Write Start ...[2016-10-29 08:01:27.698]
SDRAM Test 32Bit Data Begin Check ...[2016-10-29 08:01:29.737]  // 2.039
SDRAM Check Num = 8                  [2016-10-29 08:01:31.618]  // 1.881




上述就是三次的读写测试时间,你看看效果如何啊 ??

测试函数如下:


void SDRAM_Test_8bit(void)
{
  uint8_t  *ptrSdramAddr_8Bit = (uint8_t *)SDRAM_BASE_USER_ADDR;   //   吧地址转换为指针
  
  uint32_t ii = 0;
  uint32_t jj=0;
  __IO uint8_t  SdramDataTest = 0 ;
  
  
  ptrSdramAddr_8Bit = (uint8_t *)SDRAM_BASE_USER_ADDR;   //   吧地址转换为指针
  SdramDataTest = 0;

  printf("SDRAM Test 8Bit Data Write Start ...\r\n");
  for(ii=0;ii<0x7800000;ii++)
  {
    *ptrSdramAddr_8Bit  = ( __IO uint8_t )(SdramDataTest);  
    SdramDataTest++;
    ptrSdramAddr_8Bit ++;        
  }
  
  SdramDataTest=0;
  ptrSdramAddr_8Bit = (uint8_t *)SDRAM_BASE_USER_ADDR;

  printf("SDRAM Test 8Bit Data Begin Check ...\r\n");
  for(ii=0;ii< 0x7800000;ii++)
  {
    jj  = *ptrSdramAddr_8Bit++;   
    SdramDataTest++;
  }
  printf("SDRAM Check Num = %d\r\n\r\n", OkErrCnt++);

}


void SDRAM_Test_16bit(void)
{
  uint16_t  *ptrSdramAddr_16Bit = (uint16_t *)SDRAM_BASE_USER_ADDR;
  __IO uint32_t ii = 0;
  uint16_t  jj=0;
  __IO uint16_t  SdramDataTest = 0;
  
  ptrSdramAddr_16Bit = (uint16_t *)SDRAM_BASE_USER_ADDR;   //   吧地址转换为指针
  SdramDataTest = 0;
  printf("SDRAM Test 16Bit Data Write Start ...\r\n");
  for(ii=0;ii<0x3C00000;ii++)  // 128MByte   1024*1024*32*4 = (128MByte - 8MByte) / 2 = 0x3C00000
  {
    *ptrSdramAddr_16Bit  = ( __IO uint16_t )(SdramDataTest);  
    SdramDataTest++;
    ptrSdramAddr_16Bit ++;        
  }
  
  SdramDataTest=0;
  ptrSdramAddr_16Bit = (uint16_t *)SDRAM_BASE_USER_ADDR;
  printf("SDRAM Test 16Bit Data Begin Check ...\r\n");

  for(ii=0;ii< 0x3C00000;ii++)
  {
    jj  = *ptrSdramAddr_16Bit ++;  
    SdramDataTest++;
  }   
  
  printf("SDRAM Check Num = %d\r\n\r\n", OkErrCnt++);
      
}


void SDRAM_Test_32bit(void)
{
  uint32_t  *ptrSdramAddr_32Bit = (uint32_t *)(SDRAM_BASE_USER_ADDR);          // SDRAM_BASE_USER_ADDR;
  uint32_t jj=0;
  __IO uint32_t  ii = 0, SdramDataTest = 0;
  
  
  ptrSdramAddr_32Bit = (uint32_t *)(SDRAM_BASE_USER_ADDR);   //   吧地址转换为指针
  SdramDataTest = 0;
  printf("SDRAM Test 32Bit Data Write Start ...\r\n");
  for(ii=0;ii<0x1E00000;ii++)  // 128MByte   1024*1024*32*4 = (128MByte - 8MByte) / 4 = 0x1E00000
  {
    *ptrSdramAddr_32Bit  = ( __IO uint32_t )(SdramDataTest);  
    ptrSdramAddr_32Bit ++;   
    SdramDataTest++;
  }
  
  SdramDataTest=0;
  ptrSdramAddr_32Bit = (uint32_t *)SDRAM_BASE_USER_ADDR;
  printf("SDRAM Test 32Bit Data Begin Check ...\r\n");
  for(ii=0;ii< 0x1E00000;ii++)
  {
    jj  = *ptrSdramAddr_32Bit++;   
   SdramDataTest++;
  }   
  
  printf("SDRAM Check Num = %d\r\n\r\n", OkErrCnt++);

}  
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2016-11-2 01:31:40 | 显示全部楼层
这个是我给我们的V6板子测试的

https://forum.anfulai.cn/forum.php?mod=viewthread&tid=16836
回复

使用道具 举报

692

主题

3576

回帖

5677

积分

论坛元老

积分
5677
 楼主| 发表于 2016-11-2 10:44:46 | 显示全部楼层

回 eric2013 的帖子

eric2013:这个是我给我们的V6板子测试的

https://forum.anfulai.cn/forum.php?mod=viewthread&tid=16836 (2016-11-02 01:31) 
那如此看来我的是比较慢了啊,怎么会这样啊 ?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117530
QQ
发表于 2016-11-2 11:26:05 | 显示全部楼层

回 hpdell 的帖子

hpdell:那如此看来我的是比较慢了啊,怎么会这样啊 ? (2016-11-02 10:44) 
你用我的测试方法搞搞,
for循环本身也是比较耗时间的,你可以展开一部分。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 22:22 , Processed in 0.042071 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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