123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /******************** (C) COPYRIGHT 2009 STMicroelectronics ********************
- * File Name : usb_bot.h
- * Author : MCD Application Team
- * Version : V3.1.0
- * Date : 10/30/2009
- * Description : BOT State Machine management
- ********************************************************************************
- * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
- * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
- * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
- * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
- * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
- * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
- *******************************************************************************/
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __USB_BOT_H
- #define __USB_BOT_H
- /* Includes ------------------------------------------------------------------*/
- /* Exported types ------------------------------------------------------------*/
- /* Bulk-only Command Block Wrapper */
- typedef struct _Bulk_Only_CBW
- {
- uint32_t dSignature;
- uint32_t dTag;
- uint32_t dDataLength;
- uint8_t bmFlags;
- uint8_t bLUN;
- uint8_t bCBLength;
- uint8_t CB[16];
- }
- Bulk_Only_CBW;
- /* Bulk-only Command Status Wrapper */
- typedef struct _Bulk_Only_CSW
- {
- uint32_t dSignature;
- uint32_t dTag;
- uint32_t dDataResidue;
- uint8_t bStatus;
- }
- Bulk_Only_CSW;
- /* Exported constants --------------------------------------------------------*/
- /*****************************************************************************/
- /*********************** Bulk-Only Transfer State machine ********************/
- /*****************************************************************************/
- #define BOT_IDLE 0 /* Idle state */
- #define BOT_DATA_OUT 1 /* Data Out state */
- #define BOT_DATA_IN 2 /* Data In state */
- #define BOT_DATA_IN_LAST 3 /* Last Data In Last */
- #define BOT_CSW_Send 4 /* Command Status Wrapper */
- #define BOT_ERROR 5 /* error state */
- #define BOT_CBW_SIGNATURE 0x43425355
- #define BOT_CSW_SIGNATURE 0x53425355
- #define BOT_CBW_PACKET_LENGTH 31
- #define CSW_DATA_LENGTH 0x000D
- /* CSW Status Definitions */
- #define CSW_CMD_PASSED 0x00
- #define CSW_CMD_FAILED 0x01
- #define CSW_PHASE_ERROR 0x02
- #define SEND_CSW_DISABLE 0
- #define SEND_CSW_ENABLE 1
- #define DIR_IN 0
- #define DIR_OUT 1
- #define BOTH_DIR 2
- /* Exported macro ------------------------------------------------------------*/
- /* Exported functions ------------------------------------------------------- */
- void Mass_Storage_In (void);
- void Mass_Storage_Out (void);
- void CBW_Decode(void);
- void Transfer_Data_Request(uint8_t* Data_Pointer, uint16_t Data_Len);
- void Set_CSW (uint8_t CSW_Status, uint8_t Send_Permission);
- void Bot_Abort(uint8_t Direction);
- #endif /* __USB_BOT_H */
- /******************* (C) COPYRIGHT 2009 STMicroelectronics *****END OF FILE****/
|