Merge remote-tracking branch 'upstream/bugfix-2.0.x' into pr/20049

This commit is contained in:
Scott Lahteine 2020-11-10 03:33:50 -06:00
commit 2c6e5a1be0
15 changed files with 75 additions and 50 deletions

View file

@ -20,6 +20,8 @@
* *
*/ */
#if defined(ARDUINO_ARCH_STM32) && !defined(STM32GENERIC)
#include "MarlinSPI.h" #include "MarlinSPI.h"
static void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb, uint32_t dataSize) { static void spi_init(spi_t *obj, uint32_t speed, spi_mode_e mode, uint8_t msb, uint32_t dataSize) {
@ -159,3 +161,5 @@ uint8_t MarlinSPI::dmaSend(const void * transmitBuf, uint16_t length, bool minc)
HAL_DMA_DeInit(&_dmaTx); HAL_DMA_DeInit(&_dmaTx);
return 1; return 1;
} }
#endif // ARDUINO_ARCH_STM32 && !STM32GENERIC

View file

@ -509,7 +509,7 @@ inline void manage_inactivity(const bool ignore_stepper_queue=false) {
kill(); kill();
} }
// M18 / M94 : Handle steppers inactive time timeout // M18 / M84 : Handle steppers inactive time timeout
if (gcode.stepper_inactive_time) { if (gcode.stepper_inactive_time) {
static bool already_shutdown_steppers; // = false static bool already_shutdown_steppers; // = false

View file

@ -34,6 +34,8 @@ uint8_t ControllerFan::speed;
#if ENABLED(CONTROLLER_FAN_EDITABLE) #if ENABLED(CONTROLLER_FAN_EDITABLE)
controllerFan_settings_t ControllerFan::settings; // {0} controllerFan_settings_t ControllerFan::settings; // {0}
#else
const controllerFan_settings_t &ControllerFan::settings = controllerFan_defaults;
#endif #endif
void ControllerFan::setup() { void ControllerFan::setup() {

View file

@ -58,7 +58,7 @@ class ControllerFan {
#if ENABLED(CONTROLLER_FAN_EDITABLE) #if ENABLED(CONTROLLER_FAN_EDITABLE)
static controllerFan_settings_t settings; static controllerFan_settings_t settings;
#else #else
static const controllerFan_settings_t constexpr &settings = controllerFan_defaults; static const controllerFan_settings_t &settings;
#endif #endif
static inline bool state() { return speed > 0; } static inline bool state() { return speed > 0; }
static inline void init() { reset(); } static inline void init() { reset(); }

View file

@ -431,7 +431,10 @@ void GcodeSuite::process_parsed_command(const bool no_ok/*=false*/) {
case 28: M28(); break; // M28: Start SD write case 28: M28(); break; // M28: Start SD write
case 29: M29(); break; // M29: Stop SD write case 29: M29(); break; // M29: Stop SD write
case 30: M30(); break; // M30 <filename> Delete File case 30: M30(); break; // M30 <filename> Delete File
#if HAS_MEDIA_SUBCALLS
case 32: M32(); break; // M32: Select file and start SD print case 32: M32(); break; // M32: Select file and start SD print
#endif
#if ENABLED(LONG_FILENAME_HOST_SUPPORT) #if ENABLED(LONG_FILENAME_HOST_SUPPORT)
case 33: M33(); break; // M33: Get the long full path to a file or folder case 33: M33(); break; // M33: Get the long full path to a file or folder

View file

@ -541,7 +541,7 @@ private:
static void M31(); static void M31();
#if ENABLED(SDSUPPORT) #if ENABLED(SDSUPPORT)
static void M32(); TERN_(HAS_MEDIA_SUBCALLS, static void M32());
TERN_(LONG_FILENAME_HOST_SUPPORT, static void M33()); TERN_(LONG_FILENAME_HOST_SUPPORT, static void M33());
#if BOTH(SDCARD_SORT_ALPHA, SDSORT_GCODE) #if BOTH(SDCARD_SORT_ALPHA, SDSORT_GCODE)
static void M34(); static void M34();

View file

@ -22,7 +22,7 @@
#include "../../inc/MarlinConfig.h" #include "../../inc/MarlinConfig.h"
#if ENABLED(SDSUPPORT) #if HAS_MEDIA_SUBCALLS
#include "../gcode.h" #include "../gcode.h"
#include "../../sd/cardreader.h" #include "../../sd/cardreader.h"
@ -56,4 +56,4 @@ void GcodeSuite::M32() {
} }
} }
#endif // SDSUPPORT #endif // HAS_MEDIA_SUBCALLS

View file

@ -146,6 +146,10 @@
#define HAS_PRINT_PROGRESS 1 #define HAS_PRINT_PROGRESS 1
#endif #endif
#if ENABLED(SDSUPPORT) && SD_PROCEDURE_DEPTH
#define HAS_MEDIA_SUBCALLS 1
#endif
#if HAS_PRINT_PROGRESS && EITHER(PRINT_PROGRESS_SHOW_DECIMALS, SHOW_REMAINING_TIME) #if HAS_PRINT_PROGRESS && EITHER(PRINT_PROGRESS_SHOW_DECIMALS, SHOW_REMAINING_TIME)
#define HAS_PRINT_PROGRESS_PERMYRIAD 1 #define HAS_PRINT_PROGRESS_PERMYRIAD 1
#endif #endif

View file

@ -47,7 +47,7 @@
#define BUTTONC_X_LO BUTTONB_X_HI + BUTTON_SPACING #define BUTTONC_X_LO BUTTONB_X_HI + BUTTON_SPACING
#define BUTTONC_X_HI BUTTONC_X_LO + BUTTON_WIDTH - 1 #define BUTTONC_X_HI BUTTONC_X_LO + BUTTON_WIDTH - 1
#define BUTTON_Y_HI (TFT_HEIGHT) - (BUTTON_SPACING / 2) #define BUTTON_Y_HI (TFT_HEIGHT) - BUTTON_SPACING
#define BUTTON_Y_LO BUTTON_Y_HI - BUTTON_HEIGHT #define BUTTON_Y_LO BUTTON_Y_HI - BUTTON_HEIGHT
class TouchButtons { class TouchButtons {

View file

@ -264,7 +264,7 @@
#define BEEPER_PIN PB6 #define BEEPER_PIN PB6
#define CLCD_MOD_RESET PA9 #define CLCD_MOD_RESET PA9
#define CLCD_SPI_CS PA8 #define CLCD_SPI_CS PB8
#endif // TOUCH_UI_FTDI_EVE && LCD_FYSETC_TFT81050 #endif // TOUCH_UI_FTDI_EVE && LCD_FYSETC_TFT81050

View file

@ -118,9 +118,11 @@ Sd2Card CardReader::sd2card;
SdVolume CardReader::volume; SdVolume CardReader::volume;
SdFile CardReader::file; SdFile CardReader::file;
#if HAS_MEDIA_SUBCALLS
uint8_t CardReader::file_subcall_ctr; uint8_t CardReader::file_subcall_ctr;
uint32_t CardReader::filespos[SD_PROCEDURE_DEPTH]; uint32_t CardReader::filespos[SD_PROCEDURE_DEPTH];
char CardReader::proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; char CardReader::proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
#endif
uint32_t CardReader::filesize, CardReader::sdpos; uint32_t CardReader::filesize, CardReader::sdpos;
@ -135,7 +137,8 @@ CardReader::CardReader() {
#endif #endif
flag.sdprinting = flag.mounted = flag.saving = flag.logging = false; flag.sdprinting = flag.mounted = flag.saving = flag.logging = false;
filesize = sdpos = 0; filesize = sdpos = 0;
file_subcall_ctr = 0;
TERN_(HAS_MEDIA_SUBCALLS, file_subcall_ctr = 0);
workDirDepth = 0; workDirDepth = 0;
ZERO(workDirParents); ZERO(workDirParents);
@ -540,9 +543,11 @@ void CardReader::openFileRead(char * const path, const uint8_t subcall_type/*=0*
switch (subcall_type) { switch (subcall_type) {
case 0: // Starting a new print. "Now fresh file: ..." case 0: // Starting a new print. "Now fresh file: ..."
announceOpen(2, path); announceOpen(2, path);
file_subcall_ctr = 0; TERN_(HAS_MEDIA_SUBCALLS, file_subcall_ctr = 0);
break; break;
#if HAS_MEDIA_SUBCALLS
case 1: // Starting a sub-procedure case 1: // Starting a sub-procedure
// With no file is open it's a simple macro. "Now doing file: ..." // With no file is open it's a simple macro. "Now doing file: ..."
@ -550,14 +555,15 @@ void CardReader::openFileRead(char * const path, const uint8_t subcall_type/*=0*
// Too deep? The firmware has to bail. // Too deep? The firmware has to bail.
if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) { if (file_subcall_ctr > SD_PROCEDURE_DEPTH - 1) {
SERIAL_ERROR_MSG("Exceeded max SUBROUTINE depth:" STRINGIFY(SD_PROCEDURE_DEPTH)); SERIAL_ERROR_MSG("Exceeded max SUBROUTINE depth:", int(SD_PROCEDURE_DEPTH));
kill(GET_TEXT(MSG_KILL_SUBCALL_OVERFLOW)); kill(GET_TEXT(MSG_KILL_SUBCALL_OVERFLOW));
return; return;
} }
// Store current filename (based on workDirParents) and position // Store current filename (based on workDirParents) and position
getAbsFilename(proc_filenames[file_subcall_ctr]); getAbsFilename(proc_filenames[file_subcall_ctr]);
filespos[file_subcall_ctr] = sdpos;
TERN_(HAS_MEDIA_SUBCALLS, filespos[file_subcall_ctr] = sdpos);
// For sub-procedures say 'SUBROUTINE CALL target: "..." parent: "..." pos12345' // For sub-procedures say 'SUBROUTINE CALL target: "..." parent: "..." pos12345'
SERIAL_ECHO_START(); SERIAL_ECHO_START();
@ -568,6 +574,8 @@ void CardReader::openFileRead(char * const path, const uint8_t subcall_type/*=0*
case 2: // Resuming previous file after sub-procedure case 2: // Resuming previous file after sub-procedure
SERIAL_ECHO_MSG("END SUBROUTINE"); SERIAL_ECHO_MSG("END SUBROUTINE");
break; break;
#endif
} }
endFilePrint(); endFilePrint();
@ -603,7 +611,7 @@ void CardReader::openFileWrite(char * const path) {
if (!isMounted()) return; if (!isMounted()) return;
announceOpen(2, path); announceOpen(2, path);
file_subcall_ctr = 0; TERN_(HAS_MEDIA_SUBCALLS, file_subcall_ctr = 0);
endFilePrint(); endFilePrint();
@ -1158,18 +1166,20 @@ uint16_t CardReader::get_num_Files() {
void CardReader::fileHasFinished() { void CardReader::fileHasFinished() {
planner.synchronize(); planner.synchronize();
file.close(); file.close();
#if HAS_MEDIA_SUBCALLS
if (file_subcall_ctr > 0) { // Resume calling file after closing procedure if (file_subcall_ctr > 0) { // Resume calling file after closing procedure
file_subcall_ctr--; file_subcall_ctr--;
openFileRead(proc_filenames[file_subcall_ctr], 2); // 2 = Returning from sub-procedure openFileRead(proc_filenames[file_subcall_ctr], 2); // 2 = Returning from sub-procedure
setIndex(filespos[file_subcall_ctr]); setIndex(filespos[file_subcall_ctr]);
startFileprint(); startFileprint();
return;
} }
else { #endif
endFilePrint(TERN_(SD_RESORT, true));
endFilePrint(TERN_(SD_RESORT, true));
marlin_state = MF_SD_COMPLETE; marlin_state = MF_SD_COMPLETE;
} }
}
#if ENABLED(AUTO_REPORT_SD_STATUS) #if ENABLED(AUTO_REPORT_SD_STATUS)
uint8_t CardReader::auto_report_sd_interval = 0; uint8_t CardReader::auto_report_sd_interval = 0;

View file

@ -249,12 +249,11 @@ private:
// //
// Procedure calls to other files // Procedure calls to other files
// //
#ifndef SD_PROCEDURE_DEPTH #if HAS_MEDIA_SUBCALLS
#define SD_PROCEDURE_DEPTH 1
#endif
static uint8_t file_subcall_ctr; static uint8_t file_subcall_ctr;
static uint32_t filespos[SD_PROCEDURE_DEPTH]; static uint32_t filespos[SD_PROCEDURE_DEPTH];
static char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH]; static char proc_filenames[SD_PROCEDURE_DEPTH][MAXPATHNAMELENGTH];
#endif
// //
// SD Auto Reporting // SD Auto Reporting

View file

@ -109,7 +109,7 @@ Proposed patches should be submitted as a Pull Request against the ([bugfix-2.0.
- This branch is for fixing bugs and integrating any new features for the duration of the Marlin 2.0.x life-cycle. - This branch is for fixing bugs and integrating any new features for the duration of the Marlin 2.0.x life-cycle.
- Follow the [Coding Standards](https://marlinfw.org/docs/development/coding_standards.html) to gain points with the maintainers. - Follow the [Coding Standards](https://marlinfw.org/docs/development/coding_standards.html) to gain points with the maintainers.
- Please submit your questions and concerns to the [Issue Queue](https://github.com/MarlinFirmware/Marlin/issues). - Please submit Feature Requests and Bug Reports to the [Issue Queue](https://github.com/MarlinFirmware/Marlin/issues/new/choose). Support resources are also listed there.
### [RepRap.org Wiki Page](https://reprap.org/wiki/Marlin) ### [RepRap.org Wiki Page](https://reprap.org/wiki/Marlin)

View file

@ -23,6 +23,7 @@ opt_enable VIKI2 SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \ PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \
Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \ Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER LCD_INFO_MENU ARC_SUPPORT BEZIER_CURVE_SUPPORT EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES SDCARD_SORT_ALPHA EMERGENCY_PARSER
opt_disable SD_PROCEDURE_DEPTH
opt_set GRID_MAX_POINTS_X 16 opt_set GRID_MAX_POINTS_X 16
exec_test $1 $2 "Smoothieboard with many features" exec_test $1 $2 "Smoothieboard with many features"

View file

@ -180,6 +180,7 @@ default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
-<src/gcode/probe/M951.cpp> -<src/gcode/probe/M951.cpp>
-<src/gcode/scara> -<src/gcode/scara>
-<src/gcode/sd> -<src/gcode/sd>
-<src/gcode/sd/M32.cpp>
-<src/gcode/temp/M104_M109.cpp> -<src/gcode/temp/M104_M109.cpp>
-<src/gcode/temp/M155.cpp> -<src/gcode/temp/M155.cpp>
-<src/gcode/units/G20_G21.cpp> -<src/gcode/units/G20_G21.cpp>
@ -370,6 +371,7 @@ Z_PROBE_SLED = src_filter=+<src/gcode/probe/G31_G32.cpp>
G38_PROBE_TARGET = src_filter=+<src/gcode/probe/G38.cpp> G38_PROBE_TARGET = src_filter=+<src/gcode/probe/G38.cpp>
MAGNETIC_PARKING_EXTRUDER = src_filter=+<src/gcode/probe/M951.cpp> MAGNETIC_PARKING_EXTRUDER = src_filter=+<src/gcode/probe/M951.cpp>
SDSUPPORT = src_filter=+<src/gcode/sd> SDSUPPORT = src_filter=+<src/gcode/sd>
HAS_MEDIA_SUBCALLS = src_filter=+<src/gcode/sd/M32.cpp>
HAS_EXTRUDERS = src_filter=+<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp> HAS_EXTRUDERS = src_filter=+<src/gcode/temp/M104_M109.cpp> +<src/gcode/config/M221.cpp>
AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp> AUTO_REPORT_TEMPERATURES = src_filter=+<src/gcode/temp/M155.cpp>
INCH_MODE_SUPPORT = src_filter=+<src/gcode/units/G20_G21.cpp> INCH_MODE_SUPPORT = src_filter=+<src/gcode/units/G20_G21.cpp>