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

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

?? sdmmc.h

?? WINDOWSCE4.2 ARM PXA255 SDMMC驅動程序源代碼
?? H
?? 第 1 頁 / 共 3 頁
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft 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 LICENSE.RTF on your
// install media.
//
/********************************************************************************
* Filename: sdmmc.h
*
* SanDisk Host Developer's Toolkit
*
* Copyright (c) 1997 - 2000 SanDisk Corporation
* All rights reserved.
* This code may not be redistributed in source or linkable object form
* without the consent of its author.
*
* Description:
*       Interface definition for an application driver to the SanDisk
*       MMC card using SPI interface.
*
*       This driver provides a basic, sector based, read write commands.
*       Addressing is LBA mode only (Head, cylinder, sector format is 
*       not supported).  This module is platform independent.
*
********************************************************************************/

#ifndef _SDMMC_H_

#ifdef __cplusplus
extern "C" {
#endif

#include "sdconfig.h"

#if (USE_SD || USE_SPI || USE_SPI_EMULATION || USE_MMC || USE_MMC_EMULATION)

#include "sdapi.h"
#include "drive.h"


#define SPI_TYPE                0x80000000
#define MMC_TYPE                0x40000000
#define SD_TYPE                 0x00000000

#define SINGLE_MODE             1       /* Single block */
#define MULTIPLE_MODE           2       /* Multiple blocks */
#define READ_MODE               0x0080
#define WRITE_MODE              0x0100


/* Data block length */
#define DEFAULT_BLK_LEN         512     /* Default block length */

#define DEFAULT_ERASE_GROUP     16
#define BYTE_LENGTH             6       /* Length in bytes of MMC responses */
#define CID_BYTE_LENGTH         17      /* Length in bytes of MMC card id. CID */
#define CMD_BYTE_LENGTH         6       /* Length in bytes of MMC commands  */
#define RESPONSE_BIT_LENGTH     48      /* Length in bits of MMC responses */
#define CID_BIT_LENGTH          136     /* Length in bit of MMC card id. CID */

#define SD_SCR_LENGTH           8       /* Length in bytes of SD_SEND_SCR */
#define SD_STATUS_LENGTH        64      /* Length in bytes of SD_STATUS */


/* CLOCK */
#define MMC_Ncr_MAX             64      /* Maximum number of clock cycles to wait for card response */
#define MMC_Ncc_MIN             8       /* Minimum number of clock cycles between commands */
#define MMC_Nwr_MIN             2

#define RESET_DELAY             30      /* Delay for reset */
#define READ_ACCESS_DELAY       550


#define TMPWPBIT_ON             0x10    /* Write protected */
#define TMPWPBIT_OFF            0xEF


/* Card ready flag (CMD1, ACMD41) */
/* #define CARD_READY_FLAG 0x8000    */      /* Ready flag for OCR */
#define CARD_READY_FLAG    0x8000

/* -------------------- TRANSFER OR STAND BY STATE ---------------------------- */
#define STANDBY_STATE           0       /* cmd9, cmd10, cmd14 */
                    /* NO check response byte 1 and byte 2(bits 31 - 16) */
#define TRANSFER_STATE          1       /* read/write command */
/* ---------------------------------------------------------------------------- */

/* MultiMedia Card command definitions */
#define CMD_START_BIT           0x40
#define APPL_CMD_BIT            0x100    /* Apply to SD ACMD ONLY */
#define SECURITY_CMD_BIT        0x8000    /* Apply to SD security ONLY */

/* ------------------------- CMD's names: ---------------------------- */
#define GO_IDLE_STATE            0x0 
#define SEND_OP_COND             0x1
#define ALL_SEND_CID             0x2
#define SET_RELATIVE_ADDR        0x3
#define SET_DSR                  0x4
#define SELECT_DESELECT_CARD     0x7
#define SEND_CSD                 0x9
#define SEND_CID                 0xa
#define READ_DAT_UNTIL_STOP      0xb
#define STOP_TRANSMISSION        0xc
#define SEND_STATUS              0xd
#define SET_BUS_WIDTH_REGISTER   0xe
#define GO_INACTIVE_STATE        0xf
#define SET_BLOCKLEN             0x10
#define READ_BLOCK               0x11
#define READ_MULTIPLE_BLOCK      0x12
#define WRITE_DAT_UNTIL_STOP     0x14
#define WRITE_BLOCK              0x18
#define WRITE_MULTIPLE_BLOCK     0x19
#define PROGRAM_CID              0x1a
#define PROGRAM_CSD              0x1b
#define SET_WRITE_PROT           0x1c
#define CLR_WRITE_PROT           0x1d
#define SEND_WRITE_PROT          0x1e
#define TAG_SECTOR_START         0x20
#define TAG_SECTOR_END           0x21
#define UNTAG_SECTOR             0x22
#define TAG_ERASE_GROUP_START    0x23
#define TAG_ERASE_GROUP_END      0x24
#define UNTAG_ERASE_GROUP        0x25
#define ERASE_SECTORS            0x26
#define CRC_ON_OFF               0x3b

#if (USE_SD)
#define APPL_CMD                (55 + CMD_START_BIT + APPL_CMD_BIT)

/* ONLY for SD card in SPI mode  */
#if (USE_SPI || USE_SPI_EMULATION)
#define SD_READ_OCR             (58 + CMD_START_BIT + APPL_CMD_BIT)
#endif

/* ONLY for SD card in MMC mode  */
#if (USE_MMC || USE_MMC_EMULATION)
#define SET_BUS_WIDTH           (6 + CMD_START_BIT + APPL_CMD_BIT)
#endif

#define SD_STATUS               (13 + CMD_START_BIT + APPL_CMD_BIT)
#define SD_NUM_WR_SECTORS       (22 + CMD_START_BIT + APPL_CMD_BIT)
#define SD_SECTOR_ERASE_COUNT   (23 + CMD_START_BIT + APPL_CMD_BIT)
#define SD_SEND_OP_COND         (41 + CMD_START_BIT + APPL_CMD_BIT)
#define SD_SET_CLR_DETECT       (42 + CMD_START_BIT + APPL_CMD_BIT)
#define SD_SEND_SCR             (51 + CMD_START_BIT + APPL_CMD_BIT)
#endif /* (USE_SD) */


/* MMC response types */
typedef enum
{
    R0 = 0,         /* NONE response */
    R1 = 1,         /* Basic MMC response format */
    R2 = 2,         /* R2 response. Used by ALL_SEND_CID(CMD2), 
               SEND_CID(CMD10) and SEND_CSD(CMD9)
            */
    R3 = 3,         /* R3 response. Used by SEND_OP_COND(CMD1) */
    R6 = 6          /* R6 response. Used by SD for SEND_OP_COND(ACMD41) */ 
} RESP_TYPE;

/* MMC card states */
typedef enum
{
    IDLE = 0,
    READY,
    IDENT,
    STANDBY,
    TRANSFER,
    DATA,
    RCV,
    PRG,
    DIS,
    RES1,
    RES2,
    RES3,
    RES4,
    RES5,
    RES6,
    RES7
} CARD_STATE;

#if (USE_MMC || USE_MMC_EMULATION)

#define OUT_OF_RANGE_ERROR      0x80000000      /* Bit 31 */
#define ADDRESS_ERROR           0x40000000      /* Bit 30 */
#define BLK_LENGTH_ERROR        0x20000000      /* Bit 29 */
#define ERASE_SEQ_ERROR         0x10000000      /* Bit 28 */
#define ERASE_PARAM             0x08000000      /* Bit 27 */
#define WP_VIOLATION            0x04000000      /* Bit 26 */
#if (USE_SD)
#define CARD_IS_LOCKED          0x02000000      /* Bit 25 */
#define LOCK_UNLOCK_FAILED      0x01000000      /* Bit 24 */
#endif
#define CMD_CRC_ERROR           0x00800000      /* Bit 23 */
#define COMUNC_ILLEG_COM        0x00400000      /* Bit 22 */
#define CARD_ECC_FAILED         0x00200000      /* Bit 21 */
#define CONTROLLER_ERROR        0x00100000      /* Bit 20 */
#define EERROR                  0x00080000      /* Bit 19 */
#define UNDERRUN                0x00040000      /* Bit 18 */
#define OVERRUN                 0x00020000      /* Bit 17 */
#define CIDCSD_OVERWRITE        0x00010000      /* Bit 16 */
#define WP_ERASE_SKIP           0x00008000      /* Bit 15 */
#define CARD_ECC_DISABLED       0x00004000      /* Bit 14 */
#define ERASE_RESET             0x00002000      /* Bit 13 */

#else

/* Constant masks for MMC card in SPI Mode status registers bits */

#define OVERRUN                 0x8000
#define CMD_PARAM_ERROR         0x4000
#define ADDRESS_ERROR           0x2000
#define ERASE_SEQ_ERROR         0x1000
#define CMD_CRC_ERROR           0x0800
#define COMUNC_ILLEG_COM        0x0400
#define ERASE_RESET             0x0200
#define CARD_IS_NOT_READY       0x0100
#define CMD_PARAM_ERROR2        0x0080
#define ERASE_PARAM             0x0040
#define WP_VIOLATION            0x0020
#define CARD_READ_FAILURE       0x0010
#define EERROR                  0x0008
#define ERROR2                  0x0004
#define WP_ERASE_SKIP           0x0002
#define UNDERRUN                0x0001
#endif


/* MMC Card specific Data structure */
typedef struct _mmcCSD
{
        unsigned CSD_Structure : 2;
        unsigned MMC_Protocol_Ver : 4;
        unsigned CSD_reserved0 : 2;
        unsigned CSD_TimeAccess1 : 8;
        unsigned CSD_TimeAccess2 : 8;
        unsigned CSD_TransferRate : 8;
        unsigned CSD_BlockLength : 4;
        unsigned CSD_CmdClass : 12;
        unsigned CSD_CSize1: 10;
        unsigned CSD_reserved1 : 2; 
        unsigned CSD_DSR : 1;
        unsigned CSD_ReadMisalign : 1;
        unsigned CSD_WriteMisalign : 1;
        unsigned CSD_PartialSize : 1;
        unsigned CSD_EraseSecSize : 1;

        unsigned CSD_VDDReadMin1 : 2;
        unsigned CSD_VDDReadMax : 3;
        unsigned CSD_VDDWriteMin : 3;
        unsigned CSD_VDDWriteMax : 3;
        unsigned CSD_CSizeMult : 3;
        unsigned CSD_CSize2: 2;

        unsigned CSD_WPGrpSize : 5;
        unsigned CSD_EraseGrpSize : 5;
        unsigned CSD_SectorSize : 5;
        unsigned CSD_VDDReadMin2 : 1;

        unsigned CSD_Res2 : 5;
        unsigned CSD_WrBlockPartial : 1;
        unsigned CSD_WrDataBlockLn : 4;
        unsigned CSD_WrSpeedFactor : 3;
        unsigned CSD_DefaultECC : 2;
        unsigned CSD_WPGrpEnable : 1;

        unsigned CSD_Error : 1;
        unsigned CSD_CRC : 7;
        unsigned CSD_Res3 : 2;
        unsigned CSD_FileFmt : 2;
        unsigned CSD_TempWRProtect : 1;
        unsigned CSD_PermWRProtect : 1;
        unsigned CSD_Copy : 1;
        unsigned CSD_FileFmtGrp : 1;
} MMCCSDFields;


/* MMC Card identification structure */
typedef struct _mmcCID
{
        unsigned manufact_ID0 : 8;      /* Manufacturer ID */
        unsigned manufact_ID1 : 16;     /* Manufacturer ID */
        unsigned product_name0 : 8;     /* Card product name */
        unsigned product_name1 : 16;
        unsigned product_name2 : 16;
        unsigned product_name3 : 16;
        unsigned fw_revision : 4;       /* Firmware revision */
        unsigned hw_revision : 4;       /* Hardware revision */
        unsigned ser_numb0 :8;          /* serial number */
        unsigned ser_numb1 :16;
        unsigned year_code : 4;         /* date manufacture */
        unsigned month_code : 4;        /* date manufacture */
        unsigned stop_bit : 1;          /* Always 1 */
        unsigned crc7: 7;               /* CRC7 checksum */
} MMCCIDFields;

#if (USE_SD)
/* SD Card specific Data structure. Align on 16-bit length */
typedef struct _sdCSD
{
        unsigned CSD_Structure : 2;
        unsigned CSD_reserved0 : 6;
        unsigned CSD_TimeAccess1 : 8;
        unsigned CSD_TimeAccess2 : 8;
        unsigned CSD_TransferRate : 8;
        unsigned CSD_CmdClass0 : 8;
        unsigned CSD_BlockLength : 4;
        unsigned CSD_CmdClass1 : 4;
        unsigned CSD_CSize0: 2;
        unsigned CSD_reserved1 : 2; 
        unsigned CSD_DSR : 1;
        unsigned CSD_ReadMisalign : 1;
        unsigned CSD_WriteMisalign : 1;
        unsigned CSD_PartialSize : 1;
        unsigned CSD_CSize1: 10;
        unsigned CSD_VDDReadMax : 3;
        unsigned CSD_VDDReadMin1 : 3;
        unsigned CSD_VDDWriteMax : 3;
        unsigned CSD_VDDWriteMin : 3;
        unsigned CSD_CSizeMult : 2;

        unsigned CSD_SectorSize : 7;
        unsigned CSD_EraseBlkEn : 1;
        unsigned CSD_CSizeMultL : 1;

        unsigned CSD_WPGrpSize : 7;
        unsigned CSD_SectorSizeL : 1;

        unsigned CSD_WrDataBlockLnH : 2;
        unsigned CSD_WrSpeedFactor : 3;
        unsigned CSD_Res2 : 2;
        unsigned CSD_WPGrpEnable : 1;

        unsigned CSD_WrDataBlockLnL : 2;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一道高清亚洲日美韩| 色婷婷精品大在线视频| 日本成人在线不卡视频| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲视频你懂的| 亚洲猫色日本管| 亚洲日本免费电影| 洋洋av久久久久久久一区| 一区二区三区中文字幕精品精品| 亚洲色图欧美激情| 一区二区免费在线播放| 亚洲国产精品一区二区久久| 亚洲大片一区二区三区| 青青国产91久久久久久| 老司机精品视频导航| 国产麻豆精品theporn| 成人一区二区视频| 91丨九色丨蝌蚪富婆spa| 在线视频欧美精品| 91精品一区二区三区久久久久久| 91精品国产欧美一区二区18 | 欧美日韩精品欧美日韩精品一综合| 在线观看视频一区二区| 欧美美女直播网站| 日韩精品在线网站| 国产精品蜜臀av| 亚洲激情在线播放| 婷婷综合另类小说色区| 精品一区二区在线播放| 不卡视频在线看| 欧美亚洲动漫另类| 欧美r级电影在线观看| 日本一区二区三级电影在线观看 | 国产午夜亚洲精品理论片色戒| 国产视频一区二区在线| 亚洲激情欧美激情| 六月丁香婷婷久久| 成人国产视频在线观看| 欧美色精品天天在线观看视频| 精品va天堂亚洲国产| 国产精品成人一区二区艾草| 午夜精品福利在线| 国产超碰在线一区| 欧美日韩电影在线| 国产精品天干天干在线综合| 亚洲一区二区三区在线| 国产在线播放一区二区三区| 色一情一乱一乱一91av| 欧美成人综合网站| 亚洲精品五月天| 经典三级在线一区| 欧美综合天天夜夜久久| 精品国产乱码久久久久久影片| 一区二区三区中文字幕| 国产一区二区三区香蕉 | 国产欧美精品在线观看| 午夜影视日本亚洲欧洲精品| 国产精品18久久久久久久久久久久| 在线影院国内精品| 国产女主播视频一区二区| 石原莉奈一区二区三区在线观看| 成人综合在线观看| 欧美mv和日韩mv国产网站| 亚洲欧美成aⅴ人在线观看| 久久97超碰国产精品超碰| 欧美亚洲综合网| 国产精品久久久久久久裸模| 久久疯狂做爰流白浆xx| 一本在线高清不卡dvd| 久久久亚洲精华液精华液精华液| 天堂一区二区在线| 色偷偷成人一区二区三区91| 国产欧美日韩卡一| 久久精品国产亚洲aⅴ| 欧美日韩一区三区四区| 亚洲婷婷综合色高清在线| 国产一区在线视频| 日韩免费看网站| 亚洲一级电影视频| 色综合天天综合网天天看片| 国产亚洲精品中文字幕| 极品少妇一区二区| 在线播放欧美女士性生活| 亚洲人一二三区| 成人夜色视频网站在线观看| 久久综合色一综合色88| 久久99久久久久久久久久久| 欧美猛男男办公室激情| 午夜精品123| 欧美色网站导航| 尤物av一区二区| 色婷婷久久一区二区三区麻豆| 日韩一区欧美小说| 成人黄色a**站在线观看| 国产欧美日韩另类一区| 国产成人综合精品三级| 精品sm捆绑视频| 国产综合久久久久久鬼色 | 亚洲综合色区另类av| 99国产精品国产精品久久| 国产精品人妖ts系列视频| 成人免费视频网站在线观看| 欧美国产一区二区在线观看| 国产精品亚洲专一区二区三区| 久久先锋资源网| 国产精品白丝jk黑袜喷水| 国产亚洲一区字幕| 成人av电影在线播放| 亚洲男女毛片无遮挡| 色94色欧美sute亚洲13| 一区二区三区免费观看| 欧美日韩免费在线视频| 性做久久久久久免费观看欧美| 欧美三区在线视频| 亚洲成人久久影院| 91精品国产综合久久久久久漫画| 偷拍亚洲欧洲综合| 日韩精品一区二区三区视频 | 色中色一区二区| 亚洲国产日韩av| 日韩欧美一二三区| 国产美女精品人人做人人爽| 欧美国产丝袜视频| 91视频免费观看| 亚洲超丰满肉感bbw| 日韩午夜三级在线| 国产成人午夜精品影院观看视频 | 国产精品的网站| 日本精品一级二级| 免费高清视频精品| 国产欧美日韩一区二区三区在线观看| 99在线精品一区二区三区| 亚洲高清中文字幕| 26uuu亚洲综合色欧美| av在线综合网| 视频一区二区三区在线| 国产三级精品三级在线专区| 91麻豆精品在线观看| 免费成人在线网站| 国产精品美女一区二区三区 | 欧美中文字幕一区二区三区| 日韩精品久久理论片| 久久久99精品久久| 欧美性猛片aaaaaaa做受| 美国十次综合导航| 最新日韩在线视频| 日韩三级中文字幕| 91在线porny国产在线看| 青青草国产精品97视觉盛宴| 国产精品久久久久久妇女6080| 欧美高清视频一二三区| 国产成人午夜精品影院观看视频| 亚洲国产cao| 国产精品天美传媒沈樵| 欧美一区二区三区四区五区| 99久久婷婷国产综合精品电影| 日本三级韩国三级欧美三级| 国产精品久久久久三级| 精品少妇一区二区三区免费观看| 99在线精品视频| 国产一区二区成人久久免费影院| 亚洲主播在线播放| 国产精品视频麻豆| 日韩欧美高清在线| 色播五月激情综合网| 懂色av一区二区夜夜嗨| 日韩在线观看一区二区| 一区二区视频免费在线观看| 国产午夜精品一区二区三区视频 | 欧美日韩国产经典色站一区二区三区 | 久久综合九色综合久久久精品综合| 91视频一区二区三区| 国产成人午夜99999| 奇米四色…亚洲| 午夜影视日本亚洲欧洲精品| 亚洲色图另类专区| 国产日韩v精品一区二区| 日韩欧美一二三四区| 欧美日本在线看| 欧美在线不卡视频| 99久久精品免费看国产免费软件| 国内精品久久久久影院色| 婷婷久久综合九色国产成人 | 天堂蜜桃一区二区三区| 亚洲男同1069视频| 日韩毛片精品高清免费| 久久久夜色精品亚洲| 精品国产污网站| 91精品国产综合久久久久久久 | 99精品久久只有精品| 狠狠色综合播放一区二区| 全国精品久久少妇| 日本不卡视频在线| 无码av免费一区二区三区试看 | 久久91精品久久久久久秒播| 日本视频免费一区| 日韩av电影免费观看高清完整版 | 91精品国产欧美一区二区成人| 欧美日韩小视频| 欧美美女网站色|