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

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

?? msddriver.h

?? IAR5.2下 AT91SAM9260 ARM 對 MCP2515 控制源化碼
?? H
字號:
/* ----------------------------------------------------------------------------
 *         ATMEL Microcontroller Software Support 
 * ----------------------------------------------------------------------------
 * Copyright (c) 2008, 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.
 *
 * 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.
 * ----------------------------------------------------------------------------
 */

//------------------------------------------------------------------------------
/// \unit
/// !Purpose
/// 
/// Mass storage device driver implementation.
/// 
/// !Usage
/// TODO
//------------------------------------------------------------------------------

#ifndef MSDDRIVER_H
#define MSDDRIVER_H

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

#include "MSD.h"
#include "MSDLun.h"
#include <utility/trace.h>

//------------------------------------------------------------------------------
//      Definitions
//------------------------------------------------------------------------------


//! \brief  Possible states of the MSD driver
//! \brief  Driver is expecting a command block wrapper
#define MSDDriver_STATE_READ_CBW              (1 << 0)

//! \brief  Driver is waiting for the transfer to finish
#define MSDDriver_STATE_WAIT_CBW              (1 << 1)

//! \brief  Driver is processing the received command
#define MSDDriver_STATE_PROCESS_CBW           (1 << 2)

//! \brief  Driver is starting the transmission of a command status wrapper
#define MSDDriver_STATE_SEND_CSW              (1 << 3)

//! \brief  Driver is waiting for the CSW transmission to finish
#define MSDDriver_STATE_WAIT_CSW              (1 << 4)

//! \brief  Result codes for MSD functions
//! \brief  Method was successful
#define MSDDriver_STATUS_SUCCESS              0x00

//! \brief  There was an error when trying to perform a method
#define MSDDriver_STATUS_ERROR                0x01

//! \brief  No error was encountered but the application should call the
//!         method again to continue the operation
#define MSDDriver_STATUS_INCOMPLETE           0x02

//! \brief  A wrong parameter has been passed to the method
#define MSDDriver_STATUS_PARAMETER            0x03

//! \brief  Actions to perform during the post-processing phase of a command
//! \brief  Indicates that the CSW should report a phase error
#define MSDDriver_CASE_PHASE_ERROR            (1 << 0)

//! \brief  The driver should halt the Bulk IN pipe after the transfer
#define MSDDriver_CASE_STALL_IN               (1 << 1)

//! \brief  The driver should halt the Bulk OUT pipe after the transfer
#define MSDDriver_CASE_STALL_OUT              (1 << 2)

//! \brief  Possible direction values for a data transfer
#define MSDDriver_DEVICE_TO_HOST              0
#define MSDDriver_HOST_TO_DEVICE              1
#define MSDDriver_NO_TRANSFER                 2

//------------------------------------------------------------------------------
//         Types
//------------------------------------------------------------------------------
//! \brief  Structure for holding the result of a USB transfer
//! \see    MSD_Callback
typedef struct {

    unsigned int  transferred; //!< Number of bytes transferred
    unsigned int  remaining;   //!< Number of bytes not transferred
    unsigned char semaphore;        //!< Semaphore to indicate transfer completion
    unsigned char status;           //!< Operation result code

} MSDTransfer;

//! \brief  Status of an executing command
//! \see    MSDCbw
//! \see    MSDCsw
//! \see    MSDTransfer
typedef struct {

    MSDTransfer transfer; //!< Current transfer status
    MSCbw      cbw;      //!< Received CBW
    MSCsw      csw;      //!< CSW to send
    unsigned char  state;    //!< Current command state
    unsigned char  postprocess;     //!< Actions to perform when command is complete
    unsigned int   length;   //!< Remaining length of command

} MSDCommandState;

//------------------------------------------------------------------------------
//      Inline functions
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
//! \brief  This function is to be used as a callback for USB or LUN transfers.
//!
//!         A S_bot_transfer structure is updated with the method results.
//! \param  S_bot_transfer    Pointer to the transfer structure to update
//! \param  bStatus           Operation result code
//! \param  dBytesTransferred Number of bytes transferred by the command
//! \param  dBytesRemaining   Number of bytes not transferred
//------------------------------------------------------------------------------
static inline void MSDDriver_Callback(MSDTransfer *transfer,
                                      unsigned char status,
                                      unsigned int transferred,
                                      unsigned int remaining)
{
    trace_LOG(trace_DEBUG, "Cbk ");
    transfer->semaphore++;
    transfer->status = status;
    transfer->transferred = transferred;
    transfer->remaining = remaining;
}

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

extern void MSDDriver_Initialize(MSDLun *luns, unsigned char numLuns);

extern void MSDDriver_RequestHandler(const USBGenericRequest *request);

extern void MSDDriver_StateMachine(void);

extern void MSDDriver_RemoteWakeUp(void);

#endif // #ifndef MSDDRIVER_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲三级电影全部在线观看高清| 亚洲乱码精品一二三四区日韩在线| 欧美日韩三级在线| 国产高清精品久久久久| 捆绑紧缚一区二区三区视频| 午夜欧美电影在线观看| 伊人婷婷欧美激情| 99精品视频中文字幕| 秋霞电影网一区二区| 亚洲成人免费看| 亚洲国产精品自拍| 夜夜嗨av一区二区三区中文字幕 | 日韩黄色片在线观看| 亚洲国产精品久久久久秋霞影院| 亚洲欧美区自拍先锋| 国产精品久久免费看| 国产女同性恋一区二区| 欧美国产视频在线| 欧美国产日产图区| 久久亚洲精品国产精品紫薇| 精品处破学生在线二十三| 精品国产电影一区二区| 26uuu精品一区二区在线观看| 久久综合久色欧美综合狠狠| 日韩三级精品电影久久久 | 国产欧美日韩精品一区| 国产精品久久久久精k8| 国产日本欧美一区二区| 中文字幕精品一区二区精品绿巨人 | 亚洲不卡av一区二区三区| 亚洲va在线va天堂| 天堂午夜影视日韩欧美一区二区| 奇米精品一区二区三区在线观看 | 亚洲欧洲av一区二区三区久久| 成人欧美一区二区三区小说| 一区二区三区四区在线| 丝袜亚洲精品中文字幕一区| 日本不卡视频在线观看| 国产一区二区在线视频| 成人av免费在线播放| 欧美一a一片一级一片| 欧美麻豆精品久久久久久| 日韩视频不卡中文| 国产三级欧美三级日产三级99| 一区二区中文字幕在线| 一片黄亚洲嫩模| 蜜桃av噜噜一区| 国产精品系列在线观看| 91国偷自产一区二区开放时间| 色偷偷久久一区二区三区| 精品视频一区三区九区| 精品播放一区二区| 成人欧美一区二区三区视频网页 | 日韩欧美一级在线播放| 欧美精品一区二区高清在线观看| 国产精品久久毛片a| 亚洲最大的成人av| 精品一区免费av| 91丨porny丨首页| 蓝色福利精品导航| 久久成人免费网站| 99精品欧美一区二区三区综合在线| 亚洲电影在线播放| 亚洲影视在线观看| 色综合欧美在线视频区| 国产一区二区在线影院| www.亚洲人| 制服丝袜亚洲精品中文字幕| 欧美国产日韩亚洲一区| 亚洲成人资源在线| 成人福利电影精品一区二区在线观看| 91国产福利在线| 精品国产91乱码一区二区三区| 亚洲天堂福利av| 国产大陆精品国产| 日韩精品一区二区在线观看| 午夜欧美电影在线观看| 91久久精品日日躁夜夜躁欧美| 国产精品久久久久婷婷| 国产精品一区二区x88av| 精品剧情在线观看| 日本不卡高清视频| 欧美精品高清视频| 亚洲成人黄色影院| 在线观看不卡一区| 亚洲视频一区二区在线观看| 国产91高潮流白浆在线麻豆| 日韩欧美一二三区| 另类小说色综合网站| 91精品国产入口在线| 三级欧美在线一区| 制服丝袜中文字幕一区| 天天综合网 天天综合色| 欧美色男人天堂| 亚洲一区二区在线视频| 欧美综合色免费| 一区二区三区欧美在线观看| 一本一本久久a久久精品综合麻豆| 国产精品久久影院| 91啪在线观看| 亚洲美女屁股眼交| 在线国产亚洲欧美| 五月天亚洲精品| 欧美三级电影在线观看| 五月激情丁香一区二区三区| 欧美精品色一区二区三区| 日日摸夜夜添夜夜添国产精品 | 日韩丝袜情趣美女图片| 日本va欧美va欧美va精品| 日韩西西人体444www| 久久机这里只有精品| 日韩精品专区在线影院观看| 国产资源精品在线观看| 中文字幕第一区二区| 91在线看国产| 亚洲一区二区不卡免费| 欧美精选午夜久久久乱码6080| 视频一区二区中文字幕| 精品国产91乱码一区二区三区| 国产精品18久久久久久vr| 国产精品三级久久久久三级| 一本到三区不卡视频| 午夜久久久影院| 精品久久久久香蕉网| 成人av网站免费观看| 亚洲一区二区三区四区在线免费观看| 欧美乱妇23p| 国产精品一级黄| 亚洲精品高清在线| 91精品国产乱| 成人在线综合网| 一区二区三区日韩欧美精品| 制服丝袜一区二区三区| 国产乱码精品一区二区三| 亚洲欧美一区二区在线观看| 欧美老人xxxx18| 国模冰冰炮一区二区| 亚洲欧美日韩一区二区三区在线观看| 色av综合在线| 免费观看日韩av| 中文字幕在线视频一区| 91精品麻豆日日躁夜夜躁| 国产成人综合在线观看| 亚洲国产成人av好男人在线观看| 欧美不卡视频一区| 91色在线porny| 久久精品国产99国产精品| 国产精品久久久久久一区二区三区 | 国产乱码精品一区二区三区av| 亚洲日本丝袜连裤袜办公室| 欧美军同video69gay| 国产成人精品一区二区三区网站观看| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 成人一道本在线| 婷婷综合另类小说色区| 国产精品私人自拍| 91精品国产综合久久久久久久 | 欧美精品久久一区二区三区| 成人午夜免费电影| 免费成人av在线播放| 亚洲精品综合在线| 久久网站最新地址| 欧美色倩网站大全免费| 成人a免费在线看| 激情偷乱视频一区二区三区| 亚洲二区在线观看| 日韩久久一区二区| 国产视频一区二区在线| 欧美一级黄色录像| 欧美伊人精品成人久久综合97| 国产成人av自拍| 精品一二三四在线| 日韩国产欧美三级| 一区二区欧美视频| 中文字幕一区二区三区不卡| 久久婷婷综合激情| 日韩情涩欧美日韩视频| 欧美日韩国产小视频| 91视频国产观看| 波多野结衣欧美| 国产精品一区在线| 经典三级视频一区| 免费看欧美美女黄的网站| 亚瑟在线精品视频| 亚洲激情图片一区| 国产精品久久一级| 国产精品乱子久久久久| 国产日韩欧美精品一区| www国产精品av| 精品国产一区二区三区四区四| 欧美一区二区播放| 这里是久久伊人| 91精品婷婷国产综合久久性色| 欧美日韩一区二区三区免费看| 色婷婷国产精品久久包臀| 色先锋资源久久综合| 日本丰满少妇一区二区三区| 色就色 综合激情| 91国偷自产一区二区使用方法| 一本色道久久综合精品竹菊|