浏览代码

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
 #define GET_PIN_MAP_INDEX(pin) pin
249
 #define GET_PIN_MAP_INDEX(pin) pin
250
 #define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval)
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
 #endif // _HAL_STM32F1_H
255
 #endif // _HAL_STM32F1_H

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

248
 #define GET_PIN_MAP_INDEX(pin) pin
248
 #define GET_PIN_MAP_INDEX(pin) pin
249
 #define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval)
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
 #endif // _HAL_STM32F4_H
254
 #endif // _HAL_STM32F4_H

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

686
     max7219.init();
686
     max7219.init();
687
   #endif
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
     // Disable JTAG to free up pins for IO
699
     // Disable JTAG to free up pins for IO
691
     #ifdef JTAG_DISABLE
700
     #ifdef JTAG_DISABLE
692
       JTAG_DISABLE();
701
       JTAG_DISABLE();

正在加载...
取消
保存