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

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

?? strata.h

?? EP9315的wince下載程序。download.exe
?? H
字號:
//**********************************************************************
//                                                                      
// Filename: strata.h
//                                                                      
// Description: Flash media driver (FMD) interface for Intel StrataFlash 
//              memory chips.
//
// Notes: As noted, this media driver works on behalf of the FAL to directly
//        access the underlying FLASH hardware.  Consquently, this module 
//        needs to be linked with FAL.LIB to produce the device driver 
//        named FLASHDRV.DLL.  It may also be used directly in a boot loader
//        image.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
//
// Use of this source code is subject to the terms of the Cirrus end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to 
// use this source code. For a copy of the EULA, please see the 
// EULA.RTF on your install media.
//
// Copyright(c) Cirrus Logic Corporation 2005, All Rights Reserved                       
//                                                                      
//**********************************************************************

#ifndef _STRATA_H_
#define _STRATA_H_

// Basic read/write macros.
#define WRITE_ULONG(ptr,ul)  *((volatile ULONG  *)(ptr))  = ul
#define READ_ULONG(ptr)      *((volatile ULONG  *)(ptr))
#define WRITE_USHORT(ptr,us) *((volatile USHORT *)(ptr)) = us
#define READ_USHORT(ptr)     *((volatile USHORT *)(ptr))

// Flash read/write macros.
// We assume the StrataFlash part is in 16-bit mode (as opposed to 8-bit mode).
#define WRITE_FLASH(ptr, val) (g_bPairedFlash ? WRITE_ULONG(ptr, (ULONG)val) : WRITE_USHORT(ptr, (USHORT)val))
#define READ_FLASH(ptr)       (g_bPairedFlash ? READ_ULONG(ptr) : READ_USHORT(ptr))
#define READ_FLASH_INDEXED(ptr, offset)       (g_bPairedFlash ? READ_ULONG((volatile ULONG *)ptr + offset) : READ_USHORT((volatile USHORT *)ptr + offset))
// Write a command to the flash part.
#define WRITE_COMMAND(ptr, cmd) (g_bPairedFlash ? WRITE_ULONG(ptr, (ULONG)((cmd << 16) | cmd)) : WRITE_USHORT(ptr, (USHORT)cmd))
// Check for expected status.
#define CHECK_STATUS(ptr, stat) (g_bPairedFlash ? ((READ_ULONG(ptr) & ((stat << 16) | stat)) == ((stat << 16) | stat)) : ((READ_USHORT(ptr) & stat) == stat))
#define CHECK_STATUS_INDEXED(ptr, offset, stat) (g_bPairedFlash ? ((READ_ULONG((volatile ULONG *)ptr + offset) & ((stat << 16) | stat)) == ((stat << 16) | stat)) : ((READ_USHORT((volatile USHORT *)ptr + offset) & stat) == stat))
// Is specified address block-aligned?
#define IS_BLOCK_ALIGNED(ptr)   (((ULONG)ptr % g_FMDInfo.BlockSize) ? FALSE : TRUE)



//
// AMD  flash commands and status definitions.
//
// Commands.
#define AMD_SETUP_ADDR1                         0x555
#define AMD_SETUP_ADDR2                         0x2AA
#define AMD_VENDORID_ADDR                       0
#define AMD_DEVICEID_ADDR1                      1
#define AMD_DEVICEID_ADDR2                      0x0e
#define AMD_DEVICEID_ADDR3                      0x0f
#define AMD_QUERY_ADDR                          0x55

#define AMD_SETUP_CODE1                         0xAA
#define AMD_SETUP_CODE2                         0x55
#define AMD_SETUP_ERASE                         0x80

#define AMD_READ_ID                             0x90
#define AMD_READ_QUERY                      0x98
#define AMD_WP_STATE                          0x90
#define AMD_RESET                                 0xF0
#define AMD_PROGRAM                            0xA0
#define AMD_BLOCK_ERASE                     0x30

#define AMD_SECTOR_ERASE_TIMER                  0x08

#define FLASH_ERR_OK              0x00  // No error - operation complete
#define FLASH_ERR_INVALID         0x01  // Invalid FLASH address
#define FLASH_ERR_ERASE           0x02  // Error trying to erase
#define FLASH_ERR_LOCK            0x03  // Error trying to lock/unlock
#define FLASH_ERR_PROGRAM         0x04  // Error trying to program
#define FLASH_ERR_PROTOCOL        0x05  // Generic error
#define FLASH_ERR_PROTECT         0x06  // Device/region is write-protected
#define FLASH_ERR_NOT_INIT        0x07  // FLASH info not yet initialized
#define FLASH_ERR_HWR             0x08  // Hardware (configuration?) problem
#define FLASH_ERR_ERASE_SUSPEND   0x09  // Device is in erase suspend mode
#define FLASH_ERR_PROGRAM_SUSPEND 0x0a  // Device is in in program suspend mode
#define FLASH_ERR_DRV_VERIFY      0x0b  // Driver failed to verify data
#define FLASH_ERR_DRV_TIMEOUT     0x0c  // Driver timed out waiting for device
#define FLASH_ERR_DRV_WRONG_PART  0x0d  // Driver does not support device
#define FLASH_ERR_LOW_VOLTAGE     0x0e  // Not enough juice to complete job



//
// Intel 28F320 flash commands and status definitions.
//
// Commands.
#define READ_QUERY_CMD			0x0098
#define READ_IDENT_CMD			0x0090
#define READ_ARRAY_CMD			0x00FF
#define BYTEWORD_PROGRAM_CMD    0x0040
#define CLEAR_STATUS_CMD        0x0050
#define READ_STATUS_CMD			0x0070
#define BLOCK_LOCK_CMD          0x0060
#define BLOCK_PROCEED_CMD		0x00D0
#define BLOCK_SETLOCK_CMD		0x0001
#define BLOCK_ERASE_CMD			0x0020
#define BUFFER_WRITE_CMD		0x00E8


#define COMMAND_RETRY_MAX       20																																									 
// Status.
#define STATUS_READY_MASK		0x0080
#define STATUS_ERROR			0x0010

// Flash CFI query structure offsets.
#define QS_MFGCODE_OFFSET		0x0
#define QS_DEVCODE_OFFSET		0x1
#define QS_IDSTRING_OFFSET		0x10
#define QS_SYSINTF_OFFSET		0x1B
#define QS_DEVGEOM_OFFSET		0x27

#define REGION_SIZE_MULT		256
#define SECTOR_SIZE             512     // Number of data bytes in a sector

#define MFGCODE_INTEL             0x0089	// Intel's flash manufacturing code.
#define MFGCODE_MICRON          0x002c // Micron's flash manufacturing code.
#define MFGCODE_AMD                0x0001	// AMD's flash manufacturing code.


#define IDSTRING_Q				0x0051	// ASCII 'Q'.
#define IDSTRING_R				0x0052  // ASCII 'R'.
#define IDSTRING_Y				0x0059	// ASCII 'Y'.

#pragma pack(1)
// Flash-system interface characteristics.
typedef struct _FLASH_SYSINTERFACE_INFO
{
	UCHAR VccMinProgV;				// Vcc logic supply minimum program/erase voltage.
	UCHAR VccMaxProgV;				// Vcc logic supply maximum program/erase voltage.
	UCHAR VppMinProgV;				// Vpp logic supply minimum program/erase voltage.
	UCHAR VppMaxProgV;				// Vpp logic supply maximum program/erase voltage.
	struct
	{
	    UCHAR SnglWordProgTO_us;	// Typical single word program time-out (in us).
	    UCHAR WriteBuffTO_us;		// Typical buffer write time-out (in us).
	    UCHAR BlockEraseTO_ms;		// Typical block erase time-out (in ms).
	    UCHAR ChipEraseTO_ms;		// Typical full-chip erase time-out (in ms).
	} Typical;
	struct
	{
	    UCHAR SnglWordProgTO_us;	// Max single word program time-out (in us).
	    UCHAR WriteBuffTO_us;		// Max buffer write time-out (in us).
	    UCHAR BlockEraseTO_ms;		// Max block erase time-out (in ms).
	    UCHAR ChipEraseTO_ms;		// Max full-chip erase time-out (in ms).
	} Max;
} FLASH_SYSINTERFACE_INFO, *PFLASH_INTERFACE_INFO;

//
#define IntelRegionNUM    4
typedef struct RegionInfo {
   	USHORT              blocks;
	USHORT               block_size;
} RegionInfo_t;

typedef struct SysRegionInfo {
   	DWORD              blocks;
	DWORD               block_size;
} SysRegionInfo_t;
// Flash geometry characteristics.
typedef struct _FLASH_GEOMETRY_INFO
{
	UCHAR DevSize;					// Flash size (n = 2^n bytes).
	USHORT DevInterface;			// Interface type (8/16).
	USHORT WriteBuffSize;			// Write buffer size (n = 2^n bytes).
    	UCHAR NumEraseBlocks;			// Number of flash blocks in an erase region.

	//USHORT NumIdentEraseBlocks;		// Number of identical-sized erase blocks (number of blocks).
	//USHORT EraseRegionSize;         // Size of an erase region.
	RegionInfo_t FlashRegionInfo[IntelRegionNUM];
} FLASH_GEOMETRY_INFO, *PFLASH_GEOMETRY_INFO;

// All flash information.
typedef struct _FMD_FLASH_INFO
{
	ULONG BaseAddress;				// Flash base address.(file system use)
	ULONG FlashLength;				// Length of flash to be managed.(file system use)

	ULONG ChipBaseAddress;				// Flash base address.
	ULONG ChipFlashLength;				// Length of flash to be managed.

	BOOL  bIsTop;
	DWORD				gdwCurEraseRegion;
	DWORD				gdwCurEraseBlock;

	ULONG BlockSize;				// Block size (computed from CFI data).
	ULONG TotalFlashBlocks;			// Number of flash blocks.
	USHORT UnusedBytesPerBlock;		// Remaining bytes in each block.
	USHORT SectorsPerBlock;			// Number of sectors per block.
    FLASH_SYSINTERFACE_INFO SysInt;	// Flash-system interface information.
    FLASH_GEOMETRY_INFO Geometry;	// Flash geometry information.
} FMD_FLASH_INFO, *PFMD_FLASH_INFO;
#pragma pack()

#endif	//_STRATA_H_.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩av亚洲一区二区图片| 国产精品午夜春色av| 亚洲精品久久久久久国产精华液 | 欧美麻豆精品久久久久久| 国产精品国产三级国产有无不卡| 日韩有码一区二区三区| 日本韩国欧美一区二区三区| 欧美国产日韩在线观看| 蜜臀av在线播放一区二区三区| 欧美日韩情趣电影| 日本欧美一区二区在线观看| 91精品国产aⅴ一区二区| 日韩综合小视频| 欧美videos大乳护士334| 激情五月激情综合网| 久久久一区二区三区捆绑**| 国产精品88av| 中文字幕在线观看一区| 色哦色哦哦色天天综合| 自拍偷拍亚洲综合| 色激情天天射综合网| 精品中文字幕一区二区小辣椒| 欧美一激情一区二区三区| 精品一区二区在线视频| 91黄色免费看| 亚洲图片欧美一区| 日韩女优毛片在线| 粉嫩av一区二区三区| 尤物av一区二区| 欧美一级二级三级蜜桃| 国产成人精品一区二区三区四区| 国产精品成人免费在线| 成人美女视频在线观看| 亚洲色大成网站www久久九九| 国产美女在线观看一区| 中文字幕不卡在线播放| 欧美性生交片4| 91精品福利视频| 国产激情一区二区三区桃花岛亚洲| 国产日韩一级二级三级| 色美美综合视频| 精品一区二区综合| 一区二区三区鲁丝不卡| 欧美成人a视频| 91高清视频在线| 国产999精品久久| 秋霞电影网一区二区| 亚洲视频图片小说| 337p粉嫩大胆噜噜噜噜噜91av| 91久久精品网| 国产91丝袜在线播放九色| 午夜欧美2019年伦理| 中文字幕中文字幕一区二区| 日韩午夜激情av| 欧洲精品一区二区| 99久久精品国产导航| 极品少妇xxxx偷拍精品少妇| 亚洲一区二区三区四区在线| 中文字幕欧美激情一区| 精品国产网站在线观看| 欧美精品一二三区| 91久久精品日日躁夜夜躁欧美| 国产成人av一区二区三区在线| 日本在线观看不卡视频| 亚洲国产另类精品专区| 亚洲欧洲中文日韩久久av乱码| 国产日产欧美精品一区二区三区| 日韩美一区二区三区| 欧美日韩久久久久久| 91国产丝袜在线播放| 色噜噜狠狠色综合欧洲selulu| 国产精品亚洲专一区二区三区| 久久精品国产久精国产| 美腿丝袜一区二区三区| 日韩av高清在线观看| 视频一区二区中文字幕| 亚洲国产精品久久久久婷婷884| 一区二区中文视频| 亚洲欧美一区二区在线观看| 久久精品欧美日韩| 国产亚洲1区2区3区| 久久久精品免费网站| 久久亚洲捆绑美女| 国产亚洲精品精华液| 中文字幕乱码久久午夜不卡 | 亚洲成人av资源| 一区二区在线免费| 亚洲一区二区精品视频| 亚洲v中文字幕| 奇米影视一区二区三区| 久久精品国产亚洲高清剧情介绍| 久久 天天综合| 国产福利一区二区| 成人精品小蝌蚪| 99久久精品久久久久久清纯| 色哟哟亚洲精品| 欧美久久久影院| 日韩一区二区在线观看视频| 亚洲精品一区二区三区四区高清| 欧美精品一区二区在线播放| 久久夜色精品一区| 中文字幕在线观看不卡视频| 一卡二卡欧美日韩| 蜜芽一区二区三区| 国产大陆a不卡| 97se亚洲国产综合在线| 欧美日韩中字一区| 欧美成人一区二区| 国产精品美女久久久久aⅴ| 亚洲美女免费在线| 丝袜脚交一区二区| 国产一区二区看久久| 97精品久久久午夜一区二区三区 | 欧美日韩国产综合一区二区三区| 欧美女孩性生活视频| 26uuu色噜噜精品一区| 亚洲欧美中日韩| 日韩av在线发布| 成人av电影免费观看| 欧美日韩高清在线播放| 国产日韩欧美不卡在线| 亚洲综合精品自拍| 国产美女av一区二区三区| 91免费在线视频观看| 日韩一区二区电影| 成人欧美一区二区三区视频网页| 日日骚欧美日韩| www.亚洲人| 精品对白一区国产伦| 亚洲一区二区在线免费观看视频 | 粉嫩久久99精品久久久久久夜| 欧美性大战久久| 国产精品每日更新在线播放网址 | 久久99国内精品| 91在线观看免费视频| 久久综合99re88久久爱| 五月婷婷综合激情| 色综合网色综合| 国产视频一区在线观看| 青青草原综合久久大伊人精品 | 成人性色生活片| 日韩亚洲欧美中文三级| 一区二区三区在线视频免费| 国产精品18久久久久久久网站| 制服丝袜亚洲色图| 一区二区在线观看视频在线观看| 国产成a人无v码亚洲福利| 欧美一区二区免费视频| 亚洲一区二区三区小说| 91日韩在线专区| 中文字幕一区二区三区视频| 国产制服丝袜一区| ...中文天堂在线一区| 久久久久国产成人精品亚洲午夜| 亚洲在线视频网站| 成人av中文字幕| 国产精品你懂的在线欣赏| 麻豆91免费观看| 欧美亚洲精品一区| 国产精品久久网站| 成人h动漫精品| 久久久影院官网| 蜜臀av性久久久久蜜臀aⅴ流畅| 91免费国产在线| 国产网站一区二区三区| 九色综合狠狠综合久久| 欧美一区二区三区婷婷月色| 亚洲www啪成人一区二区麻豆| fc2成人免费人成在线观看播放| 精品sm捆绑视频| 日本亚洲最大的色成网站www| 91成人在线免费观看| 精品久久人人做人人爽| 国产一区二区调教| 精品国产凹凸成av人导航| 乱一区二区av| 久久精品视频一区| 精品一区二区在线播放| 日韩精品专区在线影院重磅| 日韩国产欧美三级| 精品国产第一区二区三区观看体验| 免费一区二区视频| 日韩欧美一区二区在线视频| 中文字幕在线一区| 色中色一区二区| 亚洲午夜激情网站| 欧美片网站yy| 国产一区二区美女| 欧美精品一区二区三区蜜桃| 九色|91porny| 国产日韩欧美精品一区| 97久久精品人人做人人爽50路| 国产精品久久福利| 91小视频免费观看| 国产午夜精品一区二区三区视频| 成人h精品动漫一区二区三区| 亚洲欧美日韩国产手机在线| 91福利视频久久久久| 婷婷亚洲久悠悠色悠在线播放| 9191久久久久久久久久久|