Skip to content
Snippets Groups Projects
Commit 82fa9149 authored by Dean Camera's avatar Dean Camera
Browse files

Fixed broken DFU bootloader, added XPLAIN support for bootloader start when XCK jumpered to ground.

parent 7704d291
Branches
Tags
No related merge requests found
......@@ -102,6 +102,23 @@ int main(void)
/* Configure hardware required by the bootloader */
SetupHardware();
#if ((BOARD == BOARD_XPLAIN) || (BOARD == BOARD_XPLAIN_REV1))
/* Disable JTAG debugging */
MCUCR |= (1 << JTD);
MCUCR |= (1 << JTD);
/* Enable pull-up on the JTAG TCK pin so we can use it to select the mode */
PORTF |= (1 << 4);
_delay_ms(10);
/* If the TCK pin is not jumpered to ground, start the user application instead */
RunBootloader = (!(PINF & (1 << 4)));
/* Re-enable JTAG debugging */
MCUCR &= ~(1 << JTD);
MCUCR &= ~(1 << JTD);
#endif
/* Enable global interrupts so that the USB stack can function */
sei();
......@@ -154,6 +171,13 @@ void EVENT_USB_Device_ControlRequest(void)
/* Get the size of the command and data from the wLength value */
SentCommand.DataSize = USB_ControlRequest.wLength;
/* Ignore any requests that aren't directed to the DFU interface */
if ((USB_ControlRequest.bmRequestType & (CONTROL_REQTYPE_TYPE | CONTROL_REQTYPE_RECIPIENT)) !=
(REQTYPE_CLASS | REQREC_INTERFACE))
{
return;
}
switch (USB_ControlRequest.bRequest)
{
case REQ_DFU_DNLOAD:
......
......@@ -44,6 +44,7 @@
#include <avr/eeprom.h>
#include <avr/power.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdbool.h>
#include "Descriptors.h"
......
......@@ -26,6 +26,7 @@
* - None
* - Library Applications:
* - Fixed Benito project discarding incoming data from the USB virtual serial port when the USART is busy
* - Fixed broken DFU bootloader, added XPLAIN support for bootloader start when XCK jumpered to ground
*
* \section Sec_ChangeLog101122 Version 101122
* <b>New:</b>
......
......@@ -41,6 +41,7 @@
#include <avr/wdt.h>
#include <avr/power.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include "AVRISPDescriptors.h"
#include "USARTDescriptors.h"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment