APM:Libraries
usbd_msc_bot.h
Go to the documentation of this file.
1 
28 /* Define to prevent recursive inclusion -------------------------------------*/
29 
30 #include "usbd_core.h"
31 
32 /* Define to prevent recursive inclusion -------------------------------------*/
33 #ifndef __USBD_MSC_BOT_H
34 #define __USBD_MSC_BOT_H
35 
49  enum BOT_STATE {
50  BOT_IDLE = 0, /* Idle state */
51  BOT_DATA_OUT = 1, /* Data Out state */
52  BOT_DATA_IN = 2, /* Data In state */
53  BOT_LAST_DATA_IN = 3, /* Last Data In Last */
54  BOT_SEND_DATA = 4, /* Send Immediate data */
55 };
56 
57 #define BOT_CBW_SIGNATURE 0x43425355
58 #define BOT_CSW_SIGNATURE 0x53425355
59 #define BOT_CBW_LENGTH 31
60 #define BOT_CSW_LENGTH 13
61 
62 /* CSW Status Definitions */
63 #define CSW_CMD_PASSED 0x00
64 #define CSW_CMD_FAILED 0x01
65 #define CSW_PHASE_ERROR 0x02
66 
67 /* BOT Status */
68 #define BOT_STATE_NORMAL 0
69 #define BOT_STATE_RECOVERY 1
70 #define BOT_STATE_ERROR 2
71 
72 
73 #define DIR_IN 0
74 #define DIR_OUT 1
75 #define BOTH_DIR 2
76 
85 typedef struct _MSC_BOT_CBW
86 {
87  uint32_t dSignature;
88  uint32_t dTag;
89  uint32_t dDataLength;
90  uint8_t bmFlags;
91  uint8_t bLUN;
92  uint8_t bCBLength;
93  uint8_t CB[16];
94 }
96 
97 
98 typedef struct _MSC_BOT_CSW
99 {
100  uint32_t dSignature;
101  uint32_t dTag;
102  uint32_t dDataResidue;
103  uint8_t bStatus;
104 }
106 
116 extern uint8_t MSC_BOT_Data[];
117 extern uint16_t MSC_BOT_DataLen;
118 extern uint8_t MSC_BOT_State;
119 extern uint8_t MSC_BOT_BurstMode;
128 void MSC_BOT_Init (USB_OTG_CORE_HANDLE *pdev);
132  uint8_t epnum);
133 
135  uint8_t epnum);
136 
138  uint8_t CSW_Status);
139 
141  uint8_t epnum);
147 #endif /* __USBD_MSC_BOT_H */
148 
155 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
156 
uint32_t dDataResidue
Definition: usbd_msc_bot.h:102
uint32_t dSignature
Definition: usbd_msc_bot.h:87
void MSC_BOT_DeInit(USB_OTG_CORE_HANDLE *pdev)
MSC_BOT_DeInit Uninitialize the BOT Machine.
Definition: usbd_msc_bot.c:166
uint8_t MSC_BOT_Data[]
void MSC_BOT_CBW_finish(USB_OTG_CORE_HANDLE *pdev)
Definition: usbd_msc_bot.c:277
uint8_t bmFlags
Definition: usbd_msc_bot.h:90
uint32_t dTag
Definition: usbd_msc_bot.h:88
void MSC_BOT_Reset(USB_OTG_CORE_HANDLE *pdev)
MSC_BOT_Reset Reset the BOT Machine.
Definition: usbd_msc_bot.c:149
void MSC_BOT_SendCSW(USB_OTG_CORE_HANDLE *pdev, uint8_t CSW_Status)
MSC_BOT_SendCSW Send the Command Status Wrapper.
Definition: usbd_msc_bot.c:324
struct _MSC_BOT_CBW MSC_BOT_CBW_TypeDef
struct _MSC_BOT_CSW MSC_BOT_CSW_TypeDef
uint32_t dDataLength
Definition: usbd_msc_bot.h:89
uint8_t MSC_BOT_BurstMode
uint32_t dTag
Definition: usbd_msc_bot.h:101
uint8_t CB[16]
Definition: usbd_msc_bot.h:93
void MSC_BOT_DataIn(USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
MSC_BOT_DataIn Handle BOT IN data stage.
Definition: usbd_msc_bot.c:178
BOT_STATE
Definition: usbd_msc_bot.h:49
MSC_BOT_CBW_TypeDef MSC_BOT_cbw
uint8_t MSC_BOT_State
Definition: usbd_msc_bot.c:73
void MSC_BOT_CplClrFeature(USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
MSC_BOT_CplClrFeature Complete the clear feature request.
Definition: usbd_msc_bot.c:379
MSC_BOT_CSW_TypeDef MSC_BOT_csw
uint16_t MSC_BOT_DataLen
Definition: usbd_msc_bot.c:72
uint8_t bLUN
Definition: usbd_msc_bot.h:91
uint8_t bCBLength
Definition: usbd_msc_bot.h:92
uint8_t bStatus
Definition: usbd_msc_bot.h:103
uint32_t dSignature
Definition: usbd_msc_bot.h:100
Header file for usbd_core.c.
void MSC_BOT_Init(USB_OTG_CORE_HANDLE *pdev)
MSC_BOT_Init Initialize the BOT Process.
Definition: usbd_msc_bot.c:128
void MSC_BOT_DataOut(USB_OTG_CORE_HANDLE *pdev, uint8_t epnum)
MSC_BOT_DataOut Proccess MSC OUT data.
Definition: usbd_msc_bot.c:210