stone.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:1k
源码类别:

uCOS

开发平台:

C/C++

  1. /********************************************************
  2.   NAME: stone.c
  3.   DESC: NAND Internal RAM(stepping stone) test (4KByte)
  4.   HISTORY:
  5.   2002.03.07: ver 0.0
  6.   Rev0.0: July 12, 2002 : Shin, On Pil
  7.   Rev0.1: Ma xx, 2003 : modified for 2440, DonGo.
  8.  ********************************************************/
  9. #include "def.h"
  10. #include "option.h"
  11. #include "2440addr.h"
  12. #include "2440lib.h"
  13. #include "stone.h"
  14. #define STONE_ADDR 0x40000000
  15. #define STONE_SIZE (4*1024) // 4KB
  16. void Test_ISram(void)
  17. {
  18.     U32 i, j, error=0, loop;
  19. U32 test_pattern[4] = {0x0, 0x55555555, 0xaaaaaaaa, 0xffffffff};
  20. U32 *Stone_Addr = (void *)STONE_ADDR;
  21.     Uart_Printf("[Internal Stepping Stone test (%dbyte)]n", STONE_SIZE);
  22.     Uart_Printf("nTest Pattern : 0x0 , 0x55555555 , 0xaaaaaaaa , 0xffffffffnn");    
  23. for(loop=0; loop<4; loop++) {
  24. // write data.
  25. Uart_Printf("Write [%x]...", test_pattern[loop]);    
  26.     for(i=0; i<STONE_SIZE/4; i++) *(Stone_Addr+i)=test_pattern[loop];
  27. // Read data.
  28. Uart_Printf("Read...");
  29.     for(error=0, i=0; i<STONE_SIZE/4; i+=4) {
  30.     j=*(Stone_Addr+i);
  31.     if(j!=test_pattern[loop]) {
  32.         Uart_Printf("Error[AD:%x,Wr:%x,Rd:%xn",(Stone_Addr+i),test_pattern[loop], j);
  33.         error++;
  34.     }
  35.     }
  36. if(error==0) Uart_Printf("OK!n");
  37. else Uart_Printf("Error(%d)!n", error);
  38. }
  39. }