瀏覽代碼

Improve support for JTAG/SWD pins reuse (#11963)

STM32 can reuse JTAG and SWD pins separately. Add `DISABLE_DEBUG` option to disable both interfaces and retain `DISABLE_JTAG` to disable JTAG only.
Alexander Amelkin 6 年之前
父節點
當前提交
2ecfda80ac
共有 3 個檔案被更改,包括 14 行新增3 行删除
  1. 2
    1
      Marlin/src/HAL/HAL_STM32F1/HAL.h
  2. 2
    1
      Marlin/src/HAL/HAL_STM32F4/HAL.h
  3. 10
    1
      Marlin/src/Marlin.cpp

+ 2
- 1
Marlin/src/HAL/HAL_STM32F1/HAL.h 查看文件

@@ -249,6 +249,7 @@ void HAL_enable_AdcFreerun(void);
249 249
 #define GET_PIN_MAP_INDEX(pin) pin
250 250
 #define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval)
251 251
 
252
-#define JTAG_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_NONE)
252
+#define JTAG_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_SW_ONLY)
253
+#define JTAGSWD_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_NONE)
253 254
 
254 255
 #endif // _HAL_STM32F1_H

+ 2
- 1
Marlin/src/HAL/HAL_STM32F4/HAL.h 查看文件

@@ -248,6 +248,7 @@ void HAL_enable_AdcFreerun(void);
248 248
 #define GET_PIN_MAP_INDEX(pin) pin
249 249
 #define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval)
250 250
 
251
-#define JTAG_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_NONE)
251
+#define JTAG_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_SW_ONLY)
252
+#define JTAGSWD_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_NONE)
252 253
 
253 254
 #endif // _HAL_STM32F4_H

+ 10
- 1
Marlin/src/Marlin.cpp 查看文件

@@ -686,7 +686,16 @@ void setup() {
686 686
     max7219.init();
687 687
   #endif
688 688
 
689
-  #if ENABLED(DISABLE_JTAG)
689
+  #if ENABLED(DISABLE_DEBUG)
690
+    // Disable any hardware debug to free up pins for IO
691
+    #ifdef JTAGSWD_DISABLE
692
+      JTAGSWD_DISABLE();
693
+    #elif defined(JTAG_DISABLE)
694
+      JTAG_DISABLE();
695
+    #else
696
+      #error "DISABLE_DEBUG is not supported for the selected MCU/Board"
697
+    #endif
698
+  #elif ENABLED(DISABLE_JTAG)
690 699
     // Disable JTAG to free up pins for IO
691 700
     #ifdef JTAG_DISABLE
692 701
       JTAG_DISABLE();

Loading…
取消
儲存