diff --git a/Marlin/src/HAL/HAL_AVR/HAL.cpp b/Marlin/src/HAL/HAL_AVR/HAL.cpp index c240c787ac7253a12e0531a278b5bf9a6f867bc5..902b4cf1a263cff464a27c89eef3637b8a7526aa 100644 --- a/Marlin/src/HAL/HAL_AVR/HAL.cpp +++ b/Marlin/src/HAL/HAL_AVR/HAL.cpp @@ -67,6 +67,22 @@ // Public functions // -------------------------------------------------------------------------- +void HAL_init(void) { + // Init Servo Pins + #if PIN_EXISTS(SERVO0) + OUT_WRITE(SERVO0_PIN, LOW); + #endif + #if PIN_EXISTS(SERVO1) + OUT_WRITE(SERVO1_PIN, LOW); + #endif + #if PIN_EXISTS(SERVO2) + OUT_WRITE(SERVO2_PIN, LOW); + #endif + #if PIN_EXISTS(SERVO3) + OUT_WRITE(SERVO3_PIN, LOW); + #endif +} + #if ENABLED(SDSUPPORT) #include "../../sd/SdFatUtil.h" diff --git a/Marlin/src/HAL/HAL_AVR/HAL.h b/Marlin/src/HAL/HAL_AVR/HAL.h index c6d2137c2fecd393de40242727d54bd4f4e229d2..ec88eac67d1a6e4e6e3d5bd48072c377d823324c 100644 --- a/Marlin/src/HAL/HAL_AVR/HAL.h +++ b/Marlin/src/HAL/HAL_AVR/HAL.h @@ -109,6 +109,8 @@ typedef int8_t pin_t; // Public functions // -------------------------------------------------------------------------- +void HAL_init(void); + //void cli(void); //void _delay_ms(const int delay); diff --git a/Marlin/src/HAL/HAL_DUE/HAL.h b/Marlin/src/HAL/HAL_DUE/HAL.h index 27855da01847b978f88eb6f93b8218f6fbe57b31..4abbc40e00a9b2ac058d8d13379f6c6102ce0808 100644 --- a/Marlin/src/HAL/HAL_DUE/HAL.h +++ b/Marlin/src/HAL/HAL_DUE/HAL.h @@ -153,7 +153,6 @@ void noTone(const pin_t _pin); // Enable hooks into idle and setup for HAL #define HAL_IDLETASK 1 -#define HAL_INIT 1 void HAL_idletask(void); void HAL_init(void); diff --git a/Marlin/src/HAL/HAL_ESP32/HAL.h b/Marlin/src/HAL/HAL_ESP32/HAL.h index 9e4ab78a9a9775d1239d0a533b8a99c2ad006b64..403f7bb7a2977be0c2ea1d9ed0f74a40e378f2bf 100644 --- a/Marlin/src/HAL/HAL_ESP32/HAL.h +++ b/Marlin/src/HAL/HAL_ESP32/HAL.h @@ -123,7 +123,6 @@ void HAL_adc_start_conversion(uint8_t adc_pin); // Enable hooks into idle and setup for HAL #define HAL_IDLETASK 1 -#define HAL_INIT 1 #define BOARD_INIT() HAL_init_board(); void HAL_idletask(void); void HAL_init(void); diff --git a/Marlin/src/HAL/HAL_LINUX/HAL.h b/Marlin/src/HAL/HAL_LINUX/HAL.h index bf537293e515da796e043e2d4bafde32da3b225d..935f0661d02d83b1f5b05b9fdcbce56f067e6f2d 100644 --- a/Marlin/src/HAL/HAL_LINUX/HAL.h +++ b/Marlin/src/HAL/HAL_LINUX/HAL.h @@ -82,7 +82,9 @@ extern HalSerial usb_serial; #define ENABLE_ISRS() #define DISABLE_ISRS() -//Utility functions +inline void HAL_init(void) { } + +// Utility functions int freeMemory(void); // SPI: Extended functions which take a channel number (hardware SPI only) diff --git a/Marlin/src/HAL/HAL_LPC1768/HAL.h b/Marlin/src/HAL/HAL_LPC1768/HAL.h index 5a11dfd671ab7b6af96d5c29810b1d3ffb1e60d4..c88f201774b03bc6c800fcaba660493b443a864d 100644 --- a/Marlin/src/HAL/HAL_LPC1768/HAL.h +++ b/Marlin/src/HAL/HAL_LPC1768/HAL.h @@ -27,9 +27,8 @@ */ #define CPU_32_BIT -#define HAL_INIT -void HAL_init(); +void HAL_init(void); #include <stdint.h> #include <stdarg.h> diff --git a/Marlin/src/HAL/HAL_LPC1768/main.cpp b/Marlin/src/HAL/HAL_LPC1768/main.cpp index 86e7b5f99680ff6fa4ed76ba2d24183b9db0e668..6a734c54161efa5937226d0e2c65cd95b5ce8ea1 100644 --- a/Marlin/src/HAL/HAL_LPC1768/main.cpp +++ b/Marlin/src/HAL/HAL_LPC1768/main.cpp @@ -48,9 +48,9 @@ void SysTick_Callback() { disk_timerproc(); } -void HAL_init() { +void HAL_init(void) { - // Support the 4 LEDs some LPC176x boards have + // Init LEDs #if PIN_EXISTS(LED) SET_DIR_OUTPUT(LED_PIN); WRITE_PIN_CLR(LED_PIN); @@ -74,6 +74,20 @@ void HAL_init() { } #endif + // Init Servo Pins + #if PIN_EXISTS(SERVO0) + OUT_WRITE(SERVO0_PIN, LOW); + #endif + #if PIN_EXISTS(SERVO1) + OUT_WRITE(SERVO1_PIN, LOW); + #endif + #if PIN_EXISTS(SERVO2) + OUT_WRITE(SERVO2_PIN, LOW); + #endif + #if PIN_EXISTS(SERVO3) + OUT_WRITE(SERVO3_PIN, LOW); + #endif + //debug_frmwrk_init(); //_DBG("\n\nDebug running\n"); // Initialise the SD card chip select pins as soon as possible diff --git a/Marlin/src/HAL/HAL_STM32/HAL.h b/Marlin/src/HAL/HAL_STM32/HAL.h index bc0ad10115d1b5c930ea0f33a79c67a8f31047e8..1cd8c7fa6ef16dac984f538437969086ae66fe98 100644 --- a/Marlin/src/HAL/HAL_STM32/HAL.h +++ b/Marlin/src/HAL/HAL_STM32/HAL.h @@ -151,7 +151,6 @@ extern uint16_t HAL_adc_result; #define __bss_end __bss_end__ // Enable hooks into setup for HAL -#define HAL_INIT 1 void HAL_init(void); /** clear reset reason */ diff --git a/Marlin/src/HAL/HAL_STM32F1/HAL.h b/Marlin/src/HAL/HAL_STM32F1/HAL.h index 8ad09e64d7e037f5e5f1d706b0fbe8ecb7a4a641..ac0dd88d796ef789ad4843536703f4a439369fde 100644 --- a/Marlin/src/HAL/HAL_STM32F1/HAL.h +++ b/Marlin/src/HAL/HAL_STM32F1/HAL.h @@ -117,9 +117,8 @@ #define NUM_SERIAL 1 #endif -// Use HAL_init() to set interrupt grouping. -#define HAL_INIT -void HAL_init(); +// Set interrupt grouping for this MCU +void HAL_init(void); /** * TODO: review this to return 1 for pins that are not analog input diff --git a/Marlin/src/HAL/HAL_STM32F4/HAL.h b/Marlin/src/HAL/HAL_STM32F4/HAL.h index 4f621e348a843975d94797085811c7021af320a8..b381a67623188e81a4f07309fdfe8c0026f4a035 100644 --- a/Marlin/src/HAL/HAL_STM32F4/HAL.h +++ b/Marlin/src/HAL/HAL_STM32F4/HAL.h @@ -158,6 +158,8 @@ extern uint16_t HAL_adc_result; // Memory related #define __bss_end __bss_end__ +inline void HAL_init(void) { } + /** clear reset reason */ void HAL_clear_reset_source (void); diff --git a/Marlin/src/HAL/HAL_STM32F7/HAL.h b/Marlin/src/HAL/HAL_STM32F7/HAL.h index 729547e94e5a2bfe75f534c8471579a42d845ef1..5d6da6ba20e465285d640b38c1b7a77e406a60d9 100644 --- a/Marlin/src/HAL/HAL_STM32F7/HAL.h +++ b/Marlin/src/HAL/HAL_STM32F7/HAL.h @@ -145,6 +145,8 @@ extern uint16_t HAL_adc_result; // Memory related #define __bss_end __bss_end__ +inline void HAL_init(void) { } + /** clear reset reason */ void HAL_clear_reset_source (void); diff --git a/Marlin/src/HAL/HAL_TEENSY31_32/HAL.h b/Marlin/src/HAL/HAL_TEENSY31_32/HAL.h index dbc75540b3e921dfb1a697a6d099d694eaa8b4ce..2bd6fdd22eae2f59aec93a671a19dc2b83297fc7 100644 --- a/Marlin/src/HAL/HAL_TEENSY31_32/HAL.h +++ b/Marlin/src/HAL/HAL_TEENSY31_32/HAL.h @@ -89,6 +89,8 @@ typedef int8_t pin_t; #undef pgm_read_word #define pgm_read_word(addr) (*((uint16_t*)(addr))) +inline void HAL_init(void) { } + // Clear the reset reason void HAL_clear_reset_source(void); diff --git a/Marlin/src/HAL/HAL_TEENSY35_36/HAL.h b/Marlin/src/HAL/HAL_TEENSY35_36/HAL.h index 9ead7405a7466b3fdd97dee304908ceb55ab38cd..223ad8499da0744d72ae3140147df90ef9cd1c02 100644 --- a/Marlin/src/HAL/HAL_TEENSY35_36/HAL.h +++ b/Marlin/src/HAL/HAL_TEENSY35_36/HAL.h @@ -97,6 +97,8 @@ typedef int8_t pin_t; #undef pgm_read_word #define pgm_read_word(addr) (*((uint16_t*)(addr))) +inline void HAL_init(void) { } + /** clear reset reason */ void HAL_clear_reset_source(void); diff --git a/Marlin/src/Marlin.cpp b/Marlin/src/Marlin.cpp index 08042dd5c5d84a2e8542b25205ddc1c160d6d196..6224f95f1b3fc13d52e78a5dad30fbd8d8821810 100644 --- a/Marlin/src/Marlin.cpp +++ b/Marlin/src/Marlin.cpp @@ -822,9 +822,7 @@ void stop() { */ void setup() { - #ifdef HAL_INIT - HAL_init(); - #endif + HAL_init(); #if HAS_DRIVER(L6470) L6470.init(); // setup SPI and then init chips