|
本帖最后由 qinlicn 于 2021-12-16 15:17 编辑
请问有没有比较好的RAM检测的方法?下面这种有什么问题?
unsigned long gul_ram_value@0x20005FFC;
unsigned char ram_test(void)
{
unsigned char ram_error=0;
unsigned long ram_addr, ram_value;
for (ram_addr=0x20000000; ram_addr<0x20005FFC; ram_addr+=4)
{
gul_ram_value = *(unsigned long *)ram_addr; //备份RAM数据
*(unsigned long *)ram_addr = 0xAAAAAAAA; //修改RAM数据
ram_value = *(unsigned long *)ram_addr; //读取RAM数据
if (ram_value != 0xAAAAAAAA) //检查RAM数据
{
ram_error = 1;
break;
}
*(unsigned long *)ram_addr = 0x55555555; //修改RAM数据
ram_value = *(unsigned long *)ram_addr; //读取RAM数据
if (ram_value != 0x55555555) //检查RAM数据
{
ram_error = 1;
break;
}
*(unsigned long *)ram_addr = gul_ram_value; //恢复RAM数据
}
return ram_error;
}
|
|