⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memtest.c

📁 Samsung S3C2443 Monitor program source code
💻 C
字号:
/*
 * FILE : Sram.c 
 * Description: 2420 user defined test program.
 * History:
 *	Nov/xx/2002	for 2420. S.J.Lee
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "Option.h"
#include "2443addr.h"
#include "Console.h"
#include "def.h"

#define	SRAM_SADDR	_NONCACHE_STARTADDRESS
#define	SRAM_EADDR	(SRAM_SADDR+ (128*1024))	// Total : 256KB, 0x3100_0000-0x3101_FFFF





// for USB mon code - modified by cha 
void MemoryTest(void)
{
    volatile unsigned int *pt;
	volatile unsigned int data;
    int memError=0;
    //
    // memory test
    //

    pt=(unsigned int *)(_NONCACHE_STARTADDRESS);
    printf("Memory Test(0x%08x-0x%08x): WR\n",pt,0x33ff0000);//??
    printf("Now memory checking :%16d",0);
    
    while((unsigned int)pt<0x33ff0000) // modified by cha
    {
    	*pt=0x00000000;	data=*pt;
    	if (data != 0x00000000)	printf("\nFAIL:0x%08x=0x%08x (0x00000000 expected).\n",pt,data);
        
    	*pt=0xffffffff;	data=*pt;
    	if (data != 0xffffffff)	printf("\nFAIL:0x%08x=0x%08x (0xffffffff expected).\n",pt,data);
    
    	*pt=0x55555555;	data=*pt;
    	if (data != 0x55555555)	printf("\nFAIL:0x%08x=0x%08x (0x55555555 expected).\n",pt,data);

    	*pt=0xaaaaaaaa;	data=*pt;
    	if (data != 0xaaaaaaaa)	printf("\nFAIL:0x%08x=0x%08x (0xaaaaaaaa expected).\n",pt,data);
    
		*pt=(unsigned int)pt;
	    if(((unsigned int)pt&0x0000ffff)==0)printf("\b\b\b\b\b\b\b\b%8x",pt);
		pt++;
    }
	printf("\b\b\b\b\b\b\b\b%8x",0x33ff0000);
    pt=(unsigned int *)(_NONCACHE_STARTADDRESS);
    printf("\rMemory Test(0x%08x-0x%08x): RD",pt,0x33ff0000);
	
    while((unsigned int)pt<0x32000000)//?
    {
		data=*pt;
		if(data!=(unsigned int)pt)
		{
		    memError=1;
		    printf("\b\bFAIL:0x%x=0x%x\n",pt,data);
		    break;
		}
		pt++;
    }


    if(memError==0)printf("\nO.K.\n");
}


void ClearMemory(void)
{
	int i;
	U32 data;
	int memError=0;
	U32 *pt;
	
	//
	// memory clear
	//
	printf("Clear Memory (%xh-%xh):WR",_RAM_STARTADDRESS,HEAPEND);

	pt=(U32 *)_RAM_STARTADDRESS;
	while((U32)pt < HEAPEND)
	{
		*pt=0x0;
		pt++;
	}
	
	if(memError==0)printf("\b\bO.K.\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -