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

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

?? mmcsd.h

?? 老外的一個開源項目
?? H
?? 第 1 頁 / 共 2 頁
字號:
// Copyright (c) David Vescovi.  All rights reserved.
// Part of Project DrumStix
// Windows Embedded Developers Interest Group (WE-DIG) community project.
// http://www.we-dig.org
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------
//
//  File: mmcsd.h
//
//  This file contains definitions specific to the MMC/SD driver.
//
//
//------------------------------------------------------------------------------

#ifndef __MMCSD_H__
#define __MMCSD_H__

#ifdef __cplusplus
extern "C" {
#endif

#include "mmcapi.h"

/* Current active device flag */
#define DRV_ACTIVE      0x8000


/* Internal READ, WRITE, ERASE Command operations */
#define READING 1
#define WRITING 2
#define ERASING 3


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

#define SINGLE_MODE             0x0001	// Single block
#define MULTIPLE_MODE           0x0002  // 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

/* -------------------- 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

#define APPL_CMD                (55 + CMD_START_BIT + APPL_CMD_BIT)

/* ONLY for SD card in MMC mode  */
#define SET_BUS_WIDTH           (6 + CMD_START_BIT + APPL_CMD_BIT)

#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)


//* CLOCK RATE definitions */
#define CLK_RATE_FULL           0x00    // Master clock 
#define CLK_RATE_HALF           0x01    // 1/2 Master clock 
#define CLK_RATE_FOUR           0x02    // 1/4 Master clock 
#define CLK_RATE_EIGHT          0x03    // 1/8 Master clock 
#define CLK_RATE_SIXTEEN        0x04    // 1/16 Master clock 
#define CLK_RATE_THIRTY2        0x05    // 1/32 Master clock 
#define CLK_RATE_SIXTY4         0x06    // 1/64 Master clock 

#define SPDATA_REG      00
#define SPSTAT_REG      01
#define SPCTRL_REG      02
#define EPPADDR_REG     03
#define EPPDATA_REG     04

/* Register definitions */
#define STR_STP_CLK_REG         0x00    // start stop clock 
#define STATUS_REG              0x02    // Status 
#define CLK_RATE_REG            0x04    // MMC Clock Rate 
#define REVISION_REG            0x06    // Revision information 
#define SPI_REG                 0x08    // SPI control 
#define CMD_DAT_CONT_REG        0x0A    // Command data control 
#define RESPONSE_TOUT_REG       0x0C    // Response time out 
#define READ_TOUT_REG           0x0E    // Read time out 
#define BLK_LEN_REG             0x10    // Block length register 
#define NOB_REG                 0x12    // Number of blocks to transfer 
#define PWR_REG                 0x14    // Power 
#define TEST_REG                0x16    // Test 
#define TEST_CLK_COUNT_REG      0x18    // Test Clock count 
#define INT_MASK_REG            0x1A    // Interrupt Mask 
#define CMD_REG                 0x1C    // Command Index 
#define ARGUMENT_HI_REG         0x1E    // Argument High word 
#define ARGUMENT_LO_REG         0x20    // Argument Low word 
#define RES_FIFO_REG            0x22    // Response read address location 
#define FIFO_OE_REG             0x24    // 
#define FIFO_RD_WR_REG          0x26    // 
#define BUF_PART_FULL_REG       0x28    // Buffer partial full 

/* START_STOP CLOCK register definitions */
#define STOP_CLOCK              0x01    // Disable the clock
#define START_CLOCK             0x02    // Enable the clock

/* STATUS register definitions (READ ONLY) */
#define TIME_OUT_RECEIVE        0x0001  // TIME_OUT_RCVD - Time out receive data 
#define TIME_OUT_RESPONSE       0x0002  // TIME_OUT_RES - Time out response 
#define CRC_WR_ERR              0x0004  // CRC_WR_ERR - CRC write error 
#define CRC_RD_ERR              0x0008  // CRC_RD_ERR - CRC read error 
#define ERR_CRC_NO_RESP         0x0010  // ERR_CRC_NO_RESP - No response CRC 
#define RESP_CRC_ERR            0x0020  // RESP_CRC_ERR - Response CRC error 
#define FIFO_BUFFER_EMPTY       0x0040  // EFB - Empty fifo1 
#define FIFO_BUFFER_FULL        0x0080  // FFB - Full fifo1 
#define CLOCK_ENABLE            0x0100  // CLOCK_ENABLE - Clock enable 
#define RESERVE_EFB2            0x0200  // EFB2 - Empty fifo2 
#define RESERVE_FFB2            0x0400  // FFB2 - Full fifo2 
#define RD_DATA_AVAILABLE       0x0800  // READ  -  Data available 
#define DONE_WDATA_XFER         0x0800  // WRITE -  Finish WRITE request 
#define DONE_PROG_RDWR          0x1000  // For write, End of programming data 
#define END_CMD_RES             0x2000  // END_CMD_RES - End command response 
#define RESERVE_FIFO1_PAEN      0x4000  // FIFO1_PAEN or FIFO1_PAFN 
#define RESERVE_FIFO2_PAEN      0x8000  // FIFO2_PAEN or FIFO2_PAFN 

/* Interrupt Mask Definitions */
#define MASK_ON_TXFIFO_WR_REQ		(0x3F)
#define MASK_ON_RXFIFO_RD_REQ		(0x5F)
#define MASK_ON_PRG_DONE			(0x7D)
#define MASK_ON_DATA_TRAN_DONE		(0x7E)
#define MASK_OFF_ALL				(0x7F)

/* CMD_DAT_CONT register definitions */
#define RESPONSE_TYPE_R0        0x00
#define RESPONSE_TYPE_R1        0x01
#define RESPONSE_TYPE_R2        0x02
#define RESPONSE_TYPE_R3        0x03
#define DATA_ENABLE             0x04
#define DATA_READ_SET           0x00
#define DATA_WRITE_SET          0x08
#define DATA_STREAM_BLK         0x10
#define BUSY_SET                0x20
#define SEND_80_CLOCKS          0x40
#define SSTOP_TRANSMISSION      0x4C

/* Response Time Out register definitions */
#define DEFAULT_RESPONSE_TOUT   0xFF

/* Read Time Out Register definitions */
#define DEFAULT_READ_TOUT       0xFFFF

/* Block Length register definitions */
#define DEFAULT_BLK_LENGTH      0x200   /* 512-byte block length */

/* Number of Block register definition */
#define DEFAULT_NOB             0x01

/* Interrupt Mask Register definitions */
#define DATA_TRANSFER_INT       0x01
#define PROGPRAM_DONE_INT       0x02
#define CMD_RESPONSE_INT        0x04
#define BUFF_READY_INT          0x08

/* Buffer Partial Full register */
#define BUFF_PARTIAL_FULL       0x01


typedef unsigned short * USERADDRESS;

/* MMC completion code, the return value of most of the MMC driver fucntions */
typedef enum MMC_ERROR
{
	MMC_NO_ERROR = 0,               // 0- Successful completion 
	MMC_CARD_IS_NOT_RESPONDING=201, // 201- Time out error on card response 
	MMC_CMD_CRC_ERROR,              // 202- CRC error detected on card response 
	MMC_DATA_CRC_ERROR,             // 203- CRC error detected on incoming data block 
	MMC_DATA_STATUS_CRC_ERROR,      // 204- Card is reporting CRC error on outgoing data block. 
	MMC_CARD_IS_BUSY,               // 205- Card is busy programming 
	MMC_CARD_IS_NOT_READY,          // 206- Card did not complete its initialization and is not ready. 
	MMC_COMUNC_CRC_ERROR,           // 207- Card is reporting CRC error 
	MMC_COMUNC_ILLEG_COM,           // 208- Card is reporting illegal command 
	MMC_ERASE_PARAM,                // 209- Erase parameters error 
	MMC_WP_VIOLATION,               // 210- Attempt to write a WP sector 
	MMC_ERROR,                      // 211- MMC card internal error 
	MMC_WP_ERASE_SKIP,              // 212- Attempt to erase WP sector 
	MMC_ADDRESS_ERROR,              // 213- Sector messaligned error 
	MMC_CARD_READ_FAILURE,          // 214- Card is reporting Read command failed 
	MMC_INTERFACE_ERROR,            // 215- Error detected by the MMC HW driver 
	MMC_ILLEGAL_MODE,               // 216- Not support in the current mode 
	MMC_COMMAND_PARAMETER_ERROR,    // 217- Card is reporting Address-out-of-range error 
	MMC_ERASE_SEQ_ERROR,            // 218- Error in the sequence of erase command 
	MMC_ERASE_RESET,                // 219- Erase command canceled before execution 
	MMC_NO_CRC_STATUS,              // 220- Time out on CRC status for Write 
	MMC_OVERRUN,                    // 221- Overrun 
	MMC_UNDERRUN,                   // 222- Underrun 
	MMC_CIDCSD_OVERWRITE,           // 223- a) The CID register has been already 
									//         written and can be overwriten. 
									//      b) The read only section of CSD does not 
									//         match the card content. 
									//      c) An attempt to reverse the copy (set 
									//         as original) or permanent WP bits was made. 
	MMC_CARD_ECC_DISABLED,          // 224- The command has been executed without 
									//      using the internal ECC. 
	MMC_READ_FOR_DATA,              // 225- Corresponds to buffer empty signalling 
									//      on the bus. 
	MMC_DATA_LENGTH_ERROR,          // 226- Data Length more then 512 bytes. 
	MMC_TIME_OUT_RCVD,              // 227- Time out recive data (B0 for controller) 
	MMC_OUT_OF_RANGE,               // 228- Address out of range error 
	MMC_CARD_ECC_FAILED,            // 229- Internal Card ECC failed 
	MMC_CARD_IS_LOCKED,             // 230- Card is locked by host 
	MMC_LOCK_UNLOCK_FAILED          // 231- Lock/unlock card failed or access to locked card 
} MMC_CC;


/* 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,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久草av在线| 亚洲免费在线视频一区 二区| 亚洲一区在线观看视频| 欧美精品黑人性xxxx| 狠狠色丁香婷婷综合| 自拍视频在线观看一区二区| 91精品国产综合久久久久久漫画 | 亚洲少妇30p| 在线亚洲高清视频| 亚洲超丰满肉感bbw| 欧美一区三区四区| 国精品**一区二区三区在线蜜桃| 精品国产伦理网| 成人精品免费视频| 亚洲免费av网站| 精品视频一区二区三区免费| 日本va欧美va精品发布| 久久久99精品久久| 91麻豆免费看| 精东粉嫩av免费一区二区三区| 久久久国产午夜精品| 色视频一区二区| 毛片基地黄久久久久久天堂| 欧美国产欧美亚州国产日韩mv天天看完整| 成人精品视频一区二区三区尤物| 国产精品免费丝袜| 欧美一区二区三区在线观看| 成人免费毛片片v| 青青草国产精品97视觉盛宴| 日本美女一区二区三区视频| 国产午夜精品久久| 蜜桃久久av一区| 欧美一级二级三级蜜桃| 亚洲欧美日本韩国| 亚洲一区免费在线观看| 欧美欧美欧美欧美| 亚洲一区二区三区在线| 欧美日韩在线不卡| 成人黄色片在线观看| 免费在线观看视频一区| 中文字幕在线不卡| 久久免费电影网| 3751色影院一区二区三区| 夫妻av一区二区| 国产一区 二区 三区一级| 亚洲一级电影视频| 亚洲欧美偷拍三级| 中文字幕亚洲精品在线观看| 91麻豆精品国产91久久久久| 91老师片黄在线观看| 成人小视频免费在线观看| 国产一区美女在线| 国产综合久久久久久久久久久久 | 在线看一区二区| 91最新地址在线播放| av在线播放一区二区三区| 成人av综合在线| 成人18视频在线播放| 成人黄色电影在线| 97久久超碰国产精品电影| 99久久精品免费看国产 | 国产欧美日韩三区| 欧美激情在线看| 国产精品丝袜一区| 亚洲一区在线免费观看| 日韩在线播放一区二区| 久久精品久久综合| 不卡高清视频专区| 欧美午夜理伦三级在线观看| 91麻豆精品国产| 欧美国产一区视频在线观看| 亚洲老司机在线| 日韩在线一区二区| 成人av在线影院| 欧美日韩一区二区欧美激情 | 欧美三级中文字| 精品国产乱码久久久久久夜甘婷婷 | 亚洲免费色视频| 日本中文字幕一区二区视频| 99这里都是精品| 欧美成人aa大片| 亚洲主播在线观看| 国产成人在线视频网址| 91精品国产欧美一区二区| 国产欧美日韩三级| 久久99精品国产| 91久久精品一区二区| 国产情人综合久久777777| 午夜一区二区三区在线观看| 成人免费视频一区| 精品成人在线观看| 日韩在线一区二区| 欧美日韩视频在线第一区| 国产精品色在线观看| 国产二区国产一区在线观看| 欧美一区二区三区不卡| 午夜精品福利在线| 欧美高清精品3d| 青青青伊人色综合久久| 欧美视频在线观看一区二区| 综合欧美亚洲日本| 99国产精品视频免费观看| 亚洲欧洲日产国码二区| 不卡在线观看av| 亚洲精品自拍动漫在线| 裸体歌舞表演一区二区| 欧美系列亚洲系列| av日韩在线网站| 欧美日韩国产片| 中文字幕免费不卡| 精品国产三级电影在线观看| 欧美日韩专区在线| www..com久久爱| 国产一区二区三区免费看| 亚洲va韩国va欧美va精品| 日本一二三不卡| 26uuu另类欧美| 日韩视频在线一区二区| 色综合一区二区| 黄页视频在线91| 亚洲成人先锋电影| 国产精品电影一区二区| 精品国产1区二区| 在线观看亚洲精品视频| 国产成人亚洲综合a∨婷婷图片| 亚洲综合无码一区二区| 久久综合九色综合97_久久久| 91精品福利视频| 岛国精品在线观看| 韩国一区二区在线观看| 一区二区三区在线免费| 中文字幕av一区二区三区| 日韩精品资源二区在线| 欧美专区日韩专区| a美女胸又www黄视频久久| 国产一二精品视频| 国产一二精品视频| 狠狠久久亚洲欧美| 粉嫩av一区二区三区粉嫩| 午夜精品福利视频网站 | 国产亚洲精品资源在线26u| 精品粉嫩超白一线天av| 日韩网站在线看片你懂的| 欧美无乱码久久久免费午夜一区| 91精品福利在线一区二区三区| 麻豆91小视频| 蜜臀久久久99精品久久久久久| 国产精品一卡二卡在线观看| 久久国产精品99久久久久久老狼| 亚洲欧美日韩久久| 成人欧美一区二区三区| 亚洲激情在线播放| 亚洲一二三专区| 免费一级欧美片在线观看| 激情久久久久久久久久久久久久久久| 美女脱光内衣内裤视频久久影院| 蜜桃91丨九色丨蝌蚪91桃色| 国产一区二区久久| 91网站在线播放| 欧美日韩电影一区| 国产日产欧美一区二区视频| 一区二区三区久久| 看电影不卡的网站| 91麻豆精品在线观看| 成人国产精品免费观看视频| 欧美亚洲综合一区| 久久久久久综合| 亚洲电影在线播放| 久久精品二区亚洲w码| 色婷婷国产精品| 亚洲国产成人在线| 国产99久久久国产精品潘金| 欧美日韩不卡一区| 夜夜操天天操亚洲| 欧美人与z0zoxxxx视频| 一区二区三区电影在线播| 欧美吞精做爰啪啪高潮| 图片区小说区国产精品视频| 欧美日韩一区久久| 亚洲区小说区图片区qvod| 国产不卡在线一区| 亚洲国产成人自拍| 国产高清在线精品| 2024国产精品| 国产一区二三区好的| 久久久久久久久久久久电影| 同产精品九九九| 欧美日韩一级视频| 亚洲大尺度视频在线观看| 欧美四级电影网| 欧美不卡在线视频| 国产精品午夜电影| 麻豆国产精品777777在线| 日韩精品中午字幕| 久久国产精品第一页| 亚洲精品一线二线三线| 国产精品18久久久久久vr| 国产精品久久精品日日| 972aa.com艺术欧美| 亚洲国产cao|