Add USB_FLASH_DRIVE_SUPPORT
This commit is contained in:
committed by
Scott Lahteine
parent
07fe8d28be
commit
2067619a26
187
Marlin/src/sd/usb_flashdrive/usb-2.0-host-library-changes.patch
Normal file
187
Marlin/src/sd/usb_flashdrive/usb-2.0-host-library-changes.patch
Normal file
@@ -0,0 +1,187 @@
|
||||
diff -Naur /home/aleph/Downloads/USB_Host_Shield_2.0-master/masstorage.cpp lib/masstorage.cpp
|
||||
--- /home/aleph/Downloads/USB_Host_Shield_2.0-master/masstorage.cpp 2018-09-21 10:19:36.107502252 -0600
|
||||
+++ lib/masstorage.cpp 2018-09-21 09:46:19.620175519 -0600
|
||||
@@ -24,6 +24,8 @@
|
||||
|
||||
#include "masstorage.h"
|
||||
|
||||
+#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
||||
+
|
||||
const uint8_t BulkOnly::epDataInIndex = 1;
|
||||
const uint8_t BulkOnly::epDataOutIndex = 2;
|
||||
const uint8_t BulkOnly::epInterruptInIndex = 3;
|
||||
@@ -796,6 +798,9 @@
|
||||
buf[i] = 0x00;
|
||||
}
|
||||
WriteOk[lun] = true;
|
||||
+ #if ENABLED(USB_FLASH_DRIVE_SUPPORT) && defined(SKIP_WRITE_PROTECT)
|
||||
+ return 0;
|
||||
+ #endif
|
||||
uint8_t rc = ModeSense6(lun, 0, 0x3f, 0, 192, buf);
|
||||
if(!rc) {
|
||||
WriteOk[lun] = ((buf[2] & 0x80) == 0);
|
||||
@@ -1271,3 +1276,5 @@
|
||||
return MASS_ERR_NOT_IMPLEMENTED;
|
||||
#endif
|
||||
}
|
||||
+
|
||||
+#endif // USB_FLASH_DRIVE_SUPPORT
|
||||
\ No newline at end of file
|
||||
diff -Naur /home/aleph/Downloads/USB_Host_Shield_2.0-master/message.cpp lib/message.cpp
|
||||
--- /home/aleph/Downloads/USB_Host_Shield_2.0-master/message.cpp 2018-09-21 10:20:15.995647957 -0600
|
||||
+++ lib/message.cpp 2018-09-19 07:43:46.520339375 -0600
|
||||
@@ -23,6 +23,9 @@
|
||||
*/
|
||||
|
||||
#include "Usb.h"
|
||||
+
|
||||
+#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
||||
+
|
||||
// 0x80 is the default (i.e. trace) to turn off set this global to something lower.
|
||||
// this allows for 126 other debugging levels.
|
||||
// TO-DO: Allow assignment to a different serial port by software
|
||||
@@ -120,4 +123,6 @@
|
||||
D_PrintHex<uint8_t > (rcode, 0x80);
|
||||
Notify(PSTR("\r\n"), 0x80);
|
||||
}
|
||||
-#endif
|
||||
+#endif // DEBUG_USB_HOST
|
||||
+
|
||||
+#endif // USB_FLASH_DRIVE_SUPPORT
|
||||
\ No newline at end of file
|
||||
diff -Naur /home/aleph/Downloads/USB_Host_Shield_2.0-master/parsetools.cpp lib/parsetools.cpp
|
||||
--- /home/aleph/Downloads/USB_Host_Shield_2.0-master/parsetools.cpp 2018-09-21 10:21:16.215867769 -0600
|
||||
+++ lib/parsetools.cpp 2018-09-19 07:43:46.520339375 -0600
|
||||
@@ -23,6 +23,8 @@
|
||||
*/
|
||||
#include "Usb.h"
|
||||
|
||||
+#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
||||
+
|
||||
bool MultiByteValueParser::Parse(uint8_t **pp, uint16_t *pcntdn) {
|
||||
if(!pBuf) {
|
||||
Notify(PSTR("Buffer pointer is NULL!\r\n"), 0x80);
|
||||
@@ -72,3 +74,5 @@
|
||||
}
|
||||
return true;
|
||||
}
|
||||
+
|
||||
+#endif // USB_FLASH_DRIVE_SUPPORT
|
||||
\ No newline at end of file
|
||||
diff -Naur /home/aleph/Downloads/USB_Host_Shield_2.0-master/settings.h lib/settings.h
|
||||
--- /home/aleph/Downloads/USB_Host_Shield_2.0-master/settings.h 2018-09-21 10:22:21.792106872 -0600
|
||||
+++ lib/settings.h 2018-09-21 10:01:53.383594081 -0600
|
||||
@@ -25,7 +25,21 @@
|
||||
#ifndef USB_HOST_SHIELD_SETTINGS_H
|
||||
#define USB_HOST_SHIELD_SETTINGS_H
|
||||
#include "macros.h"
|
||||
-
|
||||
+#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
||||
+ ////////////////////////////////////////////////////////////////////////////////
|
||||
+ /* Added by Bill Greiman to speed up mass storage initialization with USB
|
||||
+ * flash drives and simple USB hard drives.
|
||||
+ * Disable this by defining DELAY(x) to be delay(x).
|
||||
+ */
|
||||
+ #define delay(x) if((x) < 200) safe_delay(x)
|
||||
+ /* Almost all USB flash drives and simple USB hard drives fail the write
|
||||
+ * protect test and add 20 - 30 seconds to USB init. Set SKIP_WRITE_PROTECT
|
||||
+ * to nonzero to skip the test and assume the drive is writable.
|
||||
+ */
|
||||
+ #define SKIP_WRITE_PROTECT 1
|
||||
+ /* Since Marlin only cares about USB flash drives, we only need one LUN. */
|
||||
+ #define MASS_MAX_SUPPORTED_LUN 1
|
||||
+#endif
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// SPI Configuration
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -45,6 +59,10 @@
|
||||
* multiple serial ports are available.
|
||||
* For example Serial3.
|
||||
*/
|
||||
+#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
||||
+ #define USB_HOST_SERIAL MYSERIAL0
|
||||
+#endif
|
||||
+
|
||||
#ifndef USB_HOST_SERIAL
|
||||
#define USB_HOST_SERIAL Serial
|
||||
#endif
|
||||
@@ -99,7 +117,7 @@
|
||||
// No user serviceable parts below this line.
|
||||
// DO NOT change anything below here unless you are a developer!
|
||||
|
||||
-#include "version_helper.h"
|
||||
+//#include "version_helper.h"
|
||||
|
||||
#if defined(__GNUC__) && defined(__AVR__)
|
||||
#ifndef GCC_VERSION
|
||||
@@ -149,7 +167,6 @@
|
||||
#else
|
||||
#define USING_SPI4TEENSY3 0
|
||||
#endif
|
||||
-
|
||||
#if ((defined(ARDUINO_SAM_DUE) && defined(__SAM3X8E__)) || defined(__ARDUINO_X86__) || ARDUINO >= 10600) && !USING_SPI4TEENSY3
|
||||
#include <SPI.h> // Use the Arduino SPI library for the Arduino Due, Intel Galileo 1 & 2, Intel Edison or if the SPI library with transaction is available
|
||||
#endif
|
||||
diff -Naur /home/aleph/Downloads/USB_Host_Shield_2.0-master/UsbCore.h lib/UsbCore.h
|
||||
--- /home/aleph/Downloads/USB_Host_Shield_2.0-master/UsbCore.h 2018-09-21 10:23:09.348280107 -0600
|
||||
+++ lib/UsbCore.h 2018-09-19 07:43:46.520339375 -0600
|
||||
@@ -32,7 +32,10 @@
|
||||
//#define USB_METHODS_INLINE
|
||||
|
||||
/* shield pins. First parameter - SS pin, second parameter - INT pin */
|
||||
-#ifdef BOARD_BLACK_WIDDOW
|
||||
+
|
||||
+#if defined(__MARLIN_H__)
|
||||
+typedef MAX3421e MAX3421E; // Marlin redefines this class in "../usb_host.h"
|
||||
+#elif defined(BOARD_BLACK_WIDDOW)
|
||||
typedef MAX3421e<P6, P3> MAX3421E; // Black Widow
|
||||
#elif defined(CORE_TEENSY) && (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB1286__))
|
||||
#if EXT_RAM
|
||||
diff -Naur /home/aleph/Downloads/USB_Host_Shield_2.0-master/Usb.cpp lib/Usb.cpp
|
||||
--- /home/aleph/Downloads/USB_Host_Shield_2.0-master/Usb.cpp 2018-09-21 10:23:20.732321559 -0600
|
||||
+++ lib/Usb.cpp 2018-09-19 07:43:46.520339375 -0600
|
||||
@@ -25,6 +25,8 @@
|
||||
|
||||
#include "Usb.h"
|
||||
|
||||
+#if ENABLED(USB_FLASH_DRIVE_SUPPORT)
|
||||
+
|
||||
static uint8_t usb_error = 0;
|
||||
static uint8_t usb_task_state;
|
||||
|
||||
@@ -825,3 +827,4 @@
|
||||
}
|
||||
|
||||
#endif // defined(USB_METHODS_INLINE)
|
||||
+#endif // USB_FLASH_DRIVE_SUPPORT
|
||||
diff -Naur /home/aleph/Downloads/USB_Host_Shield_2.0-master/Usb.h lib/Usb.h
|
||||
--- /home/aleph/Downloads/USB_Host_Shield_2.0-master/Usb.h 2018-09-21 10:23:33.756368972 -0600
|
||||
+++ lib/Usb.h 2018-09-19 07:43:46.520339375 -0600
|
||||
@@ -25,6 +25,8 @@
|
||||
#ifndef _usb_h_
|
||||
#define _usb_h_
|
||||
|
||||
+#include "../../../Marlin.h"
|
||||
+
|
||||
// WARNING: Do not change the order of includes, or stuff will break!
|
||||
#include <inttypes.h>
|
||||
#include <stddef.h>
|
||||
@@ -34,13 +36,15 @@
|
||||
#include "settings.h"
|
||||
#include "printhex.h"
|
||||
#include "message.h"
|
||||
+
|
||||
#include "hexdump.h"
|
||||
-#include "sink_parser.h"
|
||||
+//#include "sink_parser.h"
|
||||
#include "max3421e.h"
|
||||
#include "address.h"
|
||||
-#include "avrpins.h"
|
||||
+//#include "avrpins.h"
|
||||
#include "usb_ch9.h"
|
||||
-#include "usbhost.h"
|
||||
+//#include "usbhost.h"
|
||||
+#include "../usb_host.h"
|
||||
#include "UsbCore.h"
|
||||
#include "parsetools.h"
|
||||
#include "confdescparser.h"
|
||||
Reference in New Issue
Block a user