Browse Source

HAL general support for DISABLE_JTAG option (#11211)

Some STM32-based boards may use multiplexed JTAG pins as IO. Up to now the `DISABLE_JTAG` option (defined in pins files) was only supported for AT90-based boards. This commit generalizes the code and adds support for boards based on STM32F1 and STM32F4.
pull/1/head
Alexander Amelkin 6 years ago
committed by Scott Lahteine
parent
commit
84926b1d5a
  1. 4
      Marlin/src/HAL/HAL_AVR/HAL.h
  2. 2
      Marlin/src/HAL/HAL_STM32F1/HAL.h
  3. 2
      Marlin/src/HAL/HAL_STM32F4/HAL.h
  4. 9
      Marlin/src/Marlin.cpp

4
Marlin/src/HAL/HAL_AVR/HAL.h

@ -352,6 +352,10 @@ inline void HAL_adc_init(void) {
#define HAL_SENSITIVE_PINS 0, 1
#ifdef __AVR_AT90USB1286__
#define JTAG_DISABLE() do{ MCUCR = 0x80; MCUCR = 0x80; }while(0)
#endif
// AVR compatibility
#define strtof strtod

2
Marlin/src/HAL/HAL_STM32F1/HAL.h

@ -249,4 +249,6 @@ void HAL_enable_AdcFreerun(void);
#define GET_PIN_MAP_INDEX(pin) pin
#define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval)
#define JTAG_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_NONE)
#endif // _HAL_STM32F1_H

2
Marlin/src/HAL/HAL_STM32F4/HAL.h

@ -248,4 +248,6 @@ void HAL_enable_AdcFreerun(void);
#define GET_PIN_MAP_INDEX(pin) pin
#define PARSED_PIN_INDEX(code, dval) parser.intval(code, dval)
#define JTAG_DISABLE() afio_cfg_debug_ports(AFIO_DEBUG_NONE)
#endif // _HAL_STM32F4_H

9
Marlin/src/Marlin.cpp

@ -687,9 +687,12 @@ void setup() {
#endif
#if ENABLED(DISABLE_JTAG)
// Disable JTAG on AT90USB chips to free up pins for IO
MCUCR = 0x80;
MCUCR = 0x80;
// Disable JTAG to free up pins for IO
#ifdef JTAG_DISABLE
JTAG_DISABLE();
#else
#error "DISABLE_JTAG is not supported for the selected MCU/Board"
#endif
#endif
#if ENABLED(FILAMENT_RUNOUT_SENSOR)

Loading…
Cancel
Save