From 5c9d202871c0bdb63323b77d5ed88827588d9533 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 2 Feb 2021 19:08:19 +0200 Subject: [PATCH 1/3] Change MAX_DIR_DEPTH from 10 to 6 You can't run M23 with so many directories as the length of the command will exceed the maximum allowed by cmdqueue --- Firmware/cardreader.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/cardreader.h b/Firmware/cardreader.h index 524454002..9bf9bd0a6 100644 --- a/Firmware/cardreader.h +++ b/Firmware/cardreader.h @@ -3,7 +3,7 @@ #ifdef SDSUPPORT -#define MAX_DIR_DEPTH 10 +#define MAX_DIR_DEPTH 6 #include "SdFile.h" enum LsAction {LS_SerialPrint,LS_SerialPrint_LFN,LS_Count,LS_GetFilename}; From f6ae3790770d39d3df71911c5112485edc04582b Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 2 Feb 2021 19:08:44 +0200 Subject: [PATCH 2/3] Fix dir_names array definition. Prevents overrun --- Firmware/Marlin.h | 2 +- Firmware/Marlin_main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index 17fce2713..aa057bc5b 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -352,7 +352,7 @@ extern bool mesh_bed_run_from_menu; extern bool sortAlpha; -extern char dir_names[3][9]; +extern char dir_names[MAX_DIR_DEPTH][9]; extern int8_t lcd_change_fil_state; // save/restore printing diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 777a05ff4..4e0511c19 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -228,7 +228,7 @@ bool fan_state[2]; int fan_edge_counter[2]; int fan_speed[2]; -char dir_names[3][9]; +char dir_names[MAX_DIR_DEPTH][9]; bool sortAlpha = false; From 896f4e1dd1b55bc14e77cd63996aab87267a4464 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Tue, 2 Feb 2021 19:14:05 +0200 Subject: [PATCH 3/3] Fix compile error --- Firmware/Marlin.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/Marlin.h b/Firmware/Marlin.h index aa057bc5b..1ed5e0bd3 100755 --- a/Firmware/Marlin.h +++ b/Firmware/Marlin.h @@ -352,7 +352,7 @@ extern bool mesh_bed_run_from_menu; extern bool sortAlpha; -extern char dir_names[MAX_DIR_DEPTH][9]; +extern char dir_names[][9]; extern int8_t lcd_change_fil_state; // save/restore printing