📄 au1000_memtest.c
字号:
#include <pb1000.h>
#include <stdio.h>
#include <sys_api.h>
void au1000_memtest()
{
unsigned int x, y, z;
unsigned int *ptr;
unsigned int addr[30] = {
0xA0000C00, 0xA0001200, 0xA0002100, 0xA0004080, 0xA0008040, 0xA0010020,
0xA0020000, 0xA0040000, 0xA0080000, 0xA0100500, 0xA0200280, 0xA0400140,
0xA0d000A0, 0xA1280050, 0xA1940020, 0xA2000C00, 0xA2001200, 0xA2002100,
0xA2004080, 0xA2008040, 0xA2010020, 0xA2020000, 0xA2040000, 0xA2080000,
0xA2100500, 0xA2200280, 0xA2400140, 0xA2d000A0, 0xA3280050, 0xA3940020
};
unsigned int pattern[21][8] = {
0x88888888, 0x99999999, 0xAAAAAAAA, 0xBBBBBBBB, 0xCCCCCCCC, 0xDDDDDDDD, 0xEEEEEEEE, 0xFFFFFFFF,
0xAAAAAAAA, 0x55555555, 0xAAAAAAAA, 0x55555555, 0xAAAAAAAA, 0x55555555, 0xAAAAAAAA, 0x55555555,
0x55555555, 0xAAAAAAAA, 0x55555555, 0xAAAAAAAA, 0x55555555, 0xAAAAAAAA, 0x55555555, 0xAAAAAAAA,
0x66666666, 0x99999999, 0x66666666, 0x99999999, 0x66666666, 0x99999999, 0x66666666, 0x99999999,
0x99999999, 0x66666666, 0x99999999, 0x66666666, 0x99999999, 0x66666666, 0x99999999, 0x66666666,
0xCCCCCCCC, 0x33333333, 0xCCCCCCCC, 0x33333333, 0xCCCCCCCC, 0x33333333, 0xCCCCCCCC, 0x33333333,
0x33333333, 0xCCCCCCCC, 0x33333333, 0xCCCCCCCC, 0x33333333, 0xCCCCCCCC, 0x33333333, 0xCCCCCCCC,
0x77777777, 0x88888888, 0x77777777, 0x88888888, 0x77777777, 0x88888888, 0x77777777, 0x88888888,
0x88888888, 0x77777777, 0x88888888, 0x77777777, 0x88888888, 0x77777777, 0x88888888, 0x77777777,
0x11111111, 0xEEEEEEEE, 0x11111111, 0xEEEEEEEE, 0x11111111, 0xEEEEEEEE, 0x11111111, 0xEEEEEEEE,
0x22222222, 0xDDDDDDDD, 0x22222222, 0xDDDDDDDD, 0x22222222, 0xDDDDDDDD, 0x22222222, 0xDDDDDDDD,
0x44444444, 0xBBBBBBBB, 0x44444444, 0xBBBBBBBB, 0x44444444, 0xBBBBBBBB, 0x44444444, 0xBBBBBBBB,
0x0000FFFF, 0xFFFF0000, 0x0000FFFF, 0xFFFF0000, 0x0000FFFF, 0xFFFF0000, 0x0000FFFF, 0xFFFF0000,
0xFFFF0000, 0x0000FFFF, 0xFFFF0000, 0x0000FFFF, 0xFFFF0000, 0x0000FFFF, 0xFFFF0000, 0x0000FFFF,
0xF0F0F0F0, 0x0F0F0F0F, 0xF0F0F0F0, 0x0F0F0F0F, 0xF0F0F0F0, 0x0F0F0F0F, 0xF0F0F0F0, 0x0F0F0F0F,
0x0F0F0F0F, 0xF0F0F0F0, 0x0F0F0F0F, 0xF0F0F0F0, 0x0F0F0F0F, 0xF0F0F0F0, 0x0F0F0F0F, 0xF0F0F0F0,
0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000,
0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF,
0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000,
0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF,
0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000
};
unsigned int temp[8];
DISP_STR("SDRAM THRASH\n");
for(x=0;x<30;x++)
{
ptr = (unsigned int *) addr[x];
for(z=0;z<8;z++)
{
temp[z] = ptr[z];
}
for(y=0; y<21; y++)
{
for(z=0;z<8;z++)
{
ptr[z] = pattern[y][z];
}
ptr = (unsigned int *) addr[x];
asm(" .set mips3\n"
" cache 0x11,0(%0)\n"
" .set mips0\n"
:: "g"(ptr) );
for(z=0;z<8;z++)
{
if(ptr[z] != pattern[y][z])
DISP_STR("MEMTHRASH ERROR");
else
ptr[z] = temp[z];
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -