@ -57,54 +57,49 @@ bool Pipe_ConfigurePipe(const uint8_t Number,
return Pipe_IsConfigured ( ) ;
return Pipe_IsConfigured ( ) ;
# else
# else
uint8_t UPCFG0XTemp [ PIPE_TOTAL_PIPES ] ;
for ( uint8_t PNum = Number ; PNum < PIPE_TOTAL_PIPES ; PNum + + )
uint8_t UPCFG1XTemp [ PIPE_TOTAL_PIPES ] ;
uint8_t UPCFG2XTemp [ PIPE_TOTAL_PIPES ] ;
uint8_t UPCONXTemp [ PIPE_TOTAL_PIPES ] ;
uint8_t UPINRQXTemp [ PIPE_TOTAL_PIPES ] ;
uint8_t UPIENXTemp [ PIPE_TOTAL_PIPES ] ;
for ( uint8_t PNum = 0 ; PNum < PIPE_TOTAL_PIPES ; PNum + + )
{
{
Pipe_SelectPipe ( PNum ) ;
uint8_t UPCFG0XTemp ;
UPCFG0XTemp [ PNum ] = UPCFG0X ;
uint8_t UPCFG1XTemp ;
UPCFG1XTemp [ PNum ] = UPCFG1X ;
uint8_t UPCFG2XTemp ;
UPCFG2XTemp [ PNum ] = UPCFG2X ;
uint8_t UPCONXTemp ;
UPCONXTemp [ PNum ] = UPCONX ;
uint8_t UPINRQXTemp ;
UPINRQXTemp [ PNum ] = UPINRQX ;
uint8_t UPIENXTemp ;
UPIENXTemp [ PNum ] = UPIENX ;
}
UPCFG0XTemp [ Number ] = ( ( Type < < EPTYPE0 ) | Token | ( ( EndpointNumber & PIPE_EPNUM_MASK ) < < PEPNUM0 ) ) ;
UPCFG1XTemp [ Number ] = ( ( 1 < < ALLOC ) | Banks | Pipe_BytesToEPSizeMask ( Size ) ) ;
UPCFG2XTemp [ Number ] = 0 ;
UPCONXTemp [ Number ] = ( 1 < < INMODE ) ;
UPINRQXTemp [ Number ] = 0 ;
UPIENXTemp [ Number ] = 0 ;
for ( uint8_t PNum = 0 ; PNum < PIPE_TOTAL_PIPES ; PNum + + )
{
Pipe_SelectPipe ( PNum ) ;
Pipe_SelectPipe ( PNum ) ;
UPIENX = 0 ;
UPINTX = 0 ;
UPCFG1X = 0 ;
Pipe_DisablePipe ( ) ;
}
for ( uint8_t PNum = 0 ; PNum < PIPE_TOTAL_PIPES ; PNum + + )
if ( PNum = = Number )
{
{
if ( ! ( UPCFG1XTemp [ PNum ] & ( 1 < < ALLOC ) ) )
UPCFG0XTemp = ( ( Type < < EPTYPE0 ) | Token | ( ( EndpointNumber & PIPE_EPNUM_MASK ) < < PEPNUM0 ) ) ;
UPCFG1XTemp = ( ( 1 < < ALLOC ) | Banks | Pipe_BytesToEPSizeMask ( Size ) ) ;
UPCFG2XTemp = 0 ;
UPCONXTemp = ( ( 1 < < PEN ) | ( 1 < < INMODE ) ) ;
UPINRQXTemp = 0 ;
UPIENXTemp = 0 ;
}
else
{
UPCFG0XTemp = UPCFG0X ;
UPCFG1XTemp = UPCFG1X ;
UPCFG2XTemp = UPCFG2X ;
UPCONXTemp = UPCONX ;
UPINRQXTemp = UPINRQX ;
UPIENXTemp = UPIENX ;
}
if ( ! ( UPCFG1XTemp & ( 1 < < ALLOC ) ) )
continue ;
continue ;
Pipe_SelectPipe ( PNum ) ;
Pipe_ DisablePipe( ) ;
Pipe_EnablePipe ( ) ;
UPCFG1X & = ( 1 < < ALLOC ) ;
UPCFG0X = UPCFG0XTemp [ PNum ] ;
Pipe_EnablePipe ( ) ;
UPCFG1X = UPCFG1XTemp [ PNum ] ;
UPCFG0X = UPCFG0XTemp ;
UPCFG2X = UPCFG2XTemp [ PNum ] ;
UPCFG1X = UPCFG1XTemp ;
UPCONX | = UPCONXTemp [ PNum ] ;
UPCFG2X = UPCFG2XTemp ;
UPINRQX = UPINRQXTemp [ PNum ] ;
UPCONX = UPCONXTemp ;
UPIENX = UPIENXTemp [ PNum ] ;
UPINRQX = UPINRQXTemp ;
UPIENX = UPIENXTemp ;
if ( ! ( Pipe_IsConfigured ( ) ) )
if ( ! ( Pipe_IsConfigured ( ) ) )
return false ;
return false ;