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

📄 dmc.c

📁 samsung 最新芯片2450 的测试程序.
💻 C
📖 第 1 页 / 共 3 页
字号:
/*****************************************
  NAME: DMC.c
  DESC: Memory Controller test
  HISTORY:
  2007.10.19:GOM: draft ver 0.0
 *****************************************/

#include "system.h"
#include "dmc.h"

volatile unsigned char dma_done_DMC = 1;

#define START_ADDRESS   (_NONCACHE_STARTADDRESS)
//#define END_ADDRESS     (_NONCACHE_STARTADDRESS+4*1024*1024)
//#define END_ADDRESS     (_NONCACHE_STARTADDRESS+15*1024*1024)
#define END_ADDRESS     (_NONCACHE_STARTADDRESS+47*1024*1024)

#define START_ADDRESS_SRAM   (0x0000000)
#define END_ADDRESS_SRAM     (START_ADDRESS_SRAM + 512*1024)

#define PATTERNADDR     0		// 1: Address = Pattern ,  0: Pattern
#define PATTERN_INVERT  1 	// 1: Pattern Invert    ,  0: Pattern Non Inve

extern void DMC4burstmemcpy(U32 src, U32 dst, U32 sizebyte);
extern void DMC8burstmemcpy(U32 src, U32 dst, U32 sizebyte);

void Test_AboveAll(void)
{
	//DMC4burstmemcpy(0x31000000, 0x32000000, 0x100);
	
	printf("\n[ Memory Test Start]\n");
	Test_MEM_ReadWrite_word();
	Test_MEM_ReadWrite_word_DMCSMC_Complex();
	Test_MEM_ReadWrite_Hword();
	Test_MEM_ReadWrite_Hword_DMCSMC_Complex();
	Test_MEM_ReadWrite_byte();
	Test_MEM_ReadWrite_byte_DMCSMC_Complex();
	printf("\n[ Memory Test End]\n");
}

void Test_MEM_ReadWrite_byte_DMCSMC_Complex(void)
{
	int i;

	printf("\n[Memory Write/Read/Compare Test By Word Access]\n");

	rSMBCR1 |= (0x1<<4)|(0x1); // Byte Enable

	if (!PATTERNADDR)
	{
	    
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xffff5555);   
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffff5555);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x5555ffff); 
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x5555ffff);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xffffaaaa);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffffaaaa);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x0000ffff); 
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x0000ffff);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xffff0000);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffff0000);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xa5a5a5a5);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xa5a5a5a5);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x5a5a5a5a);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x5a5a5a5a);

		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x00000000);    // 0x00000000
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x00000000);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x11111111);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x11111111);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x22222222);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x22222222);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x33333333); 
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x33333333);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x44444444);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x44444444);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x55555555);    // 0x55555555
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x55555555);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x66666666);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x66666666);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x77777777);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x77777777);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x88888888);  
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x88888888);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x99999999); 
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x99999999);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xaaaaaaaa);    // 0xaaaaaaaa
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xaaaaaaaa);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xbbbbbbbb);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xbbbbbbbb);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xcccccccc); 
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xcccccccc);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xdddddddd); 
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xdddddddd);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xeeeeeeee);
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xeeeeeeee);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xffffffff);    // 0xffffffff                                                                                                                                                          
		mem_write_read_byte (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffffffff);
	}
	else
	{
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x00000000);        
	}

	printf("Memory Test Completed.\n");
}

void Test_MEM_ReadWrite_Hword_DMCSMC_Complex(void)
{
	int i;

	printf("\n[Memory Write/Read/Compare Test By Word Access]\n");

	rSMBCR1 |= (0x1<<4)|(0x1); // Byte Enable

	if (!PATTERNADDR)
	{
	    
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xffff5555);   
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffff5555);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x5555ffff); 
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x5555ffff);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xffffaaaa);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffffaaaa);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x0000ffff); 
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x0000ffff);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xffff0000);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffff0000);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xa5a5a5a5);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xa5a5a5a5);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x5a5a5a5a);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x5a5a5a5a);

		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x00000000);    // 0x00000000
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x00000000);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x11111111);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x11111111);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x22222222);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x22222222);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x33333333); 
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x33333333);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x44444444);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x44444444);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x55555555);    // 0x55555555
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x55555555);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x66666666);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x66666666);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x77777777);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x77777777);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x88888888);  
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x88888888);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x99999999); 
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x99999999);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xaaaaaaaa);    // 0xaaaaaaaa
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xaaaaaaaa);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xbbbbbbbb);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xbbbbbbbb);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xcccccccc); 
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xcccccccc);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xdddddddd); 
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xdddddddd);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xeeeeeeee);
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xeeeeeeee);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xffffffff);    // 0xffffffff                                                                                                                                                          
		mem_write_read_Hword (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffffffff);
	}
	else
	{
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x00000000);        
	}

	printf("Memory Test Completed.\n");
}


void Test_MEM_ReadWrite_word_DMCSMC_Complex(void)
{
	int i;

	printf("\n[Memory Write/Read/Compare Test By Word Access]\n");

	rSMBCR1 |= (0x1<<4)|(0x1); // Byte Enable

	if (!PATTERNADDR)
	{
	    
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffff5555);   
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffff5555);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x5555ffff); 
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x5555ffff);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffffaaaa);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffffaaaa);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x0000ffff); 
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x0000ffff);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffff0000);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffff0000);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xa5a5a5a5);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xa5a5a5a5);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x5a5a5a5a);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x5a5a5a5a);

		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x00000000);    // 0x00000000
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x00000000);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x11111111);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x11111111);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x22222222);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x22222222);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x33333333); 
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x33333333);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x44444444);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x44444444);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x55555555);    // 0x55555555
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x55555555);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x66666666);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x66666666);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x77777777);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x77777777);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x88888888);  
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x88888888);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x99999999); 
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0x99999999);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xaaaaaaaa);    // 0xaaaaaaaa
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xaaaaaaaa);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xbbbbbbbb);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xbbbbbbbb);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xcccccccc); 
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xcccccccc);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xdddddddd); 
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xdddddddd);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xeeeeeeee);
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xeeeeeeee);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffffffff);    // 0xffffffff                                                                                                                                                          
		mem_write_read_word (START_ADDRESS_SRAM, END_ADDRESS_SRAM, 0xffffffff);

	}
	else
	{
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x00000000);        
	}

	printf("Memory Test Completed.\n");
}

void Test_MEM_ReadWrite_word(void)
{
	int i;

	printf("\n[Memory Write/Read/Compare Test By Word Access]\n");

	if (!PATTERNADDR)
	{
	    
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffff5555);   
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xaaaaffff);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x5555ffff);   
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffffaaaa);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x0000ffff); 
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffff0000);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xa5a5a5a5);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x5a5a5a5a);

		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x00000000);    // 0x00000000
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x11111111);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x22222222);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x33333333); 
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x44444444);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x55555555);    // 0x55555555
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x66666666);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x77777777);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x88888888);  
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x99999999); 
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xaaaaaaaa);    // 0xaaaaaaaa
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xbbbbbbbb);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xcccccccc); 
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xdddddddd); 
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xeeeeeeee);
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0xffffffff);    // 0xffffffff                                                                                                                                                          

		for (i=0;i<32;i++)          // Data Bit
		    mem_write_read_word (START_ADDRESS, END_ADDRESS, (1<<i)); 
		for (i=0;i<31;i++)
		    mem_write_read_word (START_ADDRESS, END_ADDRESS, (3<<i)); 
		for (i=0;i<30;i++)
		    mem_write_read_word (START_ADDRESS, END_ADDRESS, (7<<i)); 
		for (i=0;i<29;i++)
		    mem_write_read_word (START_ADDRESS, END_ADDRESS, (0xf<<i));
	}
	else
	{
		mem_write_read_word (START_ADDRESS, END_ADDRESS, 0x00000000);        
	}

	printf("Memory Test Completed.\n");
}


void Test_MEM_ReadWrite_Hword(void)
{
	int i;

	printf("\n[ Memory Write/Read/Compare Test By Half Word Access]\n");

	if (!PATTERNADDR)
	{
	    
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xff55);   
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xaaff);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x55ff);   
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xffaa);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x00ff); 
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xff00);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xa5a5);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x5a5a);

		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x0000);    // 0x00000000
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x1111);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x2222);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x3333); 
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x4444);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x5555);    // 0x55555555
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x6666);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x7777);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x8888);  
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x9999); 
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xaaaa);    // 0xaaaaaaaa
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xbbbb);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xcccc); 
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xdddd); 
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xeeee);
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0xffff);    // 0xffffffff                                                                                                                                                          
	    
		for (i=0;i<16;i++)          // Data Bit
		    mem_write_read_Hword (START_ADDRESS, END_ADDRESS, (1<<i)); 
		for (i=0;i<15;i++)
		    mem_write_read_Hword (START_ADDRESS, END_ADDRESS, (3<<i)); 
		for (i=0;i<14;i++)
		    mem_write_read_Hword (START_ADDRESS, END_ADDRESS, (7<<i)); 
		for (i=0;i<13;i++)
		    mem_write_read_Hword (START_ADDRESS, END_ADDRESS, (0xf<<i));
	}
	else
	{
		mem_write_read_Hword (START_ADDRESS, END_ADDRESS, 0x0000);        
	}

	printf("Memory Test Completed.\n");
}


void Test_MEM_ReadWrite_byte(void)
{
	int i;

	printf("\n[ Memory Write/Read/Compare Test By byte Access]\n");

	if (!PATTERNADDR)
	{
	    
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xf5);   
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xaf);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x5f);   
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xfa);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x0f); 
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xf0);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xa5);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x5a);

		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x00);    // 0x00000000
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x11);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x22);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x33); 
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x44);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x55);    // 0x55555555
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x66);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x77);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x88);  
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x99); 
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xaa);    // 0xaaaaaaaa
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xbb);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xcc); 
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xdd); 
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xee);
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0xff);    // 0xffffffff                                                                                                                                                          

		for (i=0;i<8;i++)          // Data Bit
		    mem_write_read_byte (START_ADDRESS, END_ADDRESS, (1<<i)); 
		for (i=0;i<7;i++)
		    mem_write_read_byte (START_ADDRESS, END_ADDRESS, (3<<i)); 
		for (i=0;i<6;i++)
		    mem_write_read_byte (START_ADDRESS, END_ADDRESS, (7<<i)); 
		for (i=0;i<5;i++)
		    mem_write_read_byte (START_ADDRESS, END_ADDRESS, (0xf<<i));	                                               
	}
	else
	{
		mem_write_read_byte (START_ADDRESS, END_ADDRESS, 0x00);        
	}

	printf("Memory Test Completed.\n");
}

//================================================================================

void mem_write_read_word(int address, int end_addr, int pattern)
{

⌨️ 快捷键说明

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