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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? template.c

?? 此源碼包為intel J3系列NorFlash的驅(qū)動程序,支持8位,16位總線寬度
?? C
?? 第 1 頁 / 共 4 頁
字號:
/*************************************************************************
 *** Intel Confidential                                      
 *** Copyright (C) Intel Corporation 2000                 
 *** All Rights Reserved.                                    
 *** --------------------------------------------------------------------
 ***
 *** Project Name: Flash Templates
 ***
 *** Module Name: Template
 ***
 *** File: Template.C - Common template C source file
 ***
 *** File Revision: $Revision: 9 $, $JustDate:  4/21/00 $, $Author: Tchuynh $
 ***
 *** Purpose:
 ***
 ***    The purpose of this file is to implement the common application 
 ***    programmers interface for flash template software.  This module
 ***    implements all flash template subroutines that do not have
 ***    a device specific implementation in the device.c module for
 ***    the supported device.  Macros are used to determine if
 ***    the template.c common implementation or the device.c specific
 ***    implementation is used by the template for each subroutine.
 ***
 ***    Note that some common template functions implemented in this
 ***    module will return STATUS_UNSUPPORTED since no common
 ***    implementation is possible due to the differences between 
 ***    supported devices for those functions.  The device.c module
 ***    must contain implementations for these particular functions
 ***    when the function is in fact supported for that device.
 ***
 *** $NoKeywords: $
 *************************************************************************/

/* Include Files */
#include "template.h"



#if !DEVICE_CLEAR_STATUS /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_ClearStatus
 *
 * Description:   
 *    This procedure is called to clear the status register on the flash
 *    device.  See the flash device datasheet for specific details on 
 *    this command.
 *
 * Parameters:
 *    NONE
 *
 * Returns:   
 *    NONE
 *
 * Assumptions:
 *    NONE
 *
 ***************************************************************************/
void TMPL_ClearStatus ( void )
{

   TMPL_WriteF( TMPL_BASE_FLASH_ADDRESS,  TMPL_CLEAR_STATUS_REGISTER );

}
#endif /* !DEVICE_CLEAR_STATUS */


#if !DEVICE_ERASE_BLOCK /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_EraseBlock
 *
 * Description:   
 *
 *    This procedure is called to erase a data block on the flash 
 *    device.  See the flash device datasheet for specific details on
 *    this command.
 *
 * Parameters:
 *
 *    IN      blocknum - the block number on the device.
 *
 *    IN      returnSR - flag to indicate whether the device status register
 *                       value should be returned by this function.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat and optionally the flash device
 *                  status register value.  
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_EraseBlock ( UINT16 blocknum,
                              UINT8  returnSR )
{

   TMPL_Status   stat;
   UINT32 blockadd;
  
   stat = TMPL_GetBlockAddress( blocknum, &blockadd );

   if ( stat.Result != StatCompleted )
   {
	  return( stat );
   }

   if ( returnSR )
   {
      TMPL_ClearStatus();
   }

   TMPL_WriteF(blockadd, TMPL_BLOCK_ERASE);

   TMPL_WriteF(blockadd, TMPL_CONFIRM );

   if ( !TMPL_WaitUntilReady( TMPL_ERASE_TIMEOUT ) )
   {
      stat.Result = StatTimeout;
   }
   else
   {
      stat.Result = StatCompleted;
   }

   if ( returnSR )
   {
      stat.SR = TMPL_ReadStatus();
   }

   /* return device to read array mode */
   TMPL_WriteF(TMPL_BASE_FLASH_ADDRESS, TMPL_READ_ARRAY );

   return( stat );

}
#endif /* !DEVICE_ERASE_BLOCK */


#if !DEVICE_ERASE_ALL_BLOCKS /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_EraseAllBlocks
 *
 * Description:   
 *
 *    This procedure is called to erase all data blocks on the flash 
 *    device.  See the flash device datasheet for specific details on
 *    the block erase command.
 *
 * Parameters:
 *
 *    IN      returnSR - flag to indicate whether the device status register
 *                       value should be returned by this function.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat and optionally the flash device
 *                  status register value.
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_EraseAllBlocks ( UINT8 returnSR )
{

   TMPL_Status stat;

   stat.Result = StatUnsupported;

   return( stat );
}
#endif /* !DEVICE_ERASE_ALL_BLOCKS */


#if !DEVICE_ERASE_SUSPEND /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_EraseSuspend
 *
 * Description:   
 *
 *    This procedure is called to issue the erase suspend command to
 *    the flash device.  See the flash device datasheet for specific details 
 *    on this command.
 *
 * Parameters:
 *
 *    IN      blocknum - the block number on the device.
 *
 *    IN      returnSR - flag to indicate whether the device status register
 *                       value should be returned by this function.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat and optionally the flash device
 *                  status register value.
 *
 * Assumptions:
 *
 *    When this function is called the device is currently in the erase 
 *    mode for the block identified.
 *
 ***************************************************************************/
TMPL_Status TMPL_EraseSuspend ( UINT16 blocknum,
                                UINT8  returnSR )
{

   TMPL_Status stat;

   stat.Result = StatUnsupported;

   return( stat );
}
#endif /* !DEVICE_ERASE_SUSPEND */


#if !DEVICE_EXTENDED_QUERY
/****************************************************************************
 *
 * TMPL_ExtendedQuery
 *
 * Description:   
 *
 *    This procedure is called to retrieve the extended query
 *    data from the flash device.  See the flash device datasheet for
 *    specific details on this command.
 *
 * Parameters:
 *
 *    OUT      *extquery - pointer to extended query structure
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat.
 *
 * Assumptions:
 *
 *    NONE
 ***************************************************************************/
TMPL_Status TMPL_ExtendedQuery ( struct TMPL_ExtQueryData *extquery )
{

   TMPL_Status stat;

   stat.Result = StatUnsupported;

   return( stat );

}
#endif /* !DEVICE_EXTENDED_QUERY */


#if !DEVICE_GET_BLOCK_ADDRESS /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_GetBlockAddress
 *
 * Description:   
 *
 *    This procedure is called to get the flash starting address for the
 *    specified block number.
 *
 * Parameters:
 *
 *    IN      blocknum - the block number on the device.
 *
 *    OUT     address  - the starting flash address for the specified
 *                       block.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat.
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_GetBlockAddress ( UINT16     blocknum, 
                                   UINT32_PTR address )
{

   TMPL_Status stat;

   stat.Result = StatUnsupported;

   return( stat );
}
#endif /* !DEVICE_GET_BLOCK_ADDRESS */


#if !CLIENT_GET_FPTR /* if there is no client provided implementation */
/****************************************************************************
 *
 * TMPL_GetFptr
 *
 * Description:   
 *
 *    This procedure is called to return a flash ptr given a 
 *    specified device address.  This routine will likely need to be
 *    provided externally by the template client in order to properly
 *    deal with addressing details that are specific to the HW platform.
 *
 * Parameters:
 *
 *    IN      address  - the flash address 
 *
 * Returns:   
 *
 *    TMPL_FDATA_PTR  - address returned in ptr form
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_FDATA_PTR  TMPL_GetFptr ( UINT32 address )
{
   return( (TMPL_FDATA_PTR)address );
}
#endif /* !CLIENT_GET_FPTR */


#if !DEVICE_GET_QUERY_ADDRESS /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_GetQueryAddress
 *
 * Description:   
 *
 *    This procedure is called to get the flash address for a given
 *    query offset.
 *
 *   Parameters:
 *
 *    IN      offset   - query offset location
 *
 *    OUT     address  - the flash address for the specified query
 *                       offset.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat.
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_GetQueryAddress ( UINT32 offset, 
                                   UINT32_PTR address )
{
   TMPL_Status stat;

#if ( X_8 )
   *address = offset;
#elif ( X_16 )
   *address = offset << 1;
#elif( PX_16 || X_32 )
   *address = offset << 2;
#endif

   *address += TMPL_BASE_FLASH_ADDRESS;

   stat.Result = StatCompleted;

   return( stat );
}
#endif /* !DEVICE_GET_QUERY_ADDRESS */


#if !DEVICE_LOCK_BLOCK /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_LockBlock
 *
 * Description:   
 *
 *    This procedure is called to lock the specified block on the flash
 *    device.  See the flash device datasheet for specific details on this 
 *    command.
 *
 * Parameters:
 *
 *    IN      blocknum - the block number on the device.
 *
 *    IN      returnSR - flag to indicate whether the device status register
 *                       value should be returned by this function.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat and optionally the flash device
 *                  status register value.
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_LockBlock ( UINT16 blocknum,
                             UINT8  returnSR )
{

   TMPL_Status stat;

   stat.Result = StatUnsupported;

   return( stat );
}
#endif /* !DEVICE_LOCK_BLOCK */


#if !DEVICE_LOCK_DOWN_BLOCK /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_LockDownBlock
 *
 * Description:   
 *
 *    This procedure is called to lockdown the specified block on the flash
 *    device.  See the flash device datasheet for specific details on this 
 *    command.
 *
 * Parameters:
 *
 *    IN      blocknum - the block number on the device.
 *
 *    IN      returnSR - flag to indicate whether the device status register
 *                       value should be returned by this function.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat and optionally the flash device
 *                  status register value.
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_LockDownBlock ( UINT16 blocknum,
                                 UINT8  returnSR )
{

   TMPL_Status stat;

   stat.Result = StatUnsupported;

   return( stat );
}
#endif /* !DEVICE_LOCK_DOWN_BLOCK */


#if !DEVICE_LOCK_PROTECTION /* if there is no device.c implementation */
/****************************************************************************
 *
 * TMPL_LockProtection
 *
 * Description:   
 *
 *    This procedure is called to program the protection register user lock
 *    bit on the flash device.  See the flash device datasheet for specific
 *    details on this command.
 *
 * Parameters:
 *
 *    IN      returnSR - flag to indicate whether the device status register
 *                       value should be returned by this function.
 *
 * Returns:   
 *
 *    TMPL_Status - includes function return status defined by enum
 *                  TMPL_CommandStat and optionally the flash device
 *                  status register value.
 *
 * Assumptions:
 *
 *    NONE
 *
 ***************************************************************************/
TMPL_Status TMPL_LockProtection ( UINT8 returnSR )
{
   TMPL_Status stat;

   stat.Result = StatUnsupported;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品99久久久久久宅男| 亚洲精品免费电影| 色偷偷久久人人79超碰人人澡| 午夜电影一区二区三区| 中文字幕二三区不卡| 欧美日韩大陆一区二区| 成人激情动漫在线观看| 日韩高清在线电影| 亚洲欧美一区二区在线观看| 精品久久久久一区| 欧美日韩精品一区二区天天拍小说| 国产不卡一区视频| 日韩电影一区二区三区| 亚洲日本va在线观看| 久久久五月婷婷| 69堂成人精品免费视频| 日本久久一区二区| 风流少妇一区二区| 狠狠色综合播放一区二区| 亚洲国产精品久久久久秋霞影院| 国产精品无码永久免费888| 日韩亚洲欧美成人一区| 欧美日韩一区二区三区视频| 成人avav影音| 国产成人综合网站| 激情综合网av| 美女高潮久久久| 亚洲成av人片一区二区| 亚洲精品成人在线| 亚洲色图制服丝袜| 国产精品水嫩水嫩| 亚洲国产高清aⅴ视频| 久久久久久久久久久久久久久99 | 亚洲男帅同性gay1069| 久久久久久久国产精品影院| 日韩亚洲欧美高清| 日韩一区二区电影| 8v天堂国产在线一区二区| 色就色 综合激情| 91小视频在线免费看| 99热在这里有精品免费| 波多野结衣在线一区| 国产aⅴ精品一区二区三区色成熟| 91久久一区二区| 暴力调教一区二区三区| 不卡的av中国片| 91在线视频免费观看| 93久久精品日日躁夜夜躁欧美| 99久久久久久99| 日本韩国一区二区三区| 日本在线不卡视频一二三区| 亚洲人成网站色在线观看| 久久久综合视频| 欧美乱熟臀69xxxxxx| 99国产精品久| 99精品热视频| 国产在线不卡一卡二卡三卡四卡| 亚洲国产一区视频| 一区在线观看免费| 2019国产精品| 日韩欧美国产精品一区| 欧美日韩国产bt| 91视频com| 99精品国产视频| 不卡电影一区二区三区| 99综合电影在线视频| 福利一区在线观看| 高清不卡在线观看av| 国产综合久久久久影院| 久久精品国产亚洲5555| 韩国精品在线观看| 国产成人在线网站| 久久91精品久久久久久秒播| 成人高清免费观看| 91老司机福利 在线| 欧美大尺度电影在线| 色综合中文字幕国产 | 亚洲精品日日夜夜| 亚洲色大成网站www久久九九| 一区二区免费在线| 奇米影视一区二区三区| 国产精品亚洲人在线观看| 91免费精品国自产拍在线不卡| 欧美丰满少妇xxxxx高潮对白| 精品裸体舞一区二区三区| 国产精品福利影院| 日韩成人精品在线观看| 岛国精品在线播放| 欧美乱妇15p| 国产女主播在线一区二区| 亚洲国产精品人人做人人爽| 久久爱另类一区二区小说| eeuss国产一区二区三区| 4438x成人网最大色成网站| 国产欧美一区二区精品久导航 | gogo大胆日本视频一区| 69av一区二区三区| 中文字幕中文字幕在线一区| 婷婷国产v国产偷v亚洲高清| 成人黄色一级视频| 欧美大片在线观看一区| 亚洲综合av网| 成人性生交大片免费| 91精品国产一区二区人妖| 久久精品999| 欧洲精品视频在线观看| 国产亚洲成aⅴ人片在线观看| 亚洲第一激情av| av不卡在线观看| 精品精品国产高清a毛片牛牛| 亚洲一区免费观看| 成人激情校园春色| 久久夜色精品国产欧美乱极品| 亚洲在线成人精品| 99久久综合狠狠综合久久| 久久久亚洲精品一区二区三区| 午夜私人影院久久久久| 日本韩国欧美国产| 国产精品免费视频一区| 国产美女一区二区三区| 日韩免费观看2025年上映的电影 | 精品视频1区2区| 亚洲欧美乱综合| eeuss鲁片一区二区三区在线看| 26uuuu精品一区二区| 美女视频一区二区三区| 911精品国产一区二区在线| 亚洲午夜精品在线| 欧美性猛交xxxxxxxx| 亚洲欧美aⅴ...| 一本久久a久久免费精品不卡| 国产精品女人毛片| 波多野结衣一区二区三区| 日本一区二区免费在线观看视频| 国产在线播放一区| 亚洲精品在线免费播放| 奇米影视一区二区三区| 欧美一区二区二区| 美女一区二区在线观看| 日韩三级中文字幕| 久久精品国产精品亚洲综合| 日韩欧美国产三级| 激情综合色综合久久综合| 久久五月婷婷丁香社区| 国产精品69毛片高清亚洲| 2024国产精品| 国产成人精品免费视频网站| 中文字幕免费一区| 91香蕉视频黄| 一区二区三区不卡视频在线观看 | 精品国产凹凸成av人导航| 免费看欧美女人艹b| 精品国产一区二区精华| 国产另类ts人妖一区二区| 国产女同互慰高潮91漫画| 99久久久免费精品国产一区二区| 成人欧美一区二区三区视频网页| 色88888久久久久久影院野外| 亚洲精品国久久99热| 欧美三级中文字幕在线观看| 日本色综合中文字幕| 国产午夜精品在线观看| 91猫先生在线| 日韩电影一区二区三区| 天堂一区二区在线| 欧美一区二区日韩| 国产福利91精品一区| 亚洲色图在线看| 777亚洲妇女| 国产激情一区二区三区桃花岛亚洲| 国产精品久久久久久久久久久免费看| 91亚洲资源网| 日韩电影免费在线观看网站| 国产日产欧美一区| 欧美午夜精品一区二区蜜桃| 久久国产尿小便嘘嘘| 亚洲欧美在线aaa| 欧美一区二区视频观看视频 | 欧美视频一二三区| 老司机免费视频一区二区| 欧美激情一区二区三区在线| 91久久精品国产91性色tv| 精品在线一区二区| 亚洲婷婷综合色高清在线| 日韩一区二区中文字幕| 99久久99久久精品国产片果冻 | 久久99国产精品免费| 国产精品久久精品日日| 欧美精品粉嫩高潮一区二区| 国产精品亚洲成人| 午夜不卡av免费| 国产精品视频第一区| 欧美一级搡bbbb搡bbbb| 91日韩精品一区| 久久99精品久久久久久国产越南| 国产精品午夜久久| 日韩欧美国产三级电影视频| 日本伦理一区二区| 成人sese在线| 精东粉嫩av免费一区二区三区|