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

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

?? sdmmc.h

?? IAR5.2下 AT91SAM9260 ARM 對 MCP2515 控制源化碼
?? H
字號:
/* ----------------------------------------------------------------------------
 *         ATMEL Microcontroller Software Support  -  ROUSSET  -
 * ----------------------------------------------------------------------------
 * Copyright (c) 2006, Atmel Corporation

 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * - Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the disclaimer below.
 *
 * - Redistributions in binary form must reproduce the above copyright notice,
 * this list of conditions and the disclaimer below in the documentation and/or
 * other materials provided with the distribution.
 *
 * Atmel's name may not be used to endorse or promote products derived from
 * this software without specific prior written permission.
 *
 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 * ----------------------------------------------------------------------------
 */

#ifndef SDCARD_H
#define SDCARD_H

//------------------------------------------------------------------------------
//         Headers
//------------------------------------------------------------------------------

#include <mci/mci.h>

//------------------------------------------------------------------------------
//         Constants
//------------------------------------------------------------------------------

/// There was an error with the MCI driver.
#define SD_ERROR_MCI             1
/// The SD card did not answer the command.
#define SD_ERROR_NORESPONSE      2
/// The SD card did not answer the command.
#define SD_ERROR_NOT_INITIALIZED 3

/// SD card block size in bytes.
#define SD_BLOCK_SIZE           512
/// SD card block size binary shift value
#define SD_BLOCK_SIZE_BIT     9

//------------------------------------------------------------------------------
//         Macros
//------------------------------------------------------------------------------

// CSD register access macros.
#define SD_CSD(pSd, bitfield, bits)   ((((pSd)->csd)[3-(bitfield)/32] >> ((bitfield)%32)) & ((1 << (bits)) - 1))
#define SD_CSD_STRUCTURE(pSd)          SD_CSD(pSd, 126, 2) ///< CSD structure 00b  Version 1.0 01b version 2.0 High Cap
#define SD_CSD_TAAC(pSd)               SD_CSD(pSd, 112, 8) ///< Data read-access-time-1
#define SD_CSD_NSAC(pSd)               SD_CSD(pSd, 104, 8) ///< Data read access-time-2 in CLK cycles
#define SD_CSD_TRAN_SPEED(pSd)         SD_CSD(pSd, 96,  8) ///< Max. data transfer rate
#define SD_CSD_READ_BL_LEN(pSd)        SD_CSD(pSd, 80,  4) ///< Max. read data block length
#define SD_CSD_READ_BL_PARTIAL(pSd)    SD_CSD(pSd, 79,  1) ///< Bartial blocks for read allowed
#define SD_CSD_WRITE_BLK_MISALIGN(pSd) SD_CSD(pSd, 78,  1) ///< Write block misalignment
#define SD_CSD_READ_BLK_MISALIGN(pSd)  SD_CSD(pSd, 77,  1) ///< Read block misalignment
#define SD_CSD_DSR_IMP(pSd)            SD_CSD(pSd, 76,  1) ///< DSP implemented
#define SD_CSD_C_SIZE(pSd)             ((SD_CSD(pSd, 64,  10) << 2) + SD_CSD(pSd, 62,  2)) ///< Device size
#define SD_CSD_C_SIZE_HC(pSd)          ((SD_CSD(pSd, 64,  6) << 16) + SD_CSD(pSd, 48,  16)) ///< Device size v2.0 High Capacity
#define SD_CSD_VDD_R_CURR_MIN(pSd)     SD_CSD(pSd, 59,  3) ///< Max. read current @VDD min
#define SD_CSD_VDD_R_CURR_MAX(pSd)     SD_CSD(pSd, 56,  3) ///< Max. read current @VDD max
#define SD_CSD_VDD_W_CURR_MIN(pSd)     SD_CSD(pSd, 53,  3) ///< Max. write current @VDD min 
#define SD_CSD_VDD_W_CURR_MAX(pSd)     SD_CSD(pSd, 50,  3) ///< Max. write current @VDD max
#define SD_CSD_C_SIZE_MULT(pSd)        SD_CSD(pSd, 47,  3) ///< Device size multiplier 
#define SD_CSD_ERASE_BLK_EN(pSd)       SD_CSD(pSd, 46,  1) ///< Erase single block enable
#define SD_CSD_SECTOR_SIZE(pSd)        SD_CSD(pSd, 39,  7) ///< Erase sector size
#define SD_CSD_WP_GRP_SIZE(pSd)        SD_CSD(pSd, 32,  7) ///< Write protect group size
#define SD_CSD_WP_GRP_ENABLE(pSd)      SD_CSD(pSd, 31,  1) ///< write protect group enable
#define SD_CSD_R2W_FACTOR(pSd)         SD_CSD(pSd, 26,  3) ///< Write speed factor
#define SD_CSD_WRITE_BL_LEN(pSd)       SD_CSD(pSd, 22,  4) ///< Max write block length
#define SD_CSD_WRITE_BL_PARTIAL(pSd)   SD_CSD(pSd, 21,  1) ///< Partial blocks for write allowed 
#define SD_CSD_FILE_FORMAT_GRP(pSd)    SD_CSD(pSd, 15,  1) ///< File format group
#define SD_CSD_COPY(pSd)               SD_CSD(pSd, 14,  1) ///< Copy flag (OTP)
#define SD_CSD_PERM_WRITE_PROTECT(pSd) SD_CSD(pSd, 13,  1) ///< Permanent write protect 
#define SD_CSD_TMP_WRITE_PROTECT(pSd)  SD_CSD(pSd, 12,  1) ///< Temporary write protection
#define SD_CSD_FILE_FORMAT(pSd)        SD_CSD(pSd, 11,  2) ///< File format
#define SD_CSD_CRC(pSd)                SD_CSD(pSd,  1,  7) ///< CRC
#define SD_CSD_MULT(pSd)               (1 << (SD_CSD_C_SIZE_MULT(pSd) + 2))
#define SD_CSD_BLOCKNR(pSd)            ((SD_CSD_C_SIZE(pSd) + 1) * SD_CSD_MULT(pSd))
#define SD_CSD_BLOCKNR_HC(pSd)         ((SD_CSD_C_SIZE_HC(pSd) + 1) * 1024)
#define SD_CSD_BLOCK_LEN(pSd)          (1 << SD_CSD_READ_BL_LEN(pSd))
#define SD_CSD_TOTAL_SIZE(pSd)         (SD_CSD_BLOCKNR(pSd) * SD_CSD_BLOCK_LEN(pSd))
#define SD_CSD_TOTAL_SIZE_HC(pSd)      ((SD_CSD_C_SIZE_HC(pSd) + 1) * 512* 1024)
#define SD_TOTAL_SIZE(pSd)             ((pSd)->totalSize)
#define SD_TOTAL_BLOCK(pSd)            ((pSd)->blockNr)

// SCR register access macros.
#define SD_SCR_BUS_WIDTHS(pScr)        ((pScr[1] >> 16) & 0xF) ///< Describes all the DAT bus that are supported by this card
#define SD_SCR_BUS_WIDTH_4BITS         (1 << 1) ///< 4bit Bus Width is supported
#define SD_SCR_BUS_WIDTH_1BIT          (1 << 0) ///< 1bit Bus Width is supported

//------------------------------------------------------------------------------
//         Types
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
/// Sdcard driver structure. It holds the current command being processed and
/// the SD card address.
//------------------------------------------------------------------------------
typedef struct _SdCard {

    /// Pointer to the underlying MCI driver.
	Mci *pMci;
    /// Current MCI command being processed.
	MciCmd command;
    /// SD card current address.
	unsigned short cardAddress;
    /// Card-specific data.
	unsigned int csd[4];
    /// Previous access block number.
	unsigned int preBlock;
    /// State after sd command complete
    unsigned char state;
    /// Card type
    unsigned char cardType;
    /// Card total size
    unsigned int totalSize;
    /// Card block number
    unsigned int blockNr;

} SdCard;

//------------------------------------------------------------------------------
//         Global functions
//------------------------------------------------------------------------------

extern unsigned char SD_Init(SdCard *pSd, Mci *pMci);

extern unsigned char SD_ReadBlock(
    SdCard *pSd,
    unsigned int address,
    unsigned short nbBlocks,
    unsigned char *pData);

extern unsigned char SD_WriteBlock(
    SdCard *pSd,
    unsigned int address,
    unsigned short nbBlocks,
    const unsigned char *pData);

extern unsigned char SD_Stop(SdCard *pSd, Mci *pMci);

#endif //#ifndef SDCARD_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区精品在线| 欧美日韩国产一级| 激情图片小说一区| 青青草成人在线观看| 亚洲精品视频自拍| 亚洲日本va在线观看| 国产精品麻豆欧美日韩ww| 国产亚洲精久久久久久| 国产欧美在线观看一区| 国产精品不卡在线观看| 中文字幕在线观看一区| 亚洲视频一区二区免费在线观看| 中文欧美字幕免费| 亚洲精品久久久蜜桃| 一区二区三区视频在线看| 一片黄亚洲嫩模| 亚洲成av人影院| 美女视频网站久久| 国模冰冰炮一区二区| 国产精品系列在线播放| 91一区二区三区在线观看| 日韩午夜精品电影| 精品视频全国免费看| 欧美精品粉嫩高潮一区二区| 日韩一区二区在线看片| 久久久午夜精品| 亚洲精品乱码久久久久| 日本成人在线看| 国产酒店精品激情| 9i在线看片成人免费| 日本韩国精品在线| 制服丝袜中文字幕一区| 久久精品亚洲麻豆av一区二区| 国产精品理论在线观看| 亚洲va欧美va天堂v国产综合| 日本午夜精品一区二区三区电影| 狠狠v欧美v日韩v亚洲ⅴ| 91在线视频官网| 91精品国产综合久久久久久久 | 欧美日韩一二三区| 这里只有精品电影| 国产精品乱子久久久久| 亚洲成人资源在线| 国产一区二区精品在线观看| 一本大道久久精品懂色aⅴ| 欧美日韩国产区一| 亚洲国产精品成人综合色在线婷婷| 一区二区高清在线| 精品一区二区三区欧美| 91丝袜美腿高跟国产极品老师 | 日韩免费高清视频| 中文字幕在线播放不卡一区| 日本免费新一区视频| 岛国一区二区在线观看| 欧美一区欧美二区| 中文字幕一区二区三区精华液 | 久久久久国色av免费看影院| 一区二区高清在线| www.av亚洲| 精品国产青草久久久久福利| 亚洲综合精品自拍| 成人激情免费电影网址| 337p日本欧洲亚洲大胆精品| 亚洲国产精品久久人人爱| 成人不卡免费av| 久久久精品国产免费观看同学| 日韩成人伦理电影在线观看| 91免费观看在线| 中文幕一区二区三区久久蜜桃| 国产麻豆一精品一av一免费| 91精品国产欧美日韩| 偷拍日韩校园综合在线| 在线观看亚洲精品视频| 亚洲私人黄色宅男| eeuss国产一区二区三区| 国产人伦精品一区二区| 国产一区二区中文字幕| 日韩午夜在线观看| 日本v片在线高清不卡在线观看| 欧美日韩综合在线免费观看| 夜夜嗨av一区二区三区网页 | 国产一区二区三区av电影 | 有码一区二区三区| 色综合天天综合网国产成人综合天 | 国产一区不卡视频| 欧美va亚洲va国产综合| 久久99国产精品免费| 精品国产区一区| 国产一区二区免费视频| 国产欧美日韩另类视频免费观看| 国产精品综合在线视频| 久久欧美一区二区| 国产精品123| 久久久久久久电影| 国产高清视频一区| 久久久久久影视| 久久电影网电视剧免费观看| 日韩欧美一二三四区| 日本91福利区| 欧美电影精品一区二区| 亚洲国产一区二区在线播放| 91.com视频| 毛片av一区二区三区| 精品国产一区二区三区不卡| 久久草av在线| 2欧美一区二区三区在线观看视频| 国产在线观看免费一区| 亚洲日本一区二区三区| 在线观看国产日韩| 日韩成人dvd| 久久综合九色综合97_久久久| 国产成人精品一区二区三区四区 | 国产精品久久久久久久久免费丝袜| 国产麻豆视频一区| 中文字幕不卡在线观看| 91捆绑美女网站| 久久99精品久久久久久久久久久久 | 日韩欧美另类在线| 国产一区二区精品久久99| 国产精品乱码一区二三区小蝌蚪| 99久久久久久| 天堂久久久久va久久久久| 欧美tk丨vk视频| 成人国产一区二区三区精品| 一区二区三区四区不卡在线| 欧美另类z0zxhd电影| 国内精品久久久久影院一蜜桃| 久久久久九九视频| 欧美精品色一区二区三区| 国产综合久久久久久鬼色| 国产精品嫩草久久久久| 精品视频在线免费看| 国产美女在线观看一区| 亚洲视频一区在线| 欧美军同video69gay| 91丨九色丨国产丨porny| 亚洲成人福利片| 国产欧美一区二区精品婷婷| 欧美亚洲图片小说| 国产一区二区三区电影在线观看| 国产精品丝袜一区| 欧美一级日韩不卡播放免费| av中文字幕不卡| 精品在线亚洲视频| 亚洲妇女屁股眼交7| 精品91自产拍在线观看一区| 在线成人av网站| 91在线视频免费观看| 国产电影一区在线| 视频一区二区欧美| 亚洲影院久久精品| 国产精品高潮呻吟| 中国av一区二区三区| 91精品国产91久久久久久最新毛片| eeuss鲁片一区二区三区在线看| 全部av―极品视觉盛宴亚洲| 综合色天天鬼久久鬼色| 久久久久久99久久久精品网站| 欧美视频在线一区| a美女胸又www黄视频久久| 国产精品中文字幕日韩精品| 久久精品国产999大香线蕉| 亚洲五码中文字幕| 国产亚洲女人久久久久毛片| 欧美激情资源网| 久久蜜桃av一区精品变态类天堂| 欧美欧美欧美欧美首页| 欧美亚洲一区三区| 欧美伊人久久久久久午夜久久久久| 成人午夜视频在线观看| 成人精品国产福利| 成人av免费观看| 国产高清亚洲一区| 国产大陆a不卡| 国产传媒一区在线| 99视频精品免费视频| 成人ar影院免费观看视频| 成人爱爱电影网址| 一本色道久久综合亚洲精品按摩| 欧美日韩国产综合一区二区| 欧美日韩一区 二区 三区 久久精品| 色综合久久久久久久久| 91老师片黄在线观看| 在线观看日韩高清av| 日本高清无吗v一区| 色综合天天视频在线观看| 91国产免费观看| 欧美高清视频一二三区| 欧美一区二区三区日韩| 久久精品人人做人人爽人人| 国产精品视频一二| 综合婷婷亚洲小说| 五月天网站亚洲| 麻豆精品新av中文字幕| av电影在线观看不卡| 91女神在线视频| 欧美日韩大陆一区二区| 精品少妇一区二区三区在线视频| 欧美岛国在线观看| 一区二区三区欧美在线观看|