mem_test.c

来自「davincievm 6446 記憶體DDR撿測」· C语言 代码 · 共 89 行

C
89
字号
/*
 *  Copyright 2005 by Spectrum Digital Incorporated.
 *  All rights reserved. Property of Spectrum Digital Incorporated.
 *
 *  Not for distribution.
 */

/*
 *  Memory Test
 *
 */

#include "davincievm.h"

Uint32 memfill32( Uint32 start, Uint32 len, Uint32 val )
{
    Uint32 i;
    Uint32 end = start + len;
    Uint32 errorcount = 0;

    /* Write Pattern */
    for ( i = start; i < end; i += 4 )
    {
        *( volatile Uint32* )i = val;
    }

    /* Read Pattern */
    for ( i = start; i < end; i += 4 )
    {
        if ( *( volatile Uint32* )i != val )
        {
            errorcount++;
            break;
        }
    }

    return errorcount;
}

Uint32 memaddr32( Uint32 start, Uint32 len )
{
    Uint32 i;
    Uint32 end = start + len;
    Uint32 errorcount = 0;

    /* Write Pattern */
    for ( i = start; i < end; i += 4 )
    {
        *( volatile Uint32* )i = i;
    }

    /* Read Pattern */
    for ( i = start; i < end; i += 4 )
    {
        if ( *( volatile Uint32* )i != i )
        {
            errorcount++;
            break;
        }
    }

    return errorcount;
}

Uint32 meminvaddr32( Uint32 start, Uint32 len )
{
    Uint32 i;
    Uint32 end = start + len;
    Uint32 errorcount = 0;

    /* Write Pattern */
    for ( i = start; i < end; i += 4 )
    {
        *( volatile Uint32* )i = ~i;
    }

    /* Read Pattern */
    for ( i = start; i < end; i += 4 )
    {
        if ( *( volatile Uint32* )i != ~i )
        {
            errorcount++;
            break;
        }
    }

    return errorcount;
}

⌨️ 快捷键说明

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