The FAST_STREAM_TRANSFERS compile time option has been removed due to lack of use and low cost/benefit ratio.
Add GCC_FORCE_POINTER_ACCESS() macro use to the RingBuffer library header, to attempt to force GCC into producing more efficient code for manipulating the buffers.
This commit is contained in:
parent
1c74fd78bd
commit
d126146887
8 changed files with 17 additions and 173 deletions
|
@ -45,46 +45,6 @@ uint8_t Pipe_Discard_Stream(uint16_t Length
|
|||
if ((ErrorCode = Pipe_WaitUntilReady()))
|
||||
return ErrorCode;
|
||||
|
||||
#if defined(FAST_STREAM_TRANSFERS)
|
||||
uint8_t BytesRemToAlignment = (Pipe_BytesInPipe() & 0x07);
|
||||
|
||||
if (Length >= 8)
|
||||
{
|
||||
Length -= BytesRemToAlignment;
|
||||
|
||||
switch (BytesRemToAlignment)
|
||||
{
|
||||
default:
|
||||
do
|
||||
{
|
||||
if (!(Pipe_IsReadWriteAllowed()))
|
||||
{
|
||||
Pipe_ClearIN();
|
||||
|
||||
#if !defined(NO_STREAM_CALLBACKS)
|
||||
if ((Callback != NULL) && (Callback() == STREAMCALLBACK_Abort))
|
||||
return PIPE_RWSTREAM_CallbackAborted;
|
||||
#endif
|
||||
|
||||
if ((ErrorCode = Pipe_WaitUntilReady()))
|
||||
return ErrorCode;
|
||||
}
|
||||
|
||||
Length -= 8;
|
||||
|
||||
Pipe_Discard_Byte();
|
||||
case 7: Pipe_Discard_Byte();
|
||||
case 6: Pipe_Discard_Byte();
|
||||
case 5: Pipe_Discard_Byte();
|
||||
case 4: Pipe_Discard_Byte();
|
||||
case 3: Pipe_Discard_Byte();
|
||||
case 2: Pipe_Discard_Byte();
|
||||
case 1: Pipe_Discard_Byte();
|
||||
} while (Length >= 8);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
while (Length)
|
||||
{
|
||||
if (!(Pipe_IsReadWriteAllowed()))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue