1
0
mirror of https://github.com/MarlinFirmware/Marlin.git synced 2024-11-26 13:25:54 +00:00

Fix STM32 + SoftwareSerial compile (#17831)

This commit is contained in:
Jason Smith 2020-05-02 15:24:51 -07:00 committed by GitHub
parent 52f3f3b5ab
commit 208af8cb15
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 23 additions and 15 deletions

View File

@ -27,10 +27,6 @@
#include "../../inc/MarlinConfig.h" #include "../../inc/MarlinConfig.h"
#include "../shared/Delay.h" #include "../shared/Delay.h"
#if HAS_TMC_SW_SERIAL
#include "SoftwareSerial.h"
#endif
#if ENABLED(SRAM_EEPROM_EMULATION) #if ENABLED(SRAM_EEPROM_EMULATION)
#if STM32F7xx #if STM32F7xx
#include <stm32f7xx_ll_pwr.h> #include <stm32f7xx_ll_pwr.h>
@ -82,11 +78,7 @@ void HAL_init() {
while (!LL_PWR_IsActiveFlag_BRR()); // Wait until backup regulator is initialized while (!LL_PWR_IsActiveFlag_BRR()); // Wait until backup regulator is initialized
#endif #endif
#if HAS_TMC_SW_SERIAL SetSoftwareSerialTimerInterruptPriority();
SoftwareSerial::setInterruptPriority(SWSERIAL_TIMER_IRQ_PRIO, 0);
#endif
TERN_(HAS_TMC_SW_SERIAL, SoftwareSerial::setInterruptPriority(SWSERIAL_TIMER_IRQ_PRIO, 0));
} }
void HAL_clear_reset_source() { __HAL_RCC_CLEAR_RESET_FLAGS(); } void HAL_clear_reset_source() { __HAL_RCC_CLEAR_RESET_FLAGS(); }

View File

@ -31,9 +31,6 @@
#define NUM_HARDWARE_TIMERS 2 #define NUM_HARDWARE_TIMERS 2
#ifndef SWSERIAL_TIMER_IRQ_PRIO
#define SWSERIAL_TIMER_IRQ_PRIO 1
#endif
#ifndef STEP_TIMER_IRQ_PRIO #ifndef STEP_TIMER_IRQ_PRIO
#define STEP_TIMER_IRQ_PRIO 2 #define STEP_TIMER_IRQ_PRIO 2
#endif #endif
@ -41,6 +38,13 @@
#define TEMP_TIMER_IRQ_PRIO 14 // 14 = after hardware ISRs #define TEMP_TIMER_IRQ_PRIO 14 // 14 = after hardware ISRs
#endif #endif
#if HAS_TMC_SW_SERIAL
#include <SoftwareSerial.h>
#ifndef SWSERIAL_TIMER_IRQ_PRIO
#define SWSERIAL_TIMER_IRQ_PRIO 1
#endif
#endif
#ifdef STM32F0xx #ifdef STM32F0xx
#define HAL_TIMER_RATE (F_CPU) // Frequency of timer peripherals #define HAL_TIMER_RATE (F_CPU) // Frequency of timer peripherals
#define MCU_STEP_TIMER 16 #define MCU_STEP_TIMER 16
@ -175,4 +179,8 @@ TIM_TypeDef * HAL_timer_device(const uint8_t timer_num) {
return nullptr; return nullptr;
} }
void SetSoftwareSerialTimerInterruptPriority() {
TERN_(HAS_TMC_SW_SERIAL, SoftwareSerial::setInterruptPriority(SWSERIAL_TIMER_IRQ_PRIO, 0));
}
#endif // ARDUINO_ARCH_STM32 && !STM32GENERIC #endif // ARDUINO_ARCH_STM32 && !STM32GENERIC

View File

@ -75,6 +75,9 @@ void HAL_timer_enable_interrupt(const uint8_t timer_num);
void HAL_timer_disable_interrupt(const uint8_t timer_num); void HAL_timer_disable_interrupt(const uint8_t timer_num);
bool HAL_timer_interrupt_enabled(const uint8_t timer_num); bool HAL_timer_interrupt_enabled(const uint8_t timer_num);
// Exposed here to allow all timer priority information to reside in timers.cpp
void SetSoftwareSerialTimerInterruptPriority();
//TIM_TypeDef* HAL_timer_device(const uint8_t timer_num); no need to be public for now. not public = not used externally //TIM_TypeDef* HAL_timer_device(const uint8_t timer_num); no need to be public for now. not public = not used externally
// FORCE_INLINE because these are used in performance-critical situations // FORCE_INLINE because these are used in performance-critical situations

View File

@ -12,7 +12,9 @@ set -e
restore_configs restore_configs
opt_set MOTHERBOARD BOARD_BTT_BTT002_V1_0 opt_set MOTHERBOARD BOARD_BTT_BTT002_V1_0
opt_set SERIAL_PORT 1 opt_set SERIAL_PORT 1
exec_test $1 $2 "BigTreeTech BTT002 Default Configuration" opt_set X_DRIVER_TYPE TMC2209
opt_set Y_DRIVER_TYPE TMC2130
exec_test $1 $2 "BigTreeTech BTT002 Default Configuration plus TMC steppers"
# clean up # clean up
restore_configs restore_configs

View File

@ -23,7 +23,9 @@ opt_set TEMP_SENSOR_2 1
opt_set E0_AUTO_FAN_PIN PC10 opt_set E0_AUTO_FAN_PIN PC10
opt_set E1_AUTO_FAN_PIN PC11 opt_set E1_AUTO_FAN_PIN PC11
opt_set E2_AUTO_FAN_PIN PC12 opt_set E2_AUTO_FAN_PIN PC12
exec_test $1 $2 "BigTreeTech SKR Pro 3 Extruders with Auto-Fan" opt_set X_DRIVER_TYPE TMC2209
opt_set Y_DRIVER_TYPE TMC2130
exec_test $1 $2 "BigTreeTech SKR Pro 3 Extruders with Auto-Fan and mixed TMC drivers"
# clean up # clean up
restore_configs restore_configs

View File

@ -769,9 +769,10 @@ build_flags = ${common.build_flags}
-DHAVE_HWSERIAL3 -DHAVE_HWSERIAL3
-DPIN_SERIAL2_RX=PD_6 -DPIN_SERIAL2_RX=PD_6
-DPIN_SERIAL2_TX=PD_5 -DPIN_SERIAL2_TX=PD_5
-IMarlin/src/HAL/STM32
build_unflags = -std=gnu++11 build_unflags = -std=gnu++11
extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py extra_scripts = pre:buildroot/share/PlatformIO/scripts/generic_create_variant.py
lib_ignore = Adafruit NeoPixel, SailfishLCD, SlowSoftI2CMaster lib_ignore = Adafruit NeoPixel, SailfishLCD, SlowSoftI2CMaster, SoftwareSerial
src_filter = ${common.default_src_filter} +<src/HAL/STM32> src_filter = ${common.default_src_filter} +<src/HAL/STM32>
# #