Browse Source
Merge pull request #10063 from ejtagle/bugfix-2.0.x
[2.0.x] DUE - add programming capability to native port
pull/1/head
Bob-the-Kuhn
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with
17 additions and
3 deletions
-
Marlin/src/HAL/HAL_DUE/usb/usb_task.c
|
|
@ -48,6 +48,7 @@ |
|
|
|
#include "conf_usb.h" |
|
|
|
#include "udc.h" |
|
|
|
#include <Arduino.h> |
|
|
|
#include <Reset.h> |
|
|
|
|
|
|
|
static volatile bool main_b_msc_enable = false; |
|
|
|
static volatile bool main_b_cdc_enable = false; |
|
|
@ -80,11 +81,24 @@ void usb_task_cdc_rx_notify(const uint8_t port) { } |
|
|
|
* |
|
|
|
* \param cfg line configuration |
|
|
|
*/ |
|
|
|
void usb_task_cdc_config(const uint8_t port, usb_cdc_line_coding_t *cfg) { } |
|
|
|
static uint16_t dwDTERate = 0; |
|
|
|
void usb_task_cdc_config(const uint8_t port, usb_cdc_line_coding_t *cfg) { |
|
|
|
// Store last DTE rate
|
|
|
|
dwDTERate = cfg->dwDTERate; |
|
|
|
} |
|
|
|
|
|
|
|
void usb_task_cdc_set_dtr(const uint8_t port, const bool b_enable) { |
|
|
|
if (b_enable) { |
|
|
|
} else { |
|
|
|
// Implement Arduino-Compatible kludge to enter programming mode from
|
|
|
|
// the native port:
|
|
|
|
// "Auto-reset into the bootloader is triggered when the port, already
|
|
|
|
// open at 1200 bps, is closed."
|
|
|
|
|
|
|
|
if (1200 == dwDTERate) { |
|
|
|
// We check DTR state to determine if host port is open (bit 0 of lineState).
|
|
|
|
if (!b_enable) |
|
|
|
initiateReset(250); |
|
|
|
else |
|
|
|
cancelReset(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|