Added new RNDISHost Host LowLevel demo. Fixed misnamed Pipe_SetPipeToken() macro for setting a pipe's direction. Fixed CDCHost failing on devices with bidirectional endpoints.

This commit is contained in:
Dean Camera 2009-11-25 03:26:57 +00:00
parent c05c7c7df4
commit 8c6c27d88b
26 changed files with 1746 additions and 76 deletions

View file

@ -48,7 +48,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
if ((ReturnStatus = USB_Host_WaitMS(1)) != HOST_WAITERROR_Successful)
goto End_Of_Control_Send;
Pipe_SetToken(PIPE_TOKEN_SETUP);
Pipe_SetPipeToken(PIPE_TOKEN_SETUP);
Pipe_ClearErrorFlags();
Pipe_Unfreeze();
@ -68,7 +68,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
if ((USB_ControlRequest.bmRequestType & CONTROL_REQTYPE_DIRECTION) == REQDIR_DEVICETOHOST)
{
Pipe_SetToken(PIPE_TOKEN_IN);
Pipe_SetPipeToken(PIPE_TOKEN_IN);
if (DataStream != NULL)
{
@ -93,7 +93,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
}
}
Pipe_SetToken(PIPE_TOKEN_OUT);
Pipe_SetPipeToken(PIPE_TOKEN_OUT);
Pipe_Unfreeze();
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_OutReady)) != HOST_SENDCONTROL_Successful)
@ -108,7 +108,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
{
if (DataStream != NULL)
{
Pipe_SetToken(PIPE_TOKEN_OUT);
Pipe_SetPipeToken(PIPE_TOKEN_OUT);
Pipe_Unfreeze();
while (DataLen)
@ -131,7 +131,7 @@ uint8_t USB_Host_SendControlRequest(void* BufferPtr)
Pipe_Freeze();
}
Pipe_SetToken(PIPE_TOKEN_IN);
Pipe_SetPipeToken(PIPE_TOKEN_IN);
Pipe_Unfreeze();
if ((ReturnStatus = USB_Host_WaitForIOS(USB_HOST_WAITFOR_InReceived)) != HOST_SENDCONTROL_Successful)

View file

@ -130,7 +130,7 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
{
uint8_t ErrorCode;
Pipe_SetToken(PIPE_TOKEN_IN);
Pipe_SetPipeToken(PIPE_TOKEN_IN);
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;

View file

@ -432,7 +432,7 @@
#define Pipe_GetPipeToken() (UPCFG0X & PIPE_TOKEN_MASK)
#define Pipe_SetToken(token) MACROS{ UPCFG0X = ((UPCFG0X & ~PIPE_TOKEN_MASK) | (token)); }MACROE
#define Pipe_SetPipeToken(token) MACROS{ UPCFG0X = ((UPCFG0X & ~PIPE_TOKEN_MASK) | (token)); }MACROE
#define Pipe_SetInfiniteINRequests() MACROS{ UPCONX |= (1 << INMODE); }MACROE

View file

@ -3,7 +3,7 @@ uint8_t TEMPLATE_FUNC_NAME (TEMPLATE_BUFFER_TYPE Buffer, uint16_t Length __CALLB
uint8_t* DataStream = ((uint8_t*)Buffer + TEMPLATE_BUFFER_OFFSET(Length));
uint8_t ErrorCode;
Pipe_SetToken(TEMPLATE_TOKEN);
Pipe_SetPipeToken(TEMPLATE_TOKEN);
if ((ErrorCode = Pipe_WaitUntilReady()))
return ErrorCode;