如下检测
#define EXTRAM 0x80000000 //定义指向RAM起始地址的指针
#define EXTRAMSPACE 0x40000 //这里是你自己定义的要检测的RAM的大小
int i;
//通过各单元填写0x55和0xAA,可检测各个位是否都可置0和置1
//通过交替改写,可检测是否有地址重叠
for(i = 0; i < EXTRAMSPACE; i++) //所有单元填0x55
{
*((volatile unsigned char *)(EXTRAM + i)) = 0x55;
}
for(i = 0; i < EXTRAMSPACE; i++)
{
if(*((volatile unsigned char *)(EXTRAM + i)) == 0x55)
{
*((volatile unsigned char *)(EXTRAM + i)) = 0xAA;
}
else
{
//错误处理
}
}
for(i = 0; i < EXTRAMSPACE; i++) //回读所有单元
{
if(*((volatile unsigned char *)(EXTRAM + i)) == 0xAA)
{
*((volatile unsigned char *)(EXTRAM + i)) = 0x00;
}
else
{
//错误处理
}
}
发表时间:2007年8月1日0:51:49