LPC4357 微雪核心板Keil UV5测试程序

/ 0评 / 0

只是测试程序,编译出来有警告不管,反正只是测试NAND,NOR,RAM对不对,就知道整个核心板对不对了.微雪只能提供不能直接升级到Keil UV5的UV4工程,所以...
LPC4357微雪核心板UV5工程
另外程序中不涉及任何调优!只是为了验证板子好使不好使,所以别问为什么性能不好.放主函数代码看看,完整工程请自己下载.

int32_t main()
{
    uint32_t *ramdata;
    uint32_t i;
    uint32_t FlashID;
    SystemInit();
    SDRAM_Init();
    while(1)
    {
			  /* 测试sdram,任何错误都会死在while(1) */
        ramdata = (uint32_t *)SDRAM_ADDR_BASE;
        for(i = 0; i < SDRAM_SIZE / 2; i++)
        {
            *ramdata = i;
            ramdata++;
        }
        //_DBG("Check RAM...
");
        ramdata = (uint32_t *)SDRAM_ADDR_BASE;
        for(i = 0; i < SDRAM_SIZE / 2; i++)
        {
            if(*ramdata != i)
            {
                while(1);
            }
            ramdata++;
        }
        //_DBG("RAM Check Finish...
");
        //_DBG("Clear RAM content...
");
        ramdata = (uint32_t *)SDRAM_ADDR_BASE;
        for(i = 0; i < SDRAM_SIZE / 2; i++)
        {
            *ramdata = 0;
            ramdata++;
        }
        /*ram test ok*/
					  /* 测试nor,要自己检查 */
        EraseSector(0x1C000000 + 0x20000);
        ProgramPage(0x1C000000 + 0x20000, sizeof(testnor_data) + 1, testnor_data);
        /* (0x1C000000 + 0x20000) 随时随地看这个地方的数值 */
		 /* 试试NAND */
        NandFlash_Reset();
        FlashID = NandFlash_ReadId();
        if ( NandFlash_ValidBlockCheck() == 0 )
        {
            while ( 1 );		// Fatal error
            /*
            			for(i = 0; i < NANDFLASH_NUMOF_BLOCK; i++)
            			{
            				if (InvalidBlockTable[i] == FALSE)
            				{
            				}
            			}
            */
        }
        for ( i = 0; i < NANDFLASH_NUMOF_BLOCK; i++ )
        {
            if ( NandFlash_BlockErase(i) == 0 )
            {
                //			printf("Erase NAND Flash fail at block: 0X%X",i);
                while(1);
            }
        }
        for ( i = 0; i < NANDFLASH_RW_PAGE_SIZE; i++ )
        {
            ReadBuf[i] = 0;
            WriteBuf[i] = i;
        }
        if ( InvalidBlockTable[0] == 0 )
        {
            if ( NandFlash_PageProgram( 0, 0, &WriteBuf[0] ) == 0 )
            {
                //		printf("Writing fail, testing terminated!
");
                while ( 1 );	/* Fatal error */
            }
            if ( NandFlash_PageRead( 0, 0, &ReadBuf[0] ) == 0 )
            {
                while ( 1 );	/* Fatal error */
            }
            for ( i = 0; i < NANDFLASH_RW_PAGE_SIZE; i++ )
            {
                ReadBuf[i] = i;
                //				printf(" 0x%x",i);
            }
            /* Comparison read and write buffer */
            for ( i = 0; i < NANDFLASH_RW_PAGE_SIZE; i++ )
            {
                if ( ReadBuf[i] != WriteBuf[i] )
                {
                    while ( 1 );	/* Fatal error */
                }
            }
        }
/* 反正不成功卡死,直接断点到这里,就知道整个程序好使不好使. */
        while(1);
    }
}

 

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注