Option to ignore SD at startup (#20099)

Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
Hebezo 2020-11-11 22:16:19 +01:00 committed by GitHub
parent ddc23c6224
commit 6ccb4b93b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 7 deletions

View file

@ -1172,6 +1172,7 @@
// Enable this option and set to HIGH if your SD cards are incorrectly detected. // Enable this option and set to HIGH if your SD cards are incorrectly detected.
//#define SD_DETECT_STATE HIGH //#define SD_DETECT_STATE HIGH
//#define SD_IGNORE_AT_STARTUP // Don't mount the SD card when starting up
//#define SDCARD_READONLY // Read-only SD card (to save over 2K of flash) //#define SDCARD_READONLY // Read-only SD card (to save over 2K of flash)
#define SD_PROCEDURE_DEPTH 1 // Increase if you need more nested M32 calls #define SD_PROCEDURE_DEPTH 1 // Increase if you need more nested M32 calls

View file

@ -582,6 +582,11 @@
/** /**
* Serial * Serial
*/ */
#ifndef SERIAL_PORT
#error "SERIAL_PORT must be defined in Configuration.h"
#elif defined(SERIAL_PORT_2) && SERIAL_PORT_2 == SERIAL_PORT
#error "SERIAL_PORT_2 cannot be the same as SERIAL_PORT. Please update your configuration."
#endif
#if !(defined(__AVR__) && defined(USBCON)) #if !(defined(__AVR__) && defined(USBCON))
#if ENABLED(SERIAL_XON_XOFF) && RX_BUFFER_SIZE < 1024 #if ENABLED(SERIAL_XON_XOFF) && RX_BUFFER_SIZE < 1024
#error "SERIAL_XON_XOFF requires RX_BUFFER_SIZE >= 1024 for reliable transfers without drops." #error "SERIAL_XON_XOFF requires RX_BUFFER_SIZE >= 1024 for reliable transfers without drops."
@ -594,12 +599,6 @@
#error "SERIAL_XON_XOFF and SERIAL_STATS_* features not supported on USB-native AVR devices." #error "SERIAL_XON_XOFF and SERIAL_STATS_* features not supported on USB-native AVR devices."
#endif #endif
#ifndef SERIAL_PORT
#error "SERIAL_PORT must be defined in Configuration.h"
#elif defined(SERIAL_PORT_2) && SERIAL_PORT_2 == SERIAL_PORT
#error "SERIAL_PORT_2 cannot be the same as SERIAL_PORT. Please update your configuration."
#endif
/** /**
* Multiple Stepper Drivers Per Axis * Multiple Stepper Drivers Per Axis
*/ */
@ -2194,6 +2193,14 @@ static_assert(hbm[Z_AXIS] >= 0, "HOMING_BUMP_MM.Z must be greater than or equal
#endif #endif
#endif #endif
#if ENABLED(SD_IGNORE_AT_STARTUP)
#if ENABLED(POWER_LOSS_RECOVERY)
#error "SD_IGNORE_AT_STARTUP is incompatible with POWER_LOSS_RECOVERY."
#elif ENABLED(SDCARD_EEPROM_EMULATION)
#error "SD_IGNORE_AT_STARTUP is incompatible with SDCARD_EEPROM_EMULATION."
#endif
#endif
/** /**
* Make sure only one display is enabled * Make sure only one display is enabled
*/ */

View file

@ -425,6 +425,7 @@ void CardReader::manage_media() {
if (stat) { // Media Inserted if (stat) { // Media Inserted
safe_delay(500); // Some boards need a delay to get settled safe_delay(500); // Some boards need a delay to get settled
if (TERN1(SD_IGNORE_AT_STARTUP, old_stat != 2))
mount(); // Try to mount the media mount(); // Try to mount the media
#if MB(FYSETC_CHEETAH, FYSETC_CHEETAH_V12, FYSETC_AIO_II) #if MB(FYSETC_CHEETAH, FYSETC_CHEETAH_V12, FYSETC_AIO_II)
reset_stepper_drivers(); // Workaround for Cheetah bug reset_stepper_drivers(); // Workaround for Cheetah bug