⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 standard.h

📁 AT91系列芯片的USB虚拟串口的源代码
💻 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 disclaiimer 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.
 * ----------------------------------------------------------------------------
 */

/*
$Id: standard.h 108 2006-10-16 08:33:33Z jjoannic $
*/

#ifndef _STANDARD_H
#define _STANDARD_H

//! \brief Useful constants wDeviceStatus
//! \see S_std_class
//! \see usb_20.pdf - Section 9.4.5 - Figure 9-4
//! @{

//! \name wDeviceStatus
//! Information Returned by a GetStatus() Request to a Device.
//! @{

//! \brief 
#define SELF_POWERED              (1<<0)

//! \brief 
#define REMOTE_WAKEUP             (1<<1)

//! @}
//! @}

//------------------------------------------------------------------------------
//      Structures
//------------------------------------------------------------------------------

//! \ingroup usb_std_req_hlr
//! \brief   List of standard descriptors used by the device
typedef struct  {

    //! Device descriptor
    const S_usb_device_descriptor           *pDevice;
    //! Configuration descriptor
    const S_usb_configuration_descriptor    *pConfiguration;
    //! List of string descriptors
    const char                              **pStrings;
    //! List of endpoint descriptors
    const S_usb_endpoint_descriptor         **pEndpoints;
#if defined(HIGHSPEED)
    //! Qualifier descriptor (high-speed only)
    const S_usb_device_qualifier_descriptor *pQualifier;
    //! Other speed configuration descriptor (high-speed only)
    const S_usb_configuration_descriptor    *pOtherSpeedConfiguration;
#endif

} S_std_descriptors;

//! \ingroup usb_std_req_hlr
//! \brief   Standard USB class driver structure.
//!
//!          Used to provide standard driver information so external modules can
//!          still access an internal driver.
typedef struct {

    //! Pointer to a S_usb instance
    const S_usb             *pUsb;
    //! Pointer to the list of descriptors used by the device
    const S_std_descriptors *pDescriptors;
    //! Data buffer used for information returned by a GetStatus() request to
    //! a Device (Figure 9-4. in usb_20.pdf)
    unsigned short           wDeviceStatus;
    //! Data buffer
    unsigned short           wData;

} S_std_class;

//------------------------------------------------------------------------------
//      Exported symbols
//------------------------------------------------------------------------------

extern void STD_RequestHandler(S_std_class *pClass);

#endif // _STANDARD_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -