SoftwareSerialM for SKR STM32F1 boards (#15875)
This commit is contained in:
parent
8e7d1004cf
commit
9fd35c84ce
21 changed files with 39 additions and 30 deletions
|
@ -25,7 +25,7 @@
|
||||||
#include "math.h"
|
#include "math.h"
|
||||||
|
|
||||||
#ifdef USBCON
|
#ifdef USBCON
|
||||||
#include "HardwareSerial.h"
|
#include <HardwareSerial.h>
|
||||||
#else
|
#else
|
||||||
#define HardwareSerial_h // Hack to prevent HardwareSerial.h header inclusion
|
#define HardwareSerial_h // Hack to prevent HardwareSerial.h header inclusion
|
||||||
#include "MarlinSerial.h"
|
#include "MarlinSerial.h"
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
|
|
||||||
#include "Stream.h"
|
#include <Stream.h>
|
||||||
|
|
||||||
#ifndef RX_BUFFER_SIZE
|
#ifndef RX_BUFFER_SIZE
|
||||||
#define RX_BUFFER_SIZE 128
|
#define RX_BUFFER_SIZE 128
|
||||||
|
|
|
@ -26,10 +26,10 @@
|
||||||
#include "i2s.h"
|
#include "i2s.h"
|
||||||
|
|
||||||
#include "../shared/Marduino.h"
|
#include "../shared/Marduino.h"
|
||||||
#include "driver/periph_ctrl.h"
|
#include <driver/periph_ctrl.h>
|
||||||
#include "rom/lldesc.h"
|
#include <rom/lldesc.h>
|
||||||
#include "soc/i2s_struct.h"
|
#include <soc/i2s_struct.h>
|
||||||
#include "freertos/queue.h"
|
#include <freertos/queue.h>
|
||||||
#include "../../module/stepper.h"
|
#include "../../module/stepper.h"
|
||||||
|
|
||||||
#define DMA_BUF_COUNT 8 // number of DMA buffers to store data
|
#define DMA_BUF_COUNT 8 // number of DMA buffers to store data
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
#include <ESPmDNS.h>
|
#include <ESPmDNS.h>
|
||||||
#include <WiFiUdp.h>
|
#include <WiFiUdp.h>
|
||||||
#include <ArduinoOTA.h>
|
#include <ArduinoOTA.h>
|
||||||
#include "driver/timer.h"
|
#include <driver/timer.h>
|
||||||
|
|
||||||
void OTA_init() {
|
void OTA_init() {
|
||||||
ArduinoOTA
|
ArduinoOTA
|
||||||
|
|
|
@ -23,10 +23,10 @@
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "esp_types.h"
|
#include <esp_types.h>
|
||||||
#include "soc/timer_group_struct.h"
|
#include <soc/timer_group_struct.h>
|
||||||
#include "driver/periph_ctrl.h"
|
#include <driver/periph_ctrl.h>
|
||||||
#include "driver/timer.h"
|
#include <driver/timer.h>
|
||||||
|
|
||||||
#include "HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "driver/timer.h"
|
#include <driver/timer.h>
|
||||||
|
|
||||||
// Includes needed to get I2S_STEPPER_STREAM. Note that pins.h
|
// Includes needed to get I2S_STEPPER_STREAM. Note that pins.h
|
||||||
// is included in case this header is being included early.
|
// is included in case this header is being included early.
|
||||||
|
|
|
@ -56,7 +56,7 @@
|
||||||
// ------------------------
|
// ------------------------
|
||||||
#if ENABLED(LPC_SOFTWARE_SPI)
|
#if ENABLED(LPC_SOFTWARE_SPI)
|
||||||
|
|
||||||
#include "SoftwareSPI.h"
|
#include <SoftwareSPI.h>
|
||||||
|
|
||||||
// Software SPI
|
// Software SPI
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
#if ENABLED(FLASH_EEPROM_EMULATION)
|
#if ENABLED(FLASH_EEPROM_EMULATION)
|
||||||
|
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include "lpc17xx_iap.h"
|
#include <lpc17xx_iap.h>
|
||||||
}
|
}
|
||||||
|
|
||||||
#define SECTOR_START(sector) ((sector < 16) ? (sector * 0x1000) : ((sector - 14) * 0x8000))
|
#define SECTOR_START(sector) ((sector < 16) ? (sector * 0x1000) : ((sector - 14) * 0x8000))
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
#if ENABLED(U8GLIB_ST7920)
|
#if ENABLED(U8GLIB_ST7920)
|
||||||
|
|
||||||
#include <U8glib.h>
|
#include <U8glib.h>
|
||||||
#include "SoftwareSPI.h"
|
#include <SoftwareSPI.h>
|
||||||
#include "../../shared/Delay.h"
|
#include "../../shared/Delay.h"
|
||||||
|
|
||||||
#undef SPI_SPEED
|
#undef SPI_SPEED
|
||||||
|
|
|
@ -59,7 +59,7 @@
|
||||||
|
|
||||||
#if HAS_GRAPHICAL_LCD && DISABLED(U8GLIB_ST7920)
|
#if HAS_GRAPHICAL_LCD && DISABLED(U8GLIB_ST7920)
|
||||||
|
|
||||||
#include "SoftwareSPI.h"
|
#include <SoftwareSPI.h>
|
||||||
|
|
||||||
#undef SPI_SPEED
|
#undef SPI_SPEED
|
||||||
#define SPI_SPEED 2 // About 2 MHz
|
#define SPI_SPEED 2 // About 2 MHz
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#if ENABLED(USE_WATCHDOG)
|
#if ENABLED(USE_WATCHDOG)
|
||||||
|
|
||||||
#include "lpc17xx_wdt.h"
|
#include <lpc17xx_wdt.h>
|
||||||
#include "watchdog.h"
|
#include "watchdog.h"
|
||||||
|
|
||||||
void watchdog_init() {
|
void watchdog_init() {
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
#ifdef __SAMD51__
|
#ifdef __SAMD51__
|
||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
#include "Adafruit_ZeroDMA.h"
|
#include <Adafruit_ZeroDMA.h>
|
||||||
#include "wiring_private.h"
|
#include <wiring_private.h>
|
||||||
|
|
||||||
// ------------------------
|
// ------------------------
|
||||||
// Local defines
|
// Local defines
|
||||||
|
|
|
@ -36,13 +36,13 @@
|
||||||
|
|
||||||
#if HAS_SWSERIAL
|
#if HAS_SWSERIAL
|
||||||
#include "SoftwareSerial.h"
|
#include "SoftwareSerial.h"
|
||||||
#endif
|
#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>
|
||||||
#elif STM32F4xx
|
#elif STM32F4xx
|
||||||
#include "stm32f4xx_ll_pwr.h"
|
#include <stm32f4xx_ll_pwr.h>
|
||||||
#else
|
#else
|
||||||
#error "SRAM_EEPROM_EMULATION is currently only supported for STM32F4xx and STM32F7xx"
|
#error "SRAM_EEPROM_EMULATION is currently only supported for STM32F4xx and STM32F7xx"
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -91,7 +91,7 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
|
||||||
// This is fixed in Arduino_Core_STM32 1.8.
|
// This is fixed in Arduino_Core_STM32 1.8.
|
||||||
// These calls can be removed and replaced with
|
// These calls can be removed and replaced with
|
||||||
// timer_instance[timer_num]->setInterruptPriority
|
// timer_instance[timer_num]->setInterruptPriority
|
||||||
switch (timer_num) {
|
switch (timer_num) {
|
||||||
case STEP_TIMER_NUM:
|
case STEP_TIMER_NUM:
|
||||||
HAL_NVIC_SetPriority(STEP_TIMER_IRQ_NAME, STEP_TIMER_IRQ_PRIO, 0);
|
HAL_NVIC_SetPriority(STEP_TIMER_IRQ_NAME, STEP_TIMER_IRQ_PRIO, 0);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -272,7 +272,7 @@ extern "C" {
|
||||||
// return free memory between end of heap (or end bss) and whatever is current
|
// return free memory between end of heap (or end bss) and whatever is current
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#include "wirish/syscalls.c"
|
#include <wirish/syscalls.c>
|
||||||
//extern caddr_t _sbrk(int incr);
|
//extern caddr_t _sbrk(int incr);
|
||||||
#ifndef CONFIG_HEAP_END
|
#ifndef CONFIG_HEAP_END
|
||||||
extern char _lm_heap_end;
|
extern char _lm_heap_end;
|
||||||
|
|
|
@ -20,7 +20,9 @@
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#define SW_SERIAL_PLACEHOLDER 1
|
#ifndef HAVE_SW_SERIAL
|
||||||
|
#define SW_SERIAL_PLACEHOLDER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
class SoftwareSerial {
|
class SoftwareSerial {
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -36,3 +36,8 @@
|
||||||
#if ENABLED(FAST_PWM_FAN)
|
#if ENABLED(FAST_PWM_FAN)
|
||||||
#error "FAST_PWM_FAN is not yet implemented for this platform."
|
#error "FAST_PWM_FAN is not yet implemented for this platform."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if !defined(HAVE_SW_SERIAL) && HAS_TMC220x
|
||||||
|
#warning "With TMC2208/9 consider using SoftwareSerialM with HAVE_SW_SERIAL and appropriate SS_TIMER."
|
||||||
|
#error "Missing SoftwareSerial implementation."
|
||||||
|
#endif
|
||||||
|
|
|
@ -64,7 +64,7 @@ extern "C" {
|
||||||
// return free memory between end of heap (or end bss) and whatever is current
|
// return free memory between end of heap (or end bss) and whatever is current
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#include "wirish/syscalls.c"
|
#include <wirish/syscalls.c>
|
||||||
//extern caddr_t _sbrk(int incr);
|
//extern caddr_t _sbrk(int incr);
|
||||||
#ifndef CONFIG_HEAP_END
|
#ifndef CONFIG_HEAP_END
|
||||||
extern char _lm_heap_end;
|
extern char _lm_heap_end;
|
||||||
|
|
|
@ -133,7 +133,7 @@
|
||||||
|| HAS_E_DRIVER(TMC2660_STANDALONE) \
|
|| HAS_E_DRIVER(TMC2660_STANDALONE) \
|
||||||
|| HAS_E_DRIVER(TMC2209_STANDALONE) \
|
|| HAS_E_DRIVER(TMC2209_STANDALONE) \
|
||||||
|| HAS_E_DRIVER(TMC5130_STANDALONE) \
|
|| HAS_E_DRIVER(TMC5130_STANDALONE) \
|
||||||
|| HAS_E_DRIVER(TMC5160_STANDALONE) )
|
|| HAS_E_DRIVER(TMC5160_STANDALONE) )
|
||||||
//
|
//
|
||||||
// Stretching 'drivers.h' to include LPC/SAMD51 SD options
|
// Stretching 'drivers.h' to include LPC/SAMD51 SD options
|
||||||
//
|
//
|
||||||
|
|
|
@ -122,7 +122,7 @@ const PinMap PinMap_PWM[] = {
|
||||||
{PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 FAN1
|
{PE_5, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 1, 0)}, // TIM9_CH1 FAN1
|
||||||
{PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 FAN2
|
{PE_6, TIM9, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM9, 2, 0)}, // TIM9_CH2 FAN2
|
||||||
{PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 EXTENSION1-4
|
{PC_9, TIM8, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_TIM8, 4, 0)}, // TIM8_CH4 EXTENSION1-4
|
||||||
|
|
||||||
//probably unused on SKR-Pro. confirmation needed, please.
|
//probably unused on SKR-Pro. confirmation needed, please.
|
||||||
//{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
|
//{PA_0, TIM2, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM2, 1, 0)}, // TIM2_CH1
|
||||||
//{PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1
|
//{PA_0, TIM5, STM_PIN_DATA_EXT(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM5, 1, 0)}, // TIM5_CH1
|
||||||
|
|
|
@ -301,9 +301,10 @@ board = genericSTM32F103RC
|
||||||
platform_packages = tool-stm32duino
|
platform_packages = tool-stm32duino
|
||||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||||
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
|
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
|
||||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14
|
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||||
build_unflags = -std=gnu++11
|
build_unflags = -std=gnu++11
|
||||||
lib_deps = ${common.lib_deps}
|
lib_deps = ${common.lib_deps}
|
||||||
|
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||||
lib_ignore = Adafruit NeoPixel, SPI
|
lib_ignore = Adafruit NeoPixel, SPI
|
||||||
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
|
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
@ -315,9 +316,10 @@ board = genericSTM32F103RC
|
||||||
platform_packages = tool-stm32duino
|
platform_packages = tool-stm32duino
|
||||||
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
extra_scripts = buildroot/share/PlatformIO/scripts/STM32F103RC_SKR_MINI.py
|
||||||
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
|
build_flags = !python Marlin/src/HAL/HAL_STM32F1/build_flags.py
|
||||||
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DUSE_USB_COMPOSITE
|
${common.build_flags} -DDEBUG_LEVEL=0 -std=gnu++14 -DUSE_USB_COMPOSITE -DHAVE_SW_SERIAL -DSS_TIMER=4
|
||||||
build_unflags = -std=gnu++11
|
build_unflags = -std=gnu++11
|
||||||
lib_deps = ${common.lib_deps}
|
lib_deps = ${common.lib_deps}
|
||||||
|
SoftwareSerialM=https://github.com/FYSETC/SoftwareSerialM/archive/master.zip
|
||||||
lib_ignore = Adafruit NeoPixel, SPI
|
lib_ignore = Adafruit NeoPixel, SPI
|
||||||
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
|
src_filter = ${common.default_src_filter} +<src/HAL/HAL_STM32F1>
|
||||||
monitor_speed = 115200
|
monitor_speed = 115200
|
||||||
|
|
Reference in a new issue