ext_sramtest.c
来自「NXP LPC系列AMR7的开发程序源码(LCD」· C语言 代码 · 共 102 行
C
102 行
/*****************************************************************************
* ext_sramtest.c: main C entry file for NXP LPC29xx Family Microprocessors
*
* Copyright(C) 2007, NXP Semiconductor
* All rights reserved.
*
* History
* 2007.07.20 ver 1.00 Prelimnary version, first Release
*
******************************************************************************/
#include "LPC29xx.h" /* LPC29xx definitions */
#include "type.h"
#include "irq.h"
#include "ext_sram.h"
/******************************************************************************
** Main Function main()
******************************************************************************/
int main (void)
{
volatile DWORD *wr_ptr;
volatile BYTE *char_wr_ptr;
volatile WORD *short_wr_ptr;
DWORD i;
Smc_Config_t smcConfig;
Smc_Timing_t smcTiming;
SCU_SetPort();
smcConfig.memoryWidth = Smc_8Bit;
smcConfig.burstMode = Smc_NonBurst;
smcConfig.csPolarity = Smc_CSActiveLow;
smcConfig.readByteLane = Smc_BLSasBLS;
smcConfig.writeProtect = Smc_ReadWrite;
Smc_SetConfig(0, &smcConfig);
smcTiming.idleCycles = 1;
smcTiming.waitStatesRead = 1;
smcTiming.waitStatesWrite = 1;
smcTiming.waitStatesOEN = 0;
smcTiming.waitStatesWEN = 1;
Smc_SetTiming(0, &smcTiming);
wr_ptr = (DWORD *)SRAM_BASE_ADDR;
char_wr_ptr = (BYTE *)wr_ptr;
/* Clear content before 8 bit access test */
for ( i= 0; i < SRAM_SIZE/4; i++ )
{
*wr_ptr++ = 0;
}
/* 8 bit write */
for (i=0; i<SRAM_SIZE; i++)
{
*char_wr_ptr++ = 0xAA;
*char_wr_ptr++ = 0x55;
*char_wr_ptr++ = 0x5A;
*char_wr_ptr++ = 0xA5;
}
/* verifying */
wr_ptr = (DWORD *)SRAM_BASE_ADDR;
for ( i= 0; i < SRAM_SIZE/4; i++ )
{
if ( *wr_ptr != 0xA55A55AA ) /* be aware of endianess */
{
while ( 1 ); /* fatal error */
}
wr_ptr++;
}
wr_ptr = (DWORD *)SRAM_BASE_ADDR;
short_wr_ptr = (WORD *)wr_ptr;
/* Clear content before 16 bit access test */
for ( i= 0; i < SRAM_SIZE/4; i++ )
{
*wr_ptr++ = 0;
}
/* 16 bit write */
for (i=0; i<(SRAM_SIZE/2); i++)
{
*short_wr_ptr++ = 0x5AA5;
*short_wr_ptr++ = 0xAA55;
}
/* Verifying */
wr_ptr = (DWORD *)SRAM_BASE_ADDR;
for ( i= 0; i < SRAM_SIZE/4; i++ )
{
if ( *wr_ptr != 0xAA555AA5 ) /* be aware of endianess */
{
while ( 1 ); /* fatal error */
}
wr_ptr++;
}
return 0;
}
/******************************************************************************
** End Of File
******************************************************************************/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?