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

📄 norflash_test.c

📁 IARSOURCECODE是基于LPC2478嵌入式软件IAR EWARM V4.42的应用实例代码
💻 C
字号:
/*****************************************************************************
 *   norflash_test.c:  External NOR FLASH test main C entry file for NXP
 *   LPC23xx/24xx Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2006.07.14  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC2468.h"					/* LPC23xx/24xx definitions */
#include "type.h"
#include "irq.h"
#include "target.h"
#include "timer.h"
#include "uart0.h"

#include "ex_norflash.h"

/*****************************************************************************
**   Main Function  main()
******************************************************************************/
int main (void)
{
  DWORD i,j;
  volatile WORD *ip;
  DWORD NorFlashAdr;
  WORD temp;
  
  
  TargetResetInit();
  UART0Init(9600);

  NORFLASHInit();
  UART0_puts("NOR Flash test start!\r\n");

  if ( NORFLASHCheckID() == FALSE )
  {
    UART0_puts("NOR Flash ID error!\r\n");
    while ( 1 );		
  }

  NORFLASHErase();		

  /* 写校验值 */
  NorFlashAdr = 0;
  for(j=0;j<=31;j++)            // 4号扇区到34号扇区
  {
    UART0_puts("#");    //  显示进度

//    NORFLASHSectorErase(j);	//erase sector;

    /* Write to flash with pattern 0xAA55 and 0xA55A */
    for ( i = 0; i < SECTOR_SIZE/4; i++ )             // SECTOR_SIZE为字节值,但每个循环要写两个字即4个字节
    {
	NORFLASHWriteWord( NorFlashAdr, 0xAA55 );     // 该函数地址参数是NOR Flash片内字地址,不是绝对地址
	NorFlashAdr++;
	NORFLASHWriteWord( NorFlashAdr, 0xA55A );
	NorFlashAdr++;
    }
  }

  UART0_puts("\r\n");
  
    /* Verify */
  NorFlashAdr = 0;
  for(j=0;j<=31;j++)            // 4号扇区到34号扇区
  {
    UART0_puts("*");    //  显示进度
    for ( i = 0; i < SECTOR_SIZE/2; i+=2 )
    {
	ip  = GET_ADDR(i);
        temp = *ip;
	if ( (temp & 0xFFFF) != 0xAA55 )
	{
          UART0_puts("NOR Flash Verify error!\r\n");
	  while ( 1 );	
	}
	ip  = GET_ADDR(i+1);
	if ( (*ip & 0xFFFF) != 0xA55A )
	{
          UART0_puts("NOR Flash verify error!\r\n");
	  while ( 1 );	
	}
    }
  
  }

  UART0_puts("\r\nNOR Flash test successed!\r\n");

  while(1);
}

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

⌨️ 快捷键说明

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