#include "pubit.h"
#include "riu_common.h"
#include <stdio.h>

// RAMԼ
static unsigned char RamTest(void)
{
    unsigned short test_buf[24];
    unsigned char i;
    unsigned char result = 0; // 0=ͨ 1=

    // д˳ 1~24
    for(i=0; i<24; i++)
    {
        test_buf[i] = i + 1;
    }

    // ȡȶ
    for(i=0; i<24; i++)
    {
        if(test_buf[i] != i + 1)
        {
            result = 1;
            break;
        }
    }

    if(result == 0)
//        printf("RAMԼ죺ͨ\r\n");
    else
//        printf("RAMԼ죺ʧ\r\n");

    return result;
}

// CPUԼ
static unsigned char CpuTest(void)
{
    unsigned char result = 0;
    // ̶ֵֹ
    unsigned short a1 = 100, b1 = 30;
    unsigned short a2 = 255, b2 = 15;

    // һ
    if( (a1 + b1 != 130) || (a1 - b1 != 70) || (a1 * b1 != 3000) || (a1 / b1 != 3) )
        result = 1;
    if( (a1 & b1 != 28) || (a1 | b1 != 102) || (~a1 != 0xFF9B) )
        result = 1;

    // ڶ
    if( (a2 + b2 != 270) || (a2 - b2 != 240) || (a2 * b2 != 3825) || (a2 / b2 != 17) )
        result = 1;
    if( (a2 & b2 != 15) || (a2 | b2 != 255) || (~a2 != 0xFF00) )
        result = 1;

    if(result == 0)
//        printf("CPUԼ죺ͨ\r\n");
    else
//        printf("CPUԼ죺ʧ\r\n");

    return result;
}

// ִȫϵBIT
void Pubit_RunAll(void)
{
//    printf("ʼϵԼ...\r\n");
    g_ram_bit_result = RamTest();
    g_cpu_bit_result = CpuTest();
//    printf("ϵԼ\r\n");
}
