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

📄 ms_bot.h

📁 ATMEL ARM7 虚拟优盘
💻 H
字号:
//  ----------------------------------------------------------------------------
//          ATMEL Microcontroller Software Support  -  ROUSSET  -
//  ----------------------------------------------------------------------------
//  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.
//  ----------------------------------------------------------------------------
// File Name           : ms_bot.h
// Object              : bot commandes  (usbmassbulk_10.pdf)
// Creation            : JCB 15/apr/2005
// Modif               :
// ----------------------------------------------------------------------------
#ifndef _USBMS_BOT_H_
#define _USBMS_BOT_H_


/* Table 5.1 - Command Block Wrapper */
// The CBW shall start on a packet boundary and shall end as a
// short packet with exactly 31 (1Fh) bytes transferred.
#define CBW_SIZE         31
#define CBW_SIGNATURE    0x43425355
typedef struct
{
  UCHAR dCBWSignature_0;          /* 0x55 'U' Must be 0x43425355  */
  UCHAR dCBWSignature_1;          /* 0x53 'S' */
  UCHAR dCBWSignature_2;          /* 0x42 'B' */
  UCHAR dCBWSignature_3;          /* 0x43 'C' */
  UCHAR dCBWTag_0;                /* Must be the same as dCSWTag */
  UCHAR dCBWTag_1;
  UCHAR dCBWTag_2;
  UCHAR dCBWTag_3;
  UCHAR dCBWDataTransferLength_0; /* Number of bytes transfer */
  UCHAR dCBWDataTransferLength_1;
  UCHAR dCBWDataTransferLength_2;
  UCHAR dCBWDataTransferLength_3;
  UCHAR bmCBWFlags;               /* indicates the directin of the transfer : 
                                   * 0x80 : IN (device to host)
                                   * 0x00 : OUT (host to device) */
  UCHAR bCBWLUN;                  /* bits 0->3: bCBWLUN      */
  UCHAR bCBWCBLength;             /* bits 0->4: bCBWCBLength */
  UCHAR CBWCB[16];                /* the command bmock to be executed by the device */
}USBMS_CBW;


/* Table 5.2 Command Status Wrapper (CSW) */
#define CSW_SIGNATURE    0x53425355
typedef struct
{
  UCHAR dCSWSignature_0;      /* 0x55 'U'  Must be 0x53425355 */
  UCHAR dCSWSignature_1;      /* 0x53 'S' */
  UCHAR dCSWSignature_2;      /* 0x42 'B' */
  UCHAR dCSWSignature_3;      /* 0x53 'S' */
  UCHAR dCSWTag_0;            /* Must be the same as dCBWTag */
  UCHAR dCSWTag_1;
  UCHAR dCSWTag_2;
  UCHAR dCSWTag_3;
  UCHAR dCSWDataResidue_0;    /* set to the difference between the amount of data expected */
  UCHAR dCSWDataResidue_1;    /* to be processed and the amount of data actually processed */
  UCHAR dCSWDataResidue_2;
  UCHAR dCSWDataResidue_3;
  UCHAR bCSWStatus;           /* Status odf the the operation, defined by thje COMMAND_BLOCK_STATUS enum */
}USBMS_CSW;

/* Table 5.3 - Command Block Status Values */
typedef enum
{
  GOOD_STATUS,         /* 00h Command Passed ("good status") */
  COMMAND_FAILED,      /* 01h Command Failed */
  PHASE_ERROR          /* 01h Command Failed */
}COMMAND_BLOCK_STATUS;

#ifdef ADS_COMPIL
extern void ms_usbEvent( UCHAR eventMask );
#else
extern __ramfunc void ms_usbEvent( UCHAR eventMask );
#endif
extern void ms_sendComplete( void );
extern void ms_dataReceived( void );
extern void ms_stallPipe( EPx ep );
extern void ms_sendTx( void );
extern void ms_computeCSW( COMMAND_BLOCK_STATUS command_block_status, ULONG data_residue );
extern void ms_send_bot_status( COMMAND_BLOCK_STATUS command_block_status, ULONG data_residue );
extern void ms_plugInit( void );
extern void ms_initAutomat( void );
extern USBMS_RETURN ms_classRequest( FW_DEVICE_REQUEST commandBuff, UCHAR *databuff, UCHAR *datasize);

#endif /* _USBMS_BOT_H_ */


⌨️ 快捷键说明

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