📄 dmc.c
字号:
/*****************************************
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 + -