diff --git a/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp b/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp
index 51064f9ba287a7b5e8492fc2e05fe66f5709815b..f12f0df7fbbca3866232ef9c7def5c3c1cdaafe8 100644
--- a/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp
+++ b/Marlin/src/HAL/HAL_DUE/DebugMonitor_Due.cpp
@@ -26,8 +26,8 @@
 #include "../../core/serial.h"
 #include <stdarg.h>
 
-#include "../backtrace/unwinder.h"
-#include "../backtrace/unwmemaccess.h"
+#include "../shared/backtrace/unwinder.h"
+#include "../shared/backtrace/unwmemaccess.h"
 
 // Debug monitor that dumps to the Programming port all status when
 // an exception or WDT timeout happens - And then resets the board
diff --git a/Marlin/src/HAL/backtrace/backtrace.cpp b/Marlin/src/HAL/shared/backtrace/backtrace.cpp
similarity index 98%
rename from Marlin/src/HAL/backtrace/backtrace.cpp
rename to Marlin/src/HAL/shared/backtrace/backtrace.cpp
index 4a688b369c77df940f207526bdc1e9d7a1eb9499..95f1fc0b0fc0d2678f6705fef41650201f3a468a 100644
--- a/Marlin/src/HAL/backtrace/backtrace.cpp
+++ b/Marlin/src/HAL/shared/backtrace/backtrace.cpp
@@ -27,7 +27,7 @@
 #include "unwinder.h"
 #include "unwmemaccess.h"
 
-#include "../../core/serial.h"
+#include "../../../core/serial.h"
 #include <stdarg.h>
 
 // Dump a backtrace entry
diff --git a/Marlin/src/HAL/backtrace/backtrace.h b/Marlin/src/HAL/shared/backtrace/backtrace.h
similarity index 100%
rename from Marlin/src/HAL/backtrace/backtrace.h
rename to Marlin/src/HAL/shared/backtrace/backtrace.h
diff --git a/Marlin/src/HAL/backtrace/unwarm.cpp b/Marlin/src/HAL/shared/backtrace/unwarm.cpp
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarm.cpp
rename to Marlin/src/HAL/shared/backtrace/unwarm.cpp
diff --git a/Marlin/src/HAL/backtrace/unwarm.h b/Marlin/src/HAL/shared/backtrace/unwarm.h
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarm.h
rename to Marlin/src/HAL/shared/backtrace/unwarm.h
diff --git a/Marlin/src/HAL/backtrace/unwarm_arm.cpp b/Marlin/src/HAL/shared/backtrace/unwarm_arm.cpp
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarm_arm.cpp
rename to Marlin/src/HAL/shared/backtrace/unwarm_arm.cpp
diff --git a/Marlin/src/HAL/backtrace/unwarm_thumb.cpp b/Marlin/src/HAL/shared/backtrace/unwarm_thumb.cpp
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarm_thumb.cpp
rename to Marlin/src/HAL/shared/backtrace/unwarm_thumb.cpp
diff --git a/Marlin/src/HAL/backtrace/unwarmbytab.cpp b/Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarmbytab.cpp
rename to Marlin/src/HAL/shared/backtrace/unwarmbytab.cpp
diff --git a/Marlin/src/HAL/backtrace/unwarmbytab.h b/Marlin/src/HAL/shared/backtrace/unwarmbytab.h
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarmbytab.h
rename to Marlin/src/HAL/shared/backtrace/unwarmbytab.h
diff --git a/Marlin/src/HAL/backtrace/unwarmmem.cpp b/Marlin/src/HAL/shared/backtrace/unwarmmem.cpp
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarmmem.cpp
rename to Marlin/src/HAL/shared/backtrace/unwarmmem.cpp
diff --git a/Marlin/src/HAL/backtrace/unwarmmem.h b/Marlin/src/HAL/shared/backtrace/unwarmmem.h
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwarmmem.h
rename to Marlin/src/HAL/shared/backtrace/unwarmmem.h
diff --git a/Marlin/src/HAL/backtrace/unwinder.cpp b/Marlin/src/HAL/shared/backtrace/unwinder.cpp
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwinder.cpp
rename to Marlin/src/HAL/shared/backtrace/unwinder.cpp
diff --git a/Marlin/src/HAL/backtrace/unwinder.h b/Marlin/src/HAL/shared/backtrace/unwinder.h
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwinder.h
rename to Marlin/src/HAL/shared/backtrace/unwinder.h
diff --git a/Marlin/src/HAL/backtrace/unwmemaccess.cpp b/Marlin/src/HAL/shared/backtrace/unwmemaccess.cpp
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwmemaccess.cpp
rename to Marlin/src/HAL/shared/backtrace/unwmemaccess.cpp
diff --git a/Marlin/src/HAL/backtrace/unwmemaccess.h b/Marlin/src/HAL/shared/backtrace/unwmemaccess.h
similarity index 100%
rename from Marlin/src/HAL/backtrace/unwmemaccess.h
rename to Marlin/src/HAL/shared/backtrace/unwmemaccess.h
diff --git a/platformio.ini b/platformio.ini
index c93fbfdda6d4bc4ab22653df4328427670da0163..cf16b70a219171fab418193bee116ae04570591c 100644
--- a/platformio.ini
+++ b/platformio.ini
@@ -24,7 +24,7 @@ boards_dir  = buildroot/share/PlatformIO/boards
 env_default = megaatmega2560
 
 [common]
-default_src_filter = +<src/*> -<src/config>
+default_src_filter = +<src/*> -<src/config> -<src/HAL> +<src/HAL/shared>
 build_flags = -fmax-errors=5
   -g
   -ggdb