亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ex_norflash.c

?? LPC23xx_24xx系列ARM的源碼實例
?? C
字號:
/*****************************************************************************
 *   ex_norflash.c:  External FLASH memory module file for NXP LPC23xx/24xx 
 *	 Family Microprocessors
 *
 *   Copyright(C) 2006, NXP Semiconductor
 *   All rights reserved.
 *
 *   History
 *   2007.01.13  ver 1.00    Prelimnary version, first Release
 *
******************************************************************************/
#include "LPC23xx.h"				/* LPC23xx/24xx definitions */
#include "type.h"
#include "irq.h"
#include "target.h"
#include "ex_norflash.h"

/*****************************************************************************
** Function name:		delayMs
**
** Descriptions:		Start the timer delay in milo seconds
**						until elapsed
**
** parameters:			Delay value in milo second			 
** 						
** Returned value:		None
** 
*****************************************************************************/
void delayMs(DWORD delayInMs)
{
  /*
  * setup timer #1 for delay
  */
  T1TCR = 0x02;		/* reset timer */
  T1PR  = 0x00;		/* set prescaler to zero */
  T1MR0 = delayInMs * (Fpclk / 1000);
  T1IR  = 0xff;		/* reset all interrrupts */
  T1MCR = 0x04;		/* stop timer on match */
  T1TCR = 0x01;		/* start timer */
  
  /* wait until delay time has elapsed */
  while (T1TCR & 0x01);
  return;
}

/*****************************************************************************
** Function name:		delay
**
** Descriptions:		for loop delay
**
** parameters:			Delay value in nilo second range			 
** 						
** Returned value:		None
** 
*****************************************************************************/
void delay(DWORD delayCnt)
{
  DWORD i;

  for ( i = 0; i < delayCnt; i++ );
  return;
}

/*****************************************************************************
** Function name:		NORFLASHInit
**
** Descriptions:		initialize external NOR FLASH memory
**
** parameters:			None			 
** 						
** Returned value:		None
** 
*****************************************************************************/
void NORFLASHInit( void )
{
  /**************************************************************************
   * Initialize EMC for NOR FLASH
  **************************************************************************/
  EMC_CTRL = 0x00000001;

  PCONP  |= 0x00000800;		/* Turn On EMC PCLK */
  PINSEL4 = 0x50000000;
  PINSEL5 = 0x05050555;
  PINSEL6 = 0x55555555;
  PINSEL8 = 0x55555555;
  PINSEL9 = 0x50555555;

  delayMs(100);
  EMC_STA_CFG0      = 0x00000081;
  EMC_STA_WAITWEN0  = 0x2;
  EMC_STA_WAITOEN0  = 0x2;
  EMC_STA_WAITRD0   = 0x1f;
  EMC_STA_WAITPAGE0 = 0x1f;
  EMC_STA_WAITWR0   = 0x1f;
  EMC_STA_WAITTURN0 = 0xf;
  delayMs(10);
  return;
}

/*****************************************************************************
** Function name:		ToggleBitCheck
**
** Descriptions:		Toggle Bit check if the data is written or erased
**
** parameters:			Address and Expected data			 
** 						
** Returned value:		done(TRUE) or timeout(FALSE)
** 
*****************************************************************************/
DWORD ToggleBitCheck( DWORD Addr, WORD Data )
{
  volatile WORD *ip;
  WORD temp1, temp2;
  DWORD TimeOut = PROGRAM_TIMEOUT;

  while( TimeOut > 0 )
  {
	ip = GET_ADDR(Addr);
	temp1 = *ip;
	ip = GET_ADDR(Addr);
	temp2 = *ip;
  
	if ( (temp1 == temp2) && (temp1 == Data) )
	{
		return( TRUE );
	}
	TimeOut--;
  }
  return ( FALSE );
}

/*****************************************************************************
** Function name:		NORFLASHCheckID
**
** Descriptions:		Check ID from external NOR FLASH memory
**
** parameters:			None			 
** 						
** Returned value:		Flash ID read is correct or not
** 
*****************************************************************************/
DWORD NORFLASHCheckID( void )
{
  volatile WORD *ip;
  WORD SST_id1, SST_id2;

  /*  Issue the Software Product ID code to 39VF160   */
  ip  = GET_ADDR(0x5555);
  *ip = 0x00AA;
  ip  = GET_ADDR(0x2AAA);
  *ip = 0x0055;
  ip  = GET_ADDR(0x5555);
  *ip = 0x0090;
  delay(10);

  /* Read the product ID from 39VF160 */
  ip  = GET_ADDR(0x0000); 
  SST_id1 = *ip & 0x00FF;
  ip  = GET_ADDR(0x0001);
  SST_id2 = *ip;             

  /* Issue the Soffware Product ID Exit code thus returning the 39VF160 */
  /* to the read operating mode */
  ip  = GET_ADDR(0x5555);
  *ip = 0x00AA;
  ip  = GET_ADDR(0x2AAA);
  *ip = 0x0055;
  ip  = GET_ADDR(0x5555);
  *ip = 0x00F0;    
  delay(10);

  /* Check ID */
  if ((SST_id1 == SST_ID) && (SST_id2 ==SST_39VF160))
	return( TRUE );
  else
	return( FALSE );
}

/*****************************************************************************
** Function name:		NORFLASHErase
**
** Descriptions:		Erase external NOR FLASH memory
**
** parameters:			None			 
** 						
** Returned value:		None
** 
*****************************************************************************/
void NORFLASHErase( void ) 
{
  volatile WORD *ip;

  ip  = GET_ADDR(0x5555);
  *ip = 0x00AA;
  ip  = GET_ADDR(0x2AAA);
  *ip = 0x0055;
  ip  = GET_ADDR(0x5555);
  *ip = 0x0080;
  ip  = GET_ADDR(0x5555);
  *ip = 0x00AA;
  ip  = GET_ADDR(0x2AAA);
  *ip = 0x0055;
  ip  = GET_ADDR(0x5555);
  *ip = 0x0010;
  delayMs(100);
  return;

}

/*****************************************************************************
** Function name:		NORFLASHWriteWord
**
** Descriptions:		Program one 16-bit data into external NOR FLASH memory
**						This "WORD" for the external flash is 16 bits!!!
**
** parameters:			DWORD address and WORD data			 
** 						
** Returned value:		Written successful or not
** 
*****************************************************************************/
DWORD NORFLASHWriteWord( DWORD Addr, WORD Data ) 
{
  volatile WORD *ip;

  ip  = GET_ADDR(0x5555);
  *ip = 0x00AA;
  ip  = GET_ADDR(0x2aaa);
  *ip = 0x0055;
  ip  = GET_ADDR(0x5555);
  *ip = 0x00A0;
    
  ip = GET_ADDR(Addr);		/* Program 16-bit word */
  *ip = Data;
  return ( ToggleBitCheck( Addr, Data ) );

}

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

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲视频综合在线| 国产宾馆实践打屁股91| 欧美日韩一区三区| 亚洲一区二区在线播放相泽| 99久久国产综合精品女不卡| 国产精品久久久久一区二区三区| 成人少妇影院yyyy| 亚洲三级小视频| 欧美午夜精品一区二区蜜桃| 午夜欧美电影在线观看| 7777精品伊人久久久大香线蕉经典版下载| 婷婷久久综合九色国产成人| 日韩免费观看高清完整版在线观看 | 日韩极品在线观看| 欧美不卡视频一区| 成人免费视频一区二区| 尤物在线观看一区| 日韩美女一区二区三区| 丁香桃色午夜亚洲一区二区三区| 亚洲人成人一区二区在线观看 | 欧美亚洲自拍偷拍| 另类中文字幕网| 国产精品乱码妇女bbbb| 欧美少妇bbb| 成人福利视频在线| 亚洲国产日韩a在线播放性色| 日韩精品一区二区三区swag | 欧美一级xxx| av电影天堂一区二区在线观看| 亚洲一区二区综合| 久久久久久麻豆| 欧美日韩中文一区| 国产精品亚洲一区二区三区妖精| 一区二区三区日韩精品| 精品国产在天天线2019| 色天天综合色天天久久| 精品一区二区三区的国产在线播放 | 国产精品99久久久久久久vr| 亚洲一区二区在线免费观看视频| 精品国产免费久久| 欧美性videosxxxxx| 国产麻豆精品视频| 天堂久久久久va久久久久| 欧美va在线播放| 偷拍自拍另类欧美| 亚洲视频一区二区在线观看| 精品久久国产字幕高潮| 色屁屁一区二区| 国产自产v一区二区三区c| 亚洲一区二区中文在线| 国产精品天美传媒| 26uuu另类欧美| 欧美精品v国产精品v日韩精品| 成人app网站| 国产一区二区日韩精品| 免播放器亚洲一区| 婷婷久久综合九色综合绿巨人 | www.久久精品| 国产剧情一区二区三区| 日韩电影一二三区| 亚洲国产一区二区视频| 亚洲女人的天堂| 中文字幕不卡在线| 国产午夜精品福利| 精品免费国产二区三区| 欧美一区二区播放| 欧美一区二区私人影院日本| 欧美性感一区二区三区| 日本道在线观看一区二区| 成年人网站91| av午夜一区麻豆| 成人激情电影免费在线观看| 国产精品99久久久久久久vr| 国产精品自产自拍| 国产一区二区在线影院| 韩国精品一区二区| 国产主播一区二区| 国产美女在线观看一区| 国产一区二区三区四区五区美女 | 亚洲美女电影在线| 亚洲人成网站色在线观看| 亚洲天堂网中文字| 亚洲精品乱码久久久久久| 国产精品传媒入口麻豆| 国产精品色呦呦| 亚洲天堂久久久久久久| 亚洲激情成人在线| 亚洲成人av一区二区三区| 午夜精品久久久久久久久久久| 亚洲高清久久久| 美女脱光内衣内裤视频久久影院| 免费成人在线播放| 韩国视频一区二区| 岛国一区二区在线观看| 99麻豆久久久国产精品免费| 91丨九色丨国产丨porny| 在线视频你懂得一区二区三区| 欧美性猛交xxxx乱大交退制版| 欧美日韩aaaaa| 欧美大片国产精品| 亚洲国产精品精华液ab| 亚洲青青青在线视频| 亚洲国产美国国产综合一区二区| 婷婷久久综合九色综合绿巨人| 久久99国产精品久久| 成人精品高清在线| 欧美午夜不卡视频| 日韩欧美黄色影院| 欧美国产激情一区二区三区蜜月| 亚洲日本护士毛茸茸| 亚洲.国产.中文慕字在线| 奇米精品一区二区三区在线观看一| 青青草国产成人av片免费| 蜜臀av国产精品久久久久| 亚洲国产欧美在线| 久久aⅴ国产欧美74aaa| av日韩在线网站| 欧美日韩精品一区二区在线播放| 久久综合色播五月| 亚洲欧洲日韩综合一区二区| 视频一区国产视频| 国产毛片一区二区| 欧美日韩视频专区在线播放| 色偷偷成人一区二区三区91| 日韩视频国产视频| 久久色在线观看| 一区二区三区国产精品| 国产美女在线观看一区| 色狠狠av一区二区三区| 久久免费午夜影院| 一区二区三区成人| 丁香一区二区三区| 在线播放一区二区三区| 亚洲欧美另类小说| 国产精品系列在线播放| 欧美日韩精品系列| 国产日韩欧美高清| 日本视频免费一区| 91啪亚洲精品| 日韩精品中文字幕在线不卡尤物 | eeuss鲁一区二区三区| 日韩欧美一区二区视频| 中文字幕一区不卡| 国产精品影视在线| 9色porny自拍视频一区二区| 精品久久久久久久久久久久包黑料 | 欧美一区二区观看视频| 亚洲国产精品一区二区久久| 成人在线视频一区| 精品第一国产综合精品aⅴ| 一区二区三区欧美日韩| 成人小视频在线观看| 精品国产人成亚洲区| 午夜精品福利久久久| 色乱码一区二区三区88| 久久久精品tv| 国产一区二区美女| 日韩一区二区在线免费观看| 午夜av区久久| 成人小视频在线观看| 国产欧美精品国产国产专区| 国产在线精品不卡| 日韩欧美卡一卡二| 美女久久久精品| 69成人精品免费视频| 午夜精品久久久久久久久| 色诱视频网站一区| 成人欧美一区二区三区视频网页| 麻豆精品一区二区| 日韩欧美国产三级| 国产在线日韩欧美| 欧美va天堂va视频va在线| 国精产品一区一区三区mba视频| 在线观看一区不卡| 午夜精品久久久久久久99樱桃| 在线视频一区二区三区| 亚洲h精品动漫在线观看| 成人精品国产福利| 国产精品麻豆视频| 色哟哟在线观看一区二区三区| 日本一区二区三区免费乱视频 | 国产精品久久久久一区二区三区共| 精品一区二区三区久久久| 日韩三级高清在线| 美女网站视频久久| 欧美精品一区二区精品网| 麻豆精品新av中文字幕| 欧美成人精品二区三区99精品| 免费人成精品欧美精品 | 久久亚洲春色中文字幕久久久| 国产毛片精品视频| 日韩亚洲欧美在线观看| 精品伊人久久久久7777人| 国产三级久久久| 99精品热视频| 日本sm残虐另类| 精品国产髙清在线看国产毛片| 国产91精品精华液一区二区三区 | 一区二区中文字幕在线| 欧美日韩国产小视频|