Browse Source

HAL include and other adjustments (#14525)

pull/1/head
Scott Lahteine 6 years ago
committed by GitHub
parent
commit
a2ba0aaaac
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      Marlin/src/HAL/HAL.h
  2. 4
      Marlin/src/HAL/HAL_AVR/HAL.h
  3. 1
      Marlin/src/HAL/HAL_AVR/MarlinSerial.h
  4. 1
      Marlin/src/HAL/HAL_AVR/endstop_interrupts.h
  5. 2
      Marlin/src/HAL/HAL_DUE/fastio_Due.h
  6. 2
      Marlin/src/HAL/HAL_LPC1768/HAL.h
  7. 2
      Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp
  8. 20
      Marlin/src/HAL/HAL_TEENSY31_32/persistent_store_impl.cpp
  9. 2
      Marlin/src/HAL/shared/I2cEeprom.cpp
  10. 2
      Marlin/src/HAL/shared/SpiEeprom.cpp
  11. 67
      Marlin/src/core/macros.h
  12. 77
      Marlin/src/core/minmax.h
  13. 9
      Marlin/src/core/serial.h
  14. 7
      Marlin/src/inc/MarlinConfig.h
  15. 1
      Marlin/src/inc/MarlinConfigPre.h
  16. 7
      Marlin/src/pins/pinsDebug.h
  17. 2
      Marlin/src/pins/pinsDebug_list.h
  18. 5
      Marlin/src/sd/SdVolume.h

2
Marlin/src/HAL/platforms.h → Marlin/src/HAL/HAL.h

@ -50,3 +50,5 @@
#define XSTR_(M) #M #define XSTR_(M) #M
#define XSTR(M) XSTR_(M) #define XSTR(M) XSTR_(M)
#define HAL_PATH(PATH, NAME) XSTR(PATH/HAL_PLATFORM/NAME) #define HAL_PATH(PATH, NAME) XSTR(PATH/HAL_PLATFORM/NAME)
#include HAL_PATH(.,HAL.h)

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

@ -22,8 +22,6 @@
// Includes // Includes
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#include <stdint.h>
#include "../shared/Marduino.h" #include "../shared/Marduino.h"
#include "../shared/HAL_SPI.h" #include "../shared/HAL_SPI.h"
#include "fastio_AVR.h" #include "fastio_AVR.h"
@ -33,9 +31,11 @@
#ifdef USBCON #ifdef USBCON
#include "HardwareSerial.h" #include "HardwareSerial.h"
#else #else
#define HardwareSerial_h // Hack to prevent HardwareSerial.h header inclusion
#include "MarlinSerial.h" #include "MarlinSerial.h"
#endif #endif
#include <stdint.h>
#include <util/delay.h> #include <util/delay.h>
#include <avr/eeprom.h> #include <avr/eeprom.h>
#include <avr/pgmspace.h> #include <avr/pgmspace.h>

1
Marlin/src/HAL/HAL_AVR/MarlinSerial.h

@ -275,7 +275,6 @@
#endif // !USBCON #endif // !USBCON
#ifdef INTERNAL_SERIAL_PORT #ifdef INTERNAL_SERIAL_PORT
template <uint8_t serial> template <uint8_t serial>
struct MarlinInternalSerialCfg { struct MarlinInternalSerialCfg {

1
Marlin/src/HAL/HAL_AVR/endstop_interrupts.h

@ -36,7 +36,6 @@
* (Located in Marlin/buildroot/share/pin_interrupt_test/pin_interrupt_test.ino) * (Located in Marlin/buildroot/share/pin_interrupt_test/pin_interrupt_test.ino)
*/ */
#include "../../core/macros.h"
#include "../../module/endstops.h" #include "../../module/endstops.h"
#include <stdint.h> #include <stdint.h>

2
Marlin/src/HAL/HAL_DUE/fastio_Due.h

@ -39,6 +39,8 @@
#include <pins_arduino.h> #include <pins_arduino.h>
#include "../../inc/MarlinConfigPre.h"
/** /**
* Utility functions * Utility functions
*/ */

2
Marlin/src/HAL/HAL_LPC1768/HAL.h

@ -34,7 +34,7 @@ void HAL_init(void);
#include <stdarg.h> #include <stdarg.h>
#include <algorithm> #include <algorithm>
extern "C" volatile millis_t _millis; extern "C" volatile uint32_t _millis;
#include "../shared/Marduino.h" #include "../shared/Marduino.h"
#include "../shared/math_32bit.h" #include "../shared/math_32bit.h"

2
Marlin/src/HAL/HAL_STM32F1/HAL_sdio_STM32F1.cpp

@ -124,6 +124,8 @@ bool SDIO_ReadBlock(uint32_t blockAddress, uint8_t *data) {
return false; return false;
} }
uint32_t millis();
bool SDIO_WriteBlock(uint32_t blockAddress, const uint8_t *data) { bool SDIO_WriteBlock(uint32_t blockAddress, const uint8_t *data) {
if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false; if (SDIO_GetCardState() != SDIO_CARD_TRANSFER) return false;
if (blockAddress >= SdCard.LogBlockNbr) return false; if (blockAddress >= SdCard.LogBlockNbr) return false;

20
Marlin/src/HAL/HAL_TEENSY31_32/persistent_store_impl.cpp

@ -1,10 +1,28 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2019 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* 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/>.
*
*/
#ifdef __MK20DX256__ #ifdef __MK20DX256__
#include "../../inc/MarlinConfig.h" #include "../../inc/MarlinConfig.h"
#if ENABLED(EEPROM_SETTINGS) #if ENABLED(EEPROM_SETTINGS)
#include "../persistent_store_api.h" #include "../shared/persistent_store_api.h"
namespace HAL { namespace HAL {
namespace PersistentStore { namespace PersistentStore {

2
Marlin/src/HAL/shared/I2cEeprom.cpp

@ -33,7 +33,7 @@
// Includes // Includes
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------
#include HAL_PATH(.., HAL.h) #include "../HAL.h"
#include <Wire.h> #include <Wire.h>
// -------------------------------------------------------------------------- // --------------------------------------------------------------------------

2
Marlin/src/HAL/shared/SpiEeprom.cpp

@ -29,7 +29,7 @@
#if ENABLED(SPI_EEPROM) #if ENABLED(SPI_EEPROM)
#include HAL_PATH(.., HAL.h) #include "../HAL.h"
#define CMD_WREN 6 // WREN #define CMD_WREN 6 // WREN
#define CMD_READ 2 // WRITE #define CMD_READ 2 // WRITE

67
Marlin/src/core/macros.h

@ -21,8 +21,6 @@
*/ */
#pragma once #pragma once
#include "minmax.h"
#define NUM_AXIS 4 #define NUM_AXIS 4
#define ABCE 4 #define ABCE 4
#define XYZE 4 #define XYZE 4
@ -75,10 +73,16 @@
#undef _BV #undef _BV
#define _BV(n) (1<<(n)) #define _BV(n) (1<<(n))
#define TEST(n,b) !!((n)&_BV(b)) #define TEST(n,b) !!((n)&_BV(b))
#define SBI(n,b) (n |= _BV(b))
#define CBI(n,b) (n &= ~_BV(b))
#define SET_BIT_TO(N,B,TF) do{ if (TF) SBI(N,B); else CBI(N,B); }while(0) #define SET_BIT_TO(N,B,TF) do{ if (TF) SBI(N,B); else CBI(N,B); }while(0)
#ifndef SBI
#define SBI(A,B) (A |= (1 << (B)))
#endif
#ifndef CBI
#define CBI(A,B) (A &= ~(1 << (B)))
#endif
#define _BV32(b) (1UL << (b)) #define _BV32(b) (1UL << (b))
#define TEST32(n,b) !!((n)&_BV32(b)) #define TEST32(n,b) !!((n)&_BV32(b))
#define SBI32(n,b) (n |= _BV32(b)) #define SBI32(n,b) (n |= _BV32(b))
@ -269,3 +273,58 @@
#else #else
#define I2C_ADDRESS(A) A #define I2C_ADDRESS(A) A
#endif #endif
// Use NUM_ARGS(__VA_ARGS__) to get the number of variadic arguments
#define _NUM_ARGS(_0,_24_,_23,_22,_21,_20,_19,_18,_17,_16,_15,_14,_13,_12,_11,_10,_9,_8,_7,_6,_5,_4,_3,_2,_1,N,...) N
#define NUM_ARGS(V...) _NUM_ARGS(0,V,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)
#ifdef __cplusplus
#ifndef _MINMAX_H_
#define _MINMAX_H_
extern "C++" {
// C++11 solution that is standards compliant. Return type is deduced automatically
template <class L, class R> static inline constexpr auto _MIN(const L lhs, const R rhs) -> decltype(lhs + rhs) {
return lhs < rhs ? lhs : rhs;
}
template <class L, class R> static inline constexpr auto _MAX(const L lhs, const R rhs) -> decltype(lhs + rhs) {
return lhs > rhs ? lhs : rhs;
}
template<class T, class ... Ts> static inline constexpr const T _MIN(T V, Ts... Vs) { return _MIN(V, _MIN(Vs...)); }
template<class T, class ... Ts> static inline constexpr const T _MAX(T V, Ts... Vs) { return _MAX(V, _MAX(Vs...)); }
}
#endif
#else
#define MIN_2(a,b) ((a)<(b)?(a):(b))
#define MIN_3(a,...) MIN_2(a,MIN_2(__VA_ARGS__))
#define MIN_4(a,...) MIN_2(a,MIN_3(__VA_ARGS__))
#define MIN_5(a,...) MIN_2(a,MIN_4(__VA_ARGS__))
#define MIN_6(a,...) MIN_2(a,MIN_5(__VA_ARGS__))
#define MIN_7(a,...) MIN_2(a,MIN_6(__VA_ARGS__))
#define MIN_8(a,...) MIN_2(a,MIN_7(__VA_ARGS__))
#define MIN_9(a,...) MIN_2(a,MIN_8(__VA_ARGS__))
#define MIN_10(a,...) MIN_2(a,MIN_9(__VA_ARGS__))
#define __MIN_N(N, ...) MIN_##N(__VA_ARGS__)
#define _MIN_N(N, ...) __MIN_N(N,__VA_ARGS__)
#define _MIN(...) _MIN_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__)
#define MAX_2(a,b) ((a)>(b)?(a):(b))
#define MAX_3(a,...) MAX_2(a,MAX_2(__VA_ARGS__))
#define MAX_4(a,...) MAX_2(a,MAX_3(__VA_ARGS__))
#define MAX_5(a,...) MAX_2(a,MAX_4(__VA_ARGS__))
#define MAX_6(a,...) MAX_2(a,MAX_5(__VA_ARGS__))
#define MAX_7(a,...) MAX_2(a,MAX_6(__VA_ARGS__))
#define MAX_8(a,...) MAX_2(a,MAX_7(__VA_ARGS__))
#define MAX_9(a,...) MAX_2(a,MAX_8(__VA_ARGS__))
#define MAX_10(a,...) MAX_2(a,MAX_9(__VA_ARGS__))
#define __MAX_N(N, ...) MAX_##N(__VA_ARGS__)
#define _MAX_N(N, ...) __MAX_N(N,__VA_ARGS__)
#define _MAX(...) _MAX_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__)
#endif

77
Marlin/src/core/minmax.h

@ -1,77 +0,0 @@
/**
* Marlin 3D Printer Firmware
* Copyright (c) 2019 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/>.
*
*/
#pragma once
// Use NUM_ARGS(__VA_ARGS__) to get the number of variadic arguments
#define _NUM_ARGS(_0,_24_,_23,_22,_21,_20,_19,_18,_17,_16,_15,_14,_13,_12,_11,_10,_9,_8,_7,_6,_5,_4,_3,_2,_1,N,...) N
#define NUM_ARGS(V...) _NUM_ARGS(0,V,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0)
#ifdef __cplusplus
#ifndef _MINMAX_H_
#define _MINMAX_H_
extern "C++" {
// C++11 solution that is standards compliant. Return type is deduced automatically
template <class L, class R> static inline constexpr auto _MIN(const L lhs, const R rhs) -> decltype(lhs + rhs) {
return lhs < rhs ? lhs : rhs;
}
template <class L, class R> static inline constexpr auto _MAX(const L lhs, const R rhs) -> decltype(lhs + rhs) {
return lhs > rhs ? lhs : rhs;
}
template<class T, class ... Ts> static inline constexpr const T _MIN(T V, Ts... Vs) { return _MIN(V, _MIN(Vs...)); }
template<class T, class ... Ts> static inline constexpr const T _MAX(T V, Ts... Vs) { return _MAX(V, _MAX(Vs...)); }
}
#endif
#else
#define MIN_2(a,b) ((a)<(b)?(a):(b))
#define MIN_3(a,...) MIN_2(a,MIN_2(__VA_ARGS__))
#define MIN_4(a,...) MIN_2(a,MIN_3(__VA_ARGS__))
#define MIN_5(a,...) MIN_2(a,MIN_4(__VA_ARGS__))
#define MIN_6(a,...) MIN_2(a,MIN_5(__VA_ARGS__))
#define MIN_7(a,...) MIN_2(a,MIN_6(__VA_ARGS__))
#define MIN_8(a,...) MIN_2(a,MIN_7(__VA_ARGS__))
#define MIN_9(a,...) MIN_2(a,MIN_8(__VA_ARGS__))
#define MIN_10(a,...) MIN_2(a,MIN_9(__VA_ARGS__))
#define __MIN_N(N, ...) MIN_##N(__VA_ARGS__)
#define _MIN_N(N, ...) __MIN_N(N,__VA_ARGS__)
#define MIN(...) _MIN_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__)
#define MAX_2(a,b) ((a)>(b)?(a):(b))
#define MAX_3(a,...) MAX_2(a,MAX_2(__VA_ARGS__))
#define MAX_4(a,...) MAX_2(a,MAX_3(__VA_ARGS__))
#define MAX_5(a,...) MAX_2(a,MAX_4(__VA_ARGS__))
#define MAX_6(a,...) MAX_2(a,MAX_5(__VA_ARGS__))
#define MAX_7(a,...) MAX_2(a,MAX_6(__VA_ARGS__))
#define MAX_8(a,...) MAX_2(a,MAX_7(__VA_ARGS__))
#define MAX_9(a,...) MAX_2(a,MAX_8(__VA_ARGS__))
#define MAX_10(a,...) MAX_2(a,MAX_9(__VA_ARGS__))
#define __MAX_N(N, ...) MAX_##N(__VA_ARGS__)
#define _MAX_N(N, ...) __MAX_N(N,__VA_ARGS__)
#define MAX(...) _MAX_N(NUM_ARGS(__VA_ARGS__), __VA_ARGS__)
#endif

9
Marlin/src/core/serial.h

@ -21,9 +21,12 @@
*/ */
#pragma once #pragma once
#include "../inc/MarlinConfigPre.h" //#include <stdint.h>
#include "../core/minmax.h"
#include HAL_PATH(../HAL, HAL.h) //#include "../inc/MarlinConfigPre.h"
#include "../HAL/HAL.h"
// #include "../core/macros.h"
/** /**
* Define debug bit-masks * Define debug bit-masks

7
Marlin/src/inc/MarlinConfig.h

@ -27,16 +27,12 @@
#include "MarlinConfigPre.h" #include "MarlinConfigPre.h"
#include HAL_PATH(../HAL, HAL.h) #include "../HAL/HAL.h"
#include "../pins/pins.h" #include "../pins/pins.h"
#include HAL_PATH(../HAL, spi_pins.h) #include HAL_PATH(../HAL, spi_pins.h)
#if defined(__AVR__) && !defined(USBCON)
#define HardwareSerial_h // trick to disable the standard HWserial
#endif
#include "Conditionals_post.h" #include "Conditionals_post.h"
#include "SanityCheck.h" #include "SanityCheck.h"
@ -47,4 +43,3 @@
#include "../core/language.h" #include "../core/language.h"
#include "../core/utility.h" #include "../core/utility.h"
#include "../core/serial.h" #include "../core/serial.h"
#include "../core/minmax.h"

1
Marlin/src/inc/MarlinConfigPre.h

@ -27,7 +27,6 @@
// Prefix header to acquire configurations // Prefix header to acquire configurations
// //
#include "../HAL/platforms.h"
#include "../core/boards.h" #include "../core/boards.h"
#include "../core/macros.h" #include "../core/macros.h"
#include "../core/millis_t.h" #include "../core/millis_t.h"

7
Marlin/src/pins/pinsDebug.h

@ -17,6 +17,8 @@
* *
*/ */
#include "../inc/MarlinConfig.h"
#define MAX_NAME_LENGTH 39 // one place to specify the format of all the sources of names #define MAX_NAME_LENGTH 39 // one place to specify the format of all the sources of names
// "-" left justify, "39" minimum width of name, pad with blanks // "-" left justify, "39" minimum width of name, pad with blanks
@ -40,7 +42,7 @@
#define REPORT_NAME_ANALOG(COUNTER, NAME) _ADD_PIN(#NAME, COUNTER) #define REPORT_NAME_ANALOG(COUNTER, NAME) _ADD_PIN(#NAME, COUNTER)
#include "pinsDebug_list.h" #include "pinsDebug_list.h"
#line 47 #line 46
// manually add pins that have names that are macros which don't play well with these macros // manually add pins that have names that are macros which don't play well with these macros
#if SERIAL_PORT == 0 && (AVR_ATmega2560_FAMILY || AVR_ATmega1284_FAMILY || defined(ARDUINO_ARCH_SAM)) #if SERIAL_PORT == 0 && (AVR_ATmega2560_FAMILY || AVR_ATmega1284_FAMILY || defined(ARDUINO_ARCH_SAM))
@ -92,11 +94,10 @@ const PinInfo pin_array[] PROGMEM = {
#endif #endif
#include "pinsDebug_list.h" #include "pinsDebug_list.h"
#line 99 #line 98
}; };
#include HAL_PATH(../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
#ifndef M43_NEVER_TOUCH #ifndef M43_NEVER_TOUCH

2
Marlin/src/pins/pinsDebug_list.h

@ -24,7 +24,7 @@
// Pin lists 1.1.x and 2.0.x synchronized 2018-02-17 // Pin lists 1.1.x and 2.0.x synchronized 2018-02-17
#line 31 // set __LINE__ to a known value for both passes #line 28 // set __LINE__ to a known value for both passes
// //
// Analog Pin Assignments // Analog Pin Assignments

5
Marlin/src/sd/SdVolume.h

@ -33,6 +33,10 @@
* This file is part of the Arduino Sd2Card Library * This file is part of the Arduino Sd2Card Library
*/ */
#include <stdint.h>
#include "../inc/MarlinConfigPre.h"
#if ENABLED(USB_FLASH_DRIVE_SUPPORT) #if ENABLED(USB_FLASH_DRIVE_SUPPORT)
#include "usb_flashdrive/Sd2Card_FlashDrive.h" #include "usb_flashdrive/Sd2Card_FlashDrive.h"
#elif ENABLED(SDIO_SUPPORT) #elif ENABLED(SDIO_SUPPORT)
@ -43,7 +47,6 @@
#include "SdFatConfig.h" #include "SdFatConfig.h"
#include "SdFatStructs.h" #include "SdFatStructs.h"
#include <stdint.h>
//============================================================================== //==============================================================================
// SdVolume class // SdVolume class

Loading…
Cancel
Save