Fixed broken USB_GetNextDescriptor() function causing the descriptor to jump ahead double the expected amount.

Fixed Pipe_IsEndpointBound() not masking the given Endpoint Address against PIPE_EPNUM_MASK.
pull/1469/head
Dean Camera 15 years ago
parent 702bec892d
commit e4bf986bb3

@ -90,8 +90,8 @@
/** Initializes the temperature sensor driver, including setting up the appropriate ADC channel. /** Initializes the temperature sensor driver, including setting up the appropriate ADC channel.
* This must be called before any other temperature sensor routines. * This must be called before any other temperature sensor routines.
* *
* The ADC itself (not the ADC channel) must be configured separately before calling the temperature * \note The ADC itself (not the ADC channel) must be configured separately before calling the
* sensor functions. * temperature sensor functions.
*/ */
static inline void Temperature_Init(void); static inline void Temperature_Init(void);
#else #else

@ -109,7 +109,7 @@
* *
* \see \ref USB_GetNextDescriptorComp function for more details * \see \ref USB_GetNextDescriptorComp function for more details
*/ */
typedef uint8_t (* const ConfigComparatorPtr_t)(void* const); typedef uint8_t (* const ConfigComparatorPtr_t)(void*);
/* Function Prototypes: */ /* Function Prototypes: */
/** Searches for the next descriptor in the given configuration descriptor using a premade comparator /** Searches for the next descriptor in the given configuration descriptor using a premade comparator
@ -263,8 +263,8 @@
{ {
uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size; uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size;
*((uint8_t**)CurrConfigLoc) += CurrDescriptorSize; *CurrConfigLoc += CurrDescriptorSize;
*BytesRem -= CurrDescriptorSize; *BytesRem -= CurrDescriptorSize;
} }
/* Disable C linkage for C++ Compilers: */ /* Disable C linkage for C++ Compilers: */

@ -78,7 +78,7 @@ bool Pipe_IsEndpointBound(const uint8_t EndpointAddress)
{ {
Pipe_SelectPipe(PNum); Pipe_SelectPipe(PNum);
if (Pipe_IsConfigured() && (Pipe_BoundEndpointNumber() == EndpointAddress)) if (Pipe_IsConfigured() && (Pipe_BoundEndpointNumber() == (EndpointAddress & PIPE_EPNUM_MASK)))
return true; return true;
} }

@ -25,6 +25,8 @@
* - Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver * - Added missing CDC_Host_CreateBlockingStream() function code to the CDC Host Class driver
* - Fixed incorrect values for REPORT_ITEM_TYPE_* enum values causing corrupt data in the HID Host Parser * - Fixed incorrect values for REPORT_ITEM_TYPE_* enum values causing corrupt data in the HID Host Parser
* - Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions * - Fixed misnamed SI_Host_USBTask() and SI_Host_ConfigurePipes() functions
* - Fixed broken USB_GetNextDescriptor() function causing the descriptor to jump ahead double the expected amount
* - Fixed Pipe_IsEndpointBound() not masking the given Endpoint Address against PIPE_EPNUM_MASK
* *
* \section Sec_ChangeLog091122 Version 091122 * \section Sec_ChangeLog091122 Version 091122
* *

Loading…
Cancel
Save