⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdram_test.c

📁 nxp的LPC2888处理器的示例代码.
💻 C
字号:
/*****************************************************************************
 *   sdram_test.c:  External SDRAM test main C entry file for NXP 
 *   LPC2xxx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.07.14  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC288x.h"                        /* LPC2xxx definitions */
#include "type.h"
#include "irq.h"
#include "target.h"
#include "ex_sdram.h"
#include "timer.h"

extern DWORD timer_counter;

/*****************************************************************************
**   Main Function  main()
******************************************************************************/
int main (void)
{
  volatile DWORD *wr_ptr; 
  volatile BYTE *char_wr_ptr;
  volatile WORD *short_wr_ptr;
  DWORD  i;

  TargetResetInit();

  /* initialize memory */
  SDRAMInit();

  wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
  char_wr_ptr = (BYTE *)wr_ptr;
  /* Clear content before 8 bit access test */
  for ( i= 0; i < SDRAM_SIZE/4; i++ )
  {
	*wr_ptr++ = 0;
  }

  /* 8 bit write */
  for (i=0; i<SDRAM_SIZE; i++)
  {
	*char_wr_ptr++ = 0xAA;
	*char_wr_ptr++ = 0x55;
	*char_wr_ptr++ = 0x5A;
	*char_wr_ptr++ = 0xA5;
  }

  /* verifying */
  wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
  for ( i= 0; i < SDRAM_SIZE/4; i++ )
  {
  	if ( *wr_ptr != 0xA55A55AA )	/* be aware of endianess */
	{
		while ( 1 );	/* fatal error */
	}
	wr_ptr++;
  }

  wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
  short_wr_ptr = (WORD *)wr_ptr;
  /* Clear content before 16 bit access test */
  for ( i= 0; i < SDRAM_SIZE/4; i++ )
  {
	*wr_ptr++ = 0;
  }

  /* 16 bit write */
  for (i=0; i<(SDRAM_SIZE/2); i++)
  {
    *short_wr_ptr++ = 0x5AA5;
    *short_wr_ptr++ = 0xAA55;
  }

  /* Verifying */
  wr_ptr = (DWORD *)SDRAM_BASE_ADDR;
  for ( i= 0; i < SDRAM_SIZE/4; i++ )
  {
  	if ( *wr_ptr != 0xAA555AA5 )	/* be aware of endianess */
	{
		while ( 1 );	/* fatal error */
	}
	wr_ptr++;
  }

  init_timer( TIMER_1SECS );

  MODE1S_2=0xF;
  while(1)			/* Loop forever */ 
  {				
	if ( timer_counter & 0x01 ) {
	  MODE0S_2 = 0x1<<1;
	}
	else {
	  MODE0C_2 = 0x1<<1;
	}
  }

  return 0;

}

/*****************************************************************************
**                            End Of File
*****************************************************************************/

⌨️ 快捷键说明

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