diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2012-05-20 17:09:39 +0000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2012-05-20 17:09:39 +0000 |
commit | 5833b27f80f4b6b10f5765468f5863e57b97a65a (patch) | |
tree | a8df9f72605f3f069fa42a67d35ba6874cc0144d /Projects/XPLAINBridge/XPLAINBridge.c | |
parent | 32cfb8cf4f56f45ddfc50a6b2803ac98496c2c0b (diff) | |
download | lufa-5833b27f80f4b6b10f5765468f5863e57b97a65a.tar.gz lufa-5833b27f80f4b6b10f5765468f5863e57b97a65a.tar.bz2 lufa-5833b27f80f4b6b10f5765468f5863e57b97a65a.zip |
Alter the XPLAINBridge and AVRISP-MKII clone projects so that the descriptors from the AVRISP-MKII clone project can be directly used in the XPLAINBridge project. Add support for RESET_TOGGLES_LIBUSB_COMPAT option in the XPLAINBridge project.
Diffstat (limited to 'Projects/XPLAINBridge/XPLAINBridge.c')
-rw-r--r-- | Projects/XPLAINBridge/XPLAINBridge.c | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c index 071c13e53..3bd1fbf55 100644 --- a/Projects/XPLAINBridge/XPLAINBridge.c +++ b/Projects/XPLAINBridge/XPLAINBridge.c @@ -176,11 +176,6 @@ void SetupHardware(void) /* Disable clock division */ clock_prescale_set(clock_div_1); - /* Hardware Initialization */ - SoftUART_Init(); - LEDs_Init(); - USB_Init(); - /* Disable JTAG debugging */ MCUCR |= (1 << JTD); MCUCR |= (1 << JTD); @@ -195,6 +190,16 @@ void SetupHardware(void) /* Re-enable JTAG debugging */ MCUCR &= ~(1 << JTD); MCUCR &= ~(1 << JTD); + + /* Hardware Initialization */ + SoftUART_Init(); + LEDs_Init(); + #if defined(RESET_TOGGLES_LIBUSB_COMPAT) + UpdateCurrentCompatibilityMode(); + #endif + + /* USB Stack Initialization */ + USB_Init(); } /** Event handler for the library USB Configuration Changed event. */ @@ -267,20 +272,22 @@ void EVENT_CDC_Device_LineEncodingChanged(USB_ClassInfo_CDC_Device_t* const CDCI * is called so that the descriptor details can be passed back and the appropriate descriptor sent back to the * USB host. * - * \param[in] wValue Descriptor type and index to retrieve - * \param[in] wIndex Sub-index to retrieve (such as a localized string language) - * \param[out] DescriptorAddress Address of the retrieved descriptor + * \param[in] wValue Descriptor type and index to retrieve + * \param[in] wIndex Sub-index to retrieve (such as a localized string language) + * \param[out] DescriptorAddress Address of the retrieved descriptor + * \param[out] DescriptorMemorySpace Memory space that the descriptor is stored in * * \return Length of the retrieved descriptor in bytes, or NO_DESCRIPTOR if the descriptor was not found */ uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, - const void** const DescriptorAddress) + const void** const DescriptorAddress, + uint8_t* const DescriptorMemorySpace) { /* Return the correct descriptors based on the selected mode */ if (CurrentFirmwareMode == MODE_USART_BRIDGE) - return USART_GetDescriptor(wValue, wIndex, DescriptorAddress); + return USART_GetDescriptor(wValue, wIndex, DescriptorAddress, DescriptorMemorySpace); else - return AVRISP_GetDescriptor(wValue, wIndex, DescriptorAddress); + return AVRISP_GetDescriptor(wValue, wIndex, DescriptorAddress, DescriptorMemorySpace); } |