Use a macro for HAL header redirection (#10380)
This commit is contained in:
parent
12785583d0
commit
cc6d41e1d3
51 changed files with 152 additions and 285 deletions
|
@ -1,59 +0,0 @@
|
||||||
/* **************************************************************************
|
|
||||||
|
|
||||||
Marlin 3D Printer Firmware
|
|
||||||
Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
||||||
Copyright (c) 2016 Bob Cousins bobcousins42@googlemail.com
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Description: HAL wrapper
|
|
||||||
*
|
|
||||||
* Supports platforms :
|
|
||||||
* ARDUINO_ARCH_SAM : For Arduino Due and other boards based on Atmel SAM3X8E
|
|
||||||
* __AVR__ : For all Atmel AVR boards
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _HAL_H
|
|
||||||
#define _HAL_H
|
|
||||||
|
|
||||||
#include "HAL_SPI.h"
|
|
||||||
|
|
||||||
#define CPU_32_BIT
|
|
||||||
|
|
||||||
#ifdef __AVR__
|
|
||||||
#undef CPU_32_BIT
|
|
||||||
#include "HAL_AVR/HAL_AVR.h"
|
|
||||||
#elif defined(ARDUINO_ARCH_SAM)
|
|
||||||
#include "HAL_DUE/HAL_Due.h"
|
|
||||||
#include "math_32bit.h"
|
|
||||||
#elif defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
|
||||||
#include "HAL_TEENSY35_36/HAL_Teensy.h"
|
|
||||||
#include "math_32bit.h"
|
|
||||||
#elif defined(TARGET_LPC1768)
|
|
||||||
#include "math_32bit.h"
|
|
||||||
#include "HAL_LPC1768/HAL.h"
|
|
||||||
#elif defined(__STM32F1__) || defined(TARGET_STM32F1)
|
|
||||||
#include "math_32bit.h"
|
|
||||||
#include "HAL_STM32F1/HAL_Stm32f1.h"
|
|
||||||
#elif defined(STM32F7)
|
|
||||||
#define CPU_32_BIT
|
|
||||||
#include "math_32bit.h"
|
|
||||||
#include "HAL_STM32F7/HAL_STM32F7.h"
|
|
||||||
#else
|
|
||||||
#error "Unsupported Platform!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // _HAL_H
|
|
|
@ -43,6 +43,7 @@
|
||||||
#include <avr/interrupt.h>
|
#include <avr/interrupt.h>
|
||||||
#include <avr/io.h>
|
#include <avr/io.h>
|
||||||
|
|
||||||
|
#include "../HAL_SPI.h"
|
||||||
#include "fastio_AVR.h"
|
#include "fastio_AVR.h"
|
||||||
#include "watchdog_AVR.h"
|
#include "watchdog_AVR.h"
|
||||||
#include "math_AVR.h"
|
#include "math_AVR.h"
|
|
@ -41,6 +41,17 @@
|
||||||
#include "../../core/macros.h"
|
#include "../../core/macros.h"
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
|
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
|
||||||
|
// Must be reset to 0 by the test function when finished.
|
||||||
|
|
||||||
|
// This is what is really done inside the interrupts.
|
||||||
|
FORCE_INLINE void endstop_ISR_worker( void ) {
|
||||||
|
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
|
||||||
|
}
|
||||||
|
|
||||||
|
// One ISR for all EXT-Interrupts
|
||||||
|
void endstop_ISR(void) { endstop_ISR_worker(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Patch for pins_arduino.h (...\Arduino\hardware\arduino\avr\variants\mega\pins_arduino.h)
|
* Patch for pins_arduino.h (...\Arduino\hardware\arduino\avr\variants\mega\pins_arduino.h)
|
||||||
*
|
*
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
#include "usb/usb_task.h"
|
#include "usb/usb_task.h"
|
|
@ -29,10 +29,14 @@
|
||||||
#ifndef _HAL_DUE_H
|
#ifndef _HAL_DUE_H
|
||||||
#define _HAL_DUE_H
|
#define _HAL_DUE_H
|
||||||
|
|
||||||
|
#define CPU_32_BIT
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
|
|
||||||
|
#include "../math_32bit.h"
|
||||||
|
#include "../HAL_SPI.h"
|
||||||
#include "fastio_Due.h"
|
#include "fastio_Due.h"
|
||||||
#include "watchdog_Due.h"
|
#include "watchdog_Due.h"
|
||||||
#include "HAL_timers_Due.h"
|
#include "HAL_timers_Due.h"
|
|
@ -32,7 +32,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
#include "HAL_timers_Due.h"
|
#include "HAL_timers_Due.h"
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
*/
|
*/
|
||||||
#ifdef ARDUINO_ARCH_SAM
|
#ifdef ARDUINO_ARCH_SAM
|
||||||
|
|
||||||
#include "HAL_Due.h"
|
#include "HAL.h"
|
||||||
#include "InterruptVectors_Due.h"
|
#include "InterruptVectors_Due.h"
|
||||||
|
|
||||||
/* The relocated Exception/Interrupt Table - According to the ARM
|
/* The relocated Exception/Interrupt Table - According to the ARM
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_SAM
|
#ifdef ARDUINO_ARCH_SAM
|
||||||
|
|
||||||
#include "HAL_Due.h"
|
#include "HAL.h"
|
||||||
#include "HAL_timers_Due.h"
|
#include "HAL_timers_Due.h"
|
||||||
|
|
||||||
static pin_t tone_pin;
|
static pin_t tone_pin;
|
||||||
|
|
|
@ -37,6 +37,17 @@
|
||||||
#ifndef _ENDSTOP_INTERRUPTS_H_
|
#ifndef _ENDSTOP_INTERRUPTS_H_
|
||||||
#define _ENDSTOP_INTERRUPTS_H_
|
#define _ENDSTOP_INTERRUPTS_H_
|
||||||
|
|
||||||
|
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
|
||||||
|
// Must be reset to 0 by the test function when finished.
|
||||||
|
|
||||||
|
// This is what is really done inside the interrupts.
|
||||||
|
FORCE_INLINE void endstop_ISR_worker( void ) {
|
||||||
|
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
|
||||||
|
}
|
||||||
|
|
||||||
|
// One ISR for all EXT-Interrupts
|
||||||
|
void endstop_ISR(void) { endstop_ISR_worker(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Endstop interrupts for Due based targets.
|
* Endstop interrupts for Due based targets.
|
||||||
* On Due, all pins support external interrupt capability.
|
* On Due, all pins support external interrupt capability.
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
// Arduino Due core now has watchdog support
|
// Arduino Due core now has watchdog support
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
// Initialize watchdog with a 4 second interrupt time
|
// Initialize watchdog with a 4 second interrupt time
|
||||||
void watchdog_init();
|
void watchdog_init();
|
||||||
|
|
|
@ -28,6 +28,8 @@
|
||||||
#ifndef _HAL_LPC1768_H_
|
#ifndef _HAL_LPC1768_H_
|
||||||
#define _HAL_LPC1768_H_
|
#define _HAL_LPC1768_H_
|
||||||
|
|
||||||
|
#define CPU_32_BIT
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
@ -58,6 +60,8 @@ extern "C" volatile uint32_t _millis;
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <pinmapping.h>
|
#include <pinmapping.h>
|
||||||
|
|
||||||
|
#include "../math_32bit.h"
|
||||||
|
#include "../HAL_SPI.h"
|
||||||
#include "fastio.h"
|
#include "fastio.h"
|
||||||
#include "watchdog.h"
|
#include "watchdog.h"
|
||||||
#include "serial.h"
|
#include "serial.h"
|
||||||
|
|
|
@ -37,6 +37,20 @@
|
||||||
#ifndef _ENDSTOP_INTERRUPTS_H_
|
#ifndef _ENDSTOP_INTERRUPTS_H_
|
||||||
#define _ENDSTOP_INTERRUPTS_H_
|
#define _ENDSTOP_INTERRUPTS_H_
|
||||||
|
|
||||||
|
//Currently this is untested and broken
|
||||||
|
#error "Please disable Endstop Interrupts LPC176x is currently an unsupported platform"
|
||||||
|
|
||||||
|
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
|
||||||
|
// Must be reset to 0 by the test function when finished.
|
||||||
|
|
||||||
|
// This is what is really done inside the interrupts.
|
||||||
|
FORCE_INLINE void endstop_ISR_worker( void ) {
|
||||||
|
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
|
||||||
|
}
|
||||||
|
|
||||||
|
// One ISR for all EXT-Interrupts
|
||||||
|
void endstop_ISR(void) { endstop_ISR_worker(); }
|
||||||
|
|
||||||
void setup_endstop_interrupts(void) {
|
void setup_endstop_interrupts(void) {
|
||||||
#if HAS_X_MAX
|
#if HAS_X_MAX
|
||||||
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE); // assign it
|
attachInterrupt(digitalPinToInterrupt(X_MAX_PIN), endstop_ISR, CHANGE); // assign it
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
#include <STM32ADC.h>
|
#include <STM32ADC.h>
|
||||||
|
|
||||||
//#include <Wire.h>
|
//#include <Wire.h>
|
|
@ -28,6 +28,7 @@
|
||||||
#ifndef _HAL_STM32F1_H
|
#ifndef _HAL_STM32F1_H
|
||||||
#define _HAL_STM32F1_H
|
#define _HAL_STM32F1_H
|
||||||
|
|
||||||
|
#define CPU_32_BIT
|
||||||
#undef DEBUG_NONE
|
#undef DEBUG_NONE
|
||||||
|
|
||||||
#ifndef vsnprintf_P
|
#ifndef vsnprintf_P
|
||||||
|
@ -55,6 +56,9 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
|
#include "../math_32bit.h"
|
||||||
|
#include "../HAL_SPI.h"
|
||||||
|
|
||||||
#include "fastio_Stm32f1.h"
|
#include "fastio_Stm32f1.h"
|
||||||
#include "watchdog_Stm32f1.h"
|
#include "watchdog_Stm32f1.h"
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
#include "../HAL_SPI.h"
|
#include "../HAL_SPI.h"
|
||||||
#include "pins_arduino.h"
|
#include "pins_arduino.h"
|
||||||
#include "spi_pins.h"
|
#include "spi_pins.h"
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
#include "HAL_timers_Stm32f1.h"
|
#include "HAL_timers_Stm32f1.h"
|
||||||
|
|
||||||
|
|
|
@ -49,6 +49,17 @@
|
||||||
#ifndef _ENDSTOP_INTERRUPTS_H_
|
#ifndef _ENDSTOP_INTERRUPTS_H_
|
||||||
#define _ENDSTOP_INTERRUPTS_H_
|
#define _ENDSTOP_INTERRUPTS_H_
|
||||||
|
|
||||||
|
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
|
||||||
|
// Must be reset to 0 by the test function when finished.
|
||||||
|
|
||||||
|
// This is what is really done inside the interrupts.
|
||||||
|
FORCE_INLINE void endstop_ISR_worker( void ) {
|
||||||
|
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
|
||||||
|
}
|
||||||
|
|
||||||
|
// One ISR for all EXT-Interrupts
|
||||||
|
void endstop_ISR(void) { endstop_ISR_worker(); }
|
||||||
|
|
||||||
void setup_endstop_interrupts(void) {
|
void setup_endstop_interrupts(void) {
|
||||||
#if HAS_X_MAX
|
#if HAS_X_MAX
|
||||||
SET_INPUT(X_MAX_PIN);
|
SET_INPUT(X_MAX_PIN);
|
||||||
|
|
1
Marlin/src/HAL/HAL_STM32F1/pinsDebug.h
Normal file
1
Marlin/src/HAL/HAL_STM32F1/pinsDebug.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#error Debug pins is not supported on this Platform!
|
|
@ -9,7 +9,7 @@
|
||||||
******************************************************************************
|
******************************************************************************
|
||||||
* @attention
|
* @attention
|
||||||
*
|
*
|
||||||
* <h2><center>© Copyright © 2016 STMicroelectronics International N.V.
|
* <h2><center>© Copyright © 2016 STMicroelectronics International N.V.
|
||||||
* All rights reserved.</center></h2>
|
* All rights reserved.</center></h2>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
#include "../../../inc/MarlinConfig.h"
|
#include "../../../inc/MarlinConfig.h"
|
||||||
#include "../../HAL.h"
|
#include "../HAL.h"
|
||||||
|
|
||||||
/* Exported constants --------------------------------------------------------*/
|
/* Exported constants --------------------------------------------------------*/
|
||||||
/* EEPROM emulation firmware error codes */
|
/* EEPROM emulation firmware error codes */
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
#include "EEPROM_Emul/eeprom_emul.h"
|
#include "EEPROM_Emul/eeprom_emul.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
//#include <Wire.h>
|
//#include <Wire.h>
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
#ifndef _HAL_STM32F7_H
|
#ifndef _HAL_STM32F7_H
|
||||||
#define _HAL_STM32F7_H
|
#define _HAL_STM32F7_H
|
||||||
|
|
||||||
|
#define CPU_32_BIT
|
||||||
#undef DEBUG_NONE
|
#undef DEBUG_NONE
|
||||||
|
|
||||||
#ifndef vsnprintf_P
|
#ifndef vsnprintf_P
|
||||||
|
@ -40,6 +41,9 @@
|
||||||
|
|
||||||
#include "Arduino.h"
|
#include "Arduino.h"
|
||||||
|
|
||||||
|
#include "../math_32bit.h"
|
||||||
|
#include "../HAL_SPI.h"
|
||||||
|
|
||||||
#include "fastio_STM32F7.h"
|
#include "fastio_STM32F7.h"
|
||||||
#include "watchdog_STM32F7.h"
|
#include "watchdog_STM32F7.h"
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
#include "../HAL_SPI.h"
|
#include "../HAL_SPI.h"
|
||||||
#include "pins_arduino.h"
|
#include "pins_arduino.h"
|
||||||
#include "spi_pins.h"
|
#include "spi_pins.h"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
#include "HAL_timers_STM32F7.h"
|
#include "HAL_timers_STM32F7.h"
|
||||||
|
|
||||||
|
|
|
@ -26,6 +26,17 @@
|
||||||
#ifndef _ENDSTOP_INTERRUPTS_H_
|
#ifndef _ENDSTOP_INTERRUPTS_H_
|
||||||
#define _ENDSTOP_INTERRUPTS_H_
|
#define _ENDSTOP_INTERRUPTS_H_
|
||||||
|
|
||||||
|
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
|
||||||
|
// Must be reset to 0 by the test function when finished.
|
||||||
|
|
||||||
|
// This is what is really done inside the interrupts.
|
||||||
|
FORCE_INLINE void endstop_ISR_worker( void ) {
|
||||||
|
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
|
||||||
|
}
|
||||||
|
|
||||||
|
// One ISR for all EXT-Interrupts
|
||||||
|
void endstop_ISR(void) { endstop_ISR_worker(); }
|
||||||
|
|
||||||
void setup_endstop_interrupts(void) {
|
void setup_endstop_interrupts(void) {
|
||||||
#if HAS_X_MAX
|
#if HAS_X_MAX
|
||||||
pinMode(X_MAX_PIN, INPUT);
|
pinMode(X_MAX_PIN, INPUT);
|
||||||
|
|
1
Marlin/src/HAL/HAL_STM32F7/pinsDebug.h
Normal file
1
Marlin/src/HAL/HAL_STM32F7/pinsDebug.h
Normal file
|
@ -0,0 +1 @@
|
||||||
|
#error Debug pins is not supported on this Platform!
|
|
@ -1,47 +0,0 @@
|
||||||
/**
|
|
||||||
* Marlin 3D Printer Firmware
|
|
||||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
||||||
*
|
|
||||||
* Based on Sprinter and grbl.
|
|
||||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef HAL_SANITYCHECK_H
|
|
||||||
|
|
||||||
#ifdef __AVR__
|
|
||||||
#include "HAL_AVR/SanityCheck_AVR_8_bit.h"
|
|
||||||
|
|
||||||
#elif defined(ARDUINO_ARCH_SAM)
|
|
||||||
#include "HAL_DUE/SanityCheck_Due.h"
|
|
||||||
|
|
||||||
#elif IS_32BIT_TEENSY
|
|
||||||
#include "HAL_TEENSY35_36/SanityCheck_Teensy_35_36.h"
|
|
||||||
|
|
||||||
#elif defined(TARGET_LPC1768)
|
|
||||||
#include "HAL_LPC1768/SanityCheck.h"
|
|
||||||
|
|
||||||
#elif defined(__STM32F1__)
|
|
||||||
#include "HAL_STM32F1/SanityCheck_Stm32f1.h"
|
|
||||||
|
|
||||||
#elif defined(STM32F7)
|
|
||||||
#include "HAL_STM32F7/SanityCheck_STM32F7.h"
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error Unsupported Platform!
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
#if defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
#if defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
#include <Wire.h>
|
#include <Wire.h>
|
||||||
|
|
|
@ -26,6 +26,8 @@
|
||||||
#ifndef _HAL_TEENSY_H
|
#ifndef _HAL_TEENSY_H
|
||||||
#define _HAL_TEENSY_H
|
#define _HAL_TEENSY_H
|
||||||
|
|
||||||
|
#define CPU_32_BIT
|
||||||
|
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
// Includes
|
// Includes
|
||||||
// --------------------------------------------------------------------------
|
// --------------------------------------------------------------------------
|
||||||
|
@ -39,6 +41,9 @@
|
||||||
#undef sq
|
#undef sq
|
||||||
#define sq(x) ((x)*(x))
|
#define sq(x) ((x)*(x))
|
||||||
|
|
||||||
|
#include "../math_32bit.h"
|
||||||
|
#include "../HAL_SPI.h"
|
||||||
|
|
||||||
#include "fastio_Teensy.h"
|
#include "fastio_Teensy.h"
|
||||||
#include "watchdog_Teensy.h"
|
#include "watchdog_Teensy.h"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
#if defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
#if defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
#include <pins_arduino.h>
|
#include <pins_arduino.h>
|
||||||
#include "spi_pins.h"
|
#include "spi_pins.h"
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#if defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
#if defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
#include "HAL_timers_Teensy.h"
|
#include "HAL_timers_Teensy.h"
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,17 @@
|
||||||
#ifndef _ENDSTOP_INTERRUPTS_H_
|
#ifndef _ENDSTOP_INTERRUPTS_H_
|
||||||
#define _ENDSTOP_INTERRUPTS_H_
|
#define _ENDSTOP_INTERRUPTS_H_
|
||||||
|
|
||||||
|
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
|
||||||
|
// Must be reset to 0 by the test function when finished.
|
||||||
|
|
||||||
|
// This is what is really done inside the interrupts.
|
||||||
|
FORCE_INLINE void endstop_ISR_worker( void ) {
|
||||||
|
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
|
||||||
|
}
|
||||||
|
|
||||||
|
// One ISR for all EXT-Interrupts
|
||||||
|
void endstop_ISR(void) { endstop_ISR_worker(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Endstop interrupts for Due based targets.
|
* Endstop interrupts for Due based targets.
|
||||||
* On Due, all pins support external interrupt capability.
|
* On Due, all pins support external interrupt capability.
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
#ifndef WATCHDOG_TEENSY_H
|
#ifndef WATCHDOG_TEENSY_H
|
||||||
#define WATCHDOG_TEENSY_H
|
#define WATCHDOG_TEENSY_H
|
||||||
|
|
||||||
#include "../HAL.h"
|
#include "HAL.h"
|
||||||
|
|
||||||
// Arduino Due core now has watchdog support
|
// Arduino Due core now has watchdog support
|
||||||
|
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
/**
|
|
||||||
* Marlin 3D Printer Firmware
|
|
||||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
||||||
*
|
|
||||||
* Based on Sprinter and grbl.
|
|
||||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef HAL_ENDSTOP_INTERRUPTS_H_
|
|
||||||
#define HAL_ENDSTOP_INTERRUPTS_H_
|
|
||||||
|
|
||||||
volatile uint8_t e_hit = 0; // Different from 0 when the endstops should be tested in detail.
|
|
||||||
// Must be reset to 0 by the test function when finished.
|
|
||||||
|
|
||||||
// This is what is really done inside the interrupts.
|
|
||||||
FORCE_INLINE void endstop_ISR_worker( void ) {
|
|
||||||
e_hit = 2; // Because the detection of a e-stop hit has a 1 step debouncer it has to be called at least twice.
|
|
||||||
}
|
|
||||||
|
|
||||||
// One ISR for all EXT-Interrupts
|
|
||||||
void endstop_ISR(void) { endstop_ISR_worker(); }
|
|
||||||
|
|
||||||
#ifdef __AVR__
|
|
||||||
|
|
||||||
#include "HAL_AVR/endstop_interrupts.h"
|
|
||||||
|
|
||||||
#elif defined(ARDUINO_ARCH_SAM)
|
|
||||||
|
|
||||||
#include "HAL_DUE/endstop_interrupts.h"
|
|
||||||
|
|
||||||
#elif IS_32BIT_TEENSY
|
|
||||||
|
|
||||||
#include "HAL_TEENSY35_36/endstop_interrupts.h"
|
|
||||||
|
|
||||||
#elif defined(__STM32F1__)
|
|
||||||
|
|
||||||
#include "HAL_STM32F1/endstop_interrupts.h"
|
|
||||||
|
|
||||||
#elif defined(STM32F7)
|
|
||||||
|
|
||||||
#include "HAL_STM32F7/endstop_interrupts.h"
|
|
||||||
|
|
||||||
#else
|
|
||||||
|
|
||||||
#error Unsupported Platform!
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* HAL_ENDSTOP_INTERRUPTS_H_ */
|
|
|
@ -1,38 +0,0 @@
|
||||||
/**
|
|
||||||
* Marlin 3D Printer Firmware
|
|
||||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
||||||
*
|
|
||||||
* Based on Sprinter and grbl.
|
|
||||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef HAL_PINSDEBUG_H
|
|
||||||
#define HAL_PINSDEBUG_H
|
|
||||||
|
|
||||||
#ifdef __AVR__
|
|
||||||
#include "HAL_AVR/pinsDebug_AVR_8_bit.h"
|
|
||||||
#elif defined(ARDUINO_ARCH_SAM)
|
|
||||||
#include "HAL_DUE/HAL_pinsDebug_Due.h"
|
|
||||||
#elif IS_32BIT_TEENSY
|
|
||||||
#include "HAL_TEENSY35_36/HAL_pinsDebug_Teensy.h"
|
|
||||||
#elif defined(TARGET_LPC1768)
|
|
||||||
#include "HAL_LPC1768/pinsDebug_LPC1768.h"
|
|
||||||
#else
|
|
||||||
#error Unsupported Platform!
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // HAL_PINSDEBUG_H
|
|
|
@ -1,48 +0,0 @@
|
||||||
/**
|
|
||||||
* Marlin 3D Printer Firmware
|
|
||||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
||||||
*
|
|
||||||
* Based on Sprinter and grbl.
|
|
||||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef HAL_SPI_PINS_H_
|
|
||||||
#define HAL_SPI_PINS_H_
|
|
||||||
|
|
||||||
#ifdef ARDUINO_ARCH_SAM
|
|
||||||
#include "HAL_DUE/spi_pins.h"
|
|
||||||
|
|
||||||
#elif defined(IS_32BIT_TEENSY)
|
|
||||||
#include "HAL_TEENSY35_36/spi_pins.h"
|
|
||||||
|
|
||||||
#elif defined(__AVR__)
|
|
||||||
#include "HAL_AVR/spi_pins.h"
|
|
||||||
|
|
||||||
#elif defined(TARGET_LPC1768)
|
|
||||||
#include "HAL_LPC1768/spi_pins.h"
|
|
||||||
|
|
||||||
#elif defined(__STM32F1__)
|
|
||||||
#include "HAL_STM32F1/spi_pins.h"
|
|
||||||
|
|
||||||
#elif defined(STM32F7)
|
|
||||||
#include "HAL_STM32F7/spi_pins.h"
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "Unsupported Platform!"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif // HAL_SPI_PINS_H_
|
|
28
Marlin/src/HAL/platforms.h
Normal file
28
Marlin/src/HAL/platforms.h
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
#ifndef _HAL_PLATFORMS_H_
|
||||||
|
#define _HAL_PLATFORMS_H_
|
||||||
|
|
||||||
|
#ifndef HAL_PLATFORM
|
||||||
|
|
||||||
|
#ifdef __AVR__
|
||||||
|
#define HAL_PLATFORM HAL_AVR
|
||||||
|
#elif defined(ARDUINO_ARCH_SAM)
|
||||||
|
#define HAL_PLATFORM HAL_DUE
|
||||||
|
#elif defined(__MK64FX512__) || defined(__MK66FX1M0__)
|
||||||
|
#define HAL_PLATFORM HAL_TEENSY35_36
|
||||||
|
#elif defined(TARGET_LPC1768)
|
||||||
|
#define HAL_PLATFORM HAL_LPC1768
|
||||||
|
#elif defined(__STM32F1__) || defined(TARGET_STM32F1)
|
||||||
|
#define HAL_PLATFORM HAL_STM32F1
|
||||||
|
#elif defined(STM32F7)
|
||||||
|
#define HAL_PLATFORM HAL_STM32F7
|
||||||
|
#else
|
||||||
|
#error "Unsupported Platform!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif // HAL_PLATFORM
|
||||||
|
|
||||||
|
#define XSTR_(M) #M
|
||||||
|
#define XSTR(M) XSTR_(M)
|
||||||
|
#define HAL_PATH(PATH, NAME) XSTR(PATH/HAL_PLATFORM/NAME)
|
||||||
|
|
||||||
|
#endif // _HAL_PLATFORMS_H_
|
|
@ -96,7 +96,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
#if ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
||||||
#include "HAL/HAL_endstop_interrupts.h"
|
#include HAL_PATH(HAL, endstop_interrupts.h)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_TRINAMIC
|
#if HAS_TRINAMIC
|
||||||
|
|
|
@ -25,14 +25,16 @@
|
||||||
|
|
||||||
#include "MarlinConfigPre.h"
|
#include "MarlinConfigPre.h"
|
||||||
|
|
||||||
#include "../HAL/HAL.h"
|
#include "../HAL/platforms.h"
|
||||||
|
#include HAL_PATH(../HAL, HAL.h)
|
||||||
|
|
||||||
#include "../pins/pins.h"
|
#include "../pins/pins.h"
|
||||||
#if defined(__AVR__) && !defined(USBCON)
|
#if defined(__AVR__) && !defined(USBCON)
|
||||||
#define HardwareSerial_h // trick to disable the standard HWserial
|
#define HardwareSerial_h // trick to disable the standard HWserial
|
||||||
#endif
|
#endif
|
||||||
#include "Conditionals_post.h"
|
#include "Conditionals_post.h"
|
||||||
#include "SanityCheck.h"
|
#include "SanityCheck.h"
|
||||||
#include "../HAL/HAL_SanityCheck.h"
|
#include HAL_PATH(../HAL, SanityCheck.h)
|
||||||
|
|
||||||
// Include all core headers
|
// Include all core headers
|
||||||
#include "../core/enum.h"
|
#include "../core/enum.h"
|
||||||
|
|
|
@ -886,6 +886,6 @@
|
||||||
|
|
||||||
// Note: default SPI pins are defined in the HAL
|
// Note: default SPI pins are defined in the HAL
|
||||||
|
|
||||||
#include "../HAL/HAL_spi_pins.h"
|
#include HAL_PATH(../HAL, spi_pins.h)
|
||||||
|
|
||||||
#endif // __PINS_H__
|
#endif // __PINS_H__
|
||||||
|
|
|
@ -100,14 +100,13 @@ const PinInfo pin_array[] PROGMEM = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
#include "../HAL/HAL_pinsDebug.h" // get the correct support file for this CPU
|
#include HAL_PATH(../HAL, pinsDebug.h) // get the correct support file for this CPU
|
||||||
|
|
||||||
|
|
||||||
static void print_input_or_output(const bool isout) {
|
static void print_input_or_output(const bool isout) {
|
||||||
serialprintPGM(isout ? PSTR("Output = ") : PSTR("Input = "));
|
serialprintPGM(isout ? PSTR("Output = ") : PSTR("Input = "));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// pretty report with PWM info
|
// pretty report with PWM info
|
||||||
inline void report_pin_state_extended(pin_t pin, bool ignore, bool extended = false, const char *start_string = "") {
|
inline void report_pin_state_extended(pin_t pin, bool ignore, bool extended = false, const char *start_string = "") {
|
||||||
char buffer[MAX_NAME_LENGTH + 1]; // for the sprintf statements
|
char buffer[MAX_NAME_LENGTH + 1]; // for the sprintf statements
|
||||||
|
|
Reference in a new issue