Skip to content

Commit

Permalink
Reduce warnings, extern "C" cleanup (MarlinFirmware#20279)
Browse files Browse the repository at this point in the history
  • Loading branch information
thinkyhead committed Apr 26, 2021
1 parent 69552fb commit 0bb9a53
Show file tree
Hide file tree
Showing 26 changed files with 170 additions and 122 deletions.
16 changes: 10 additions & 6 deletions Marlin/src/HAL/AVR/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,12 +122,16 @@ inline uint8_t HAL_get_reset_source() { return MCUSR; }

inline void HAL_reboot() {} // reboot the board or restart the bootloader

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
extern "C" {
int freeMemory();
}
#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

extern "C" int freeMemory();

#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

// ADC
#ifdef DIDR2
Expand Down
12 changes: 9 additions & 3 deletions Marlin/src/HAL/DUE/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,16 @@ void HAL_init();
//
void _delay_ms(const int delay);

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

int freeMemory();
#pragma GCC diagnostic pop

#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

#ifdef __cplusplus
extern "C" {
Expand Down
12 changes: 9 additions & 3 deletions Marlin/src/HAL/ESP32/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -100,10 +100,16 @@ inline void HAL_reboot() {} // reboot the board or restart the bootloader

void _delay_ms(int delay);

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

int freeMemory();
#pragma GCC diagnostic pop

#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

void analogWrite(pin_t pin, int value);

Expand Down
8 changes: 5 additions & 3 deletions Marlin/src/HAL/ESP32/timers.h
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,11 @@ typedef uint64_t hal_timer_t;
#define HAL_PWM_TIMER_ISR() extern "C" void pwmTC_Handler()
#endif

extern "C" void tempTC_Handler();
extern "C" void stepTC_Handler();
extern "C" void pwmTC_Handler();
extern "C" {
void tempTC_Handler();
void stepTC_Handler();
void pwmTC_Handler();
}

// ------------------------
// Types
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/HAL/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@

#include "platforms.h"

#ifndef GCC_VERSION
#define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
#endif

#include HAL_PATH(.,HAL.h)

#ifdef SERIAL_PORT_2
Expand Down
17 changes: 6 additions & 11 deletions Marlin/src/HAL/LINUX/HAL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,18 +27,13 @@
HalSerial usb_serial;

// U8glib required functions
extern "C" void u8g_xMicroDelay(uint16_t val) {
DELAY_US(val);
}
extern "C" void u8g_MicroDelay() {
u8g_xMicroDelay(1);
}
extern "C" void u8g_10MicroDelay() {
u8g_xMicroDelay(10);
}
extern "C" void u8g_Delay(uint16_t val) {
delay(val);
extern "C" {
void u8g_xMicroDelay(uint16_t val) { DELAY_US(val); }
void u8g_MicroDelay() { u8g_xMicroDelay(1); }
void u8g_10MicroDelay() { u8g_xMicroDelay(10); }
void u8g_Delay(uint16_t val) { delay(val); }
}

//************************//

// return free heap space
Expand Down
12 changes: 9 additions & 3 deletions Marlin/src/HAL/LINUX/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,10 +79,16 @@ extern HalSerial usb_serial;
inline void HAL_init() {}

// Utility functions
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

int freeMemory();
#pragma GCC diagnostic pop

#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

// ADC
#define HAL_ADC_VREF 5.0
Expand Down
11 changes: 6 additions & 5 deletions Marlin/src/HAL/LINUX/include/Arduino.h
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,11 @@ void cli(); // Disable
void sei(); // Enable
void attachInterrupt(uint32_t pin, void (*callback)(), uint32_t mode);
void detachInterrupt(uint32_t pin);
extern "C" void GpioEnableInt(uint32_t port, uint32_t pin, uint32_t mode);
extern "C" void GpioDisableInt(uint32_t port, uint32_t pin);

extern "C" {
void GpioEnableInt(uint32_t port, uint32_t pin, uint32_t mode);
void GpioDisableInt(uint32_t port, uint32_t pin);
}

// Program Memory
#define pgm_read_ptr(addr) (*((void**)(addr)))
Expand All @@ -92,9 +95,7 @@ using std::memcpy;
#define strlen_P strlen

// Time functions
extern "C" {
void delay(const int milis);
}
extern "C" void delay(const int milis);
void _delay_ms(const int delay);
void delayMicroseconds(unsigned long);
uint32_t millis();
Expand Down
17 changes: 6 additions & 11 deletions Marlin/src/HAL/LPC1768/HAL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,13 @@
uint32_t HAL_adc_reading = 0;

// U8glib required functions
extern "C" void u8g_xMicroDelay(uint16_t val) {
DELAY_US(val);
}
extern "C" void u8g_MicroDelay() {
u8g_xMicroDelay(1);
}
extern "C" void u8g_10MicroDelay() {
u8g_xMicroDelay(10);
}
extern "C" void u8g_Delay(uint16_t val) {
delay(val);
extern "C" {
void u8g_xMicroDelay(uint16_t val) { DELAY_US(val); }
void u8g_MicroDelay() { u8g_xMicroDelay(1); }
void u8g_10MicroDelay() { u8g_xMicroDelay(10); }
void u8g_Delay(uint16_t val) { delay(val); }
}

//************************//

// return free heap space
Expand Down
12 changes: 9 additions & 3 deletions Marlin/src/HAL/LPC1768/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,16 @@ extern "C" volatile uint32_t _millis;
//
// Utility functions
//
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

int freeMemory();
#pragma GCC diagnostic pop

#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

//
// ADC API
Expand Down
19 changes: 4 additions & 15 deletions Marlin/src/HAL/LPC1768/MarlinSerial.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,19 @@

#if USING_SERIAL_0
MarlinSerial MSerial(LPC_UART0);
extern "C" void UART0_IRQHandler() {
MSerial.IRQHandler();
}
extern "C" void UART0_IRQHandler() { MSerial.IRQHandler(); }
#endif

#if USING_SERIAL_1
MarlinSerial MSerial1((LPC_UART_TypeDef *) LPC_UART1);
extern "C" void UART1_IRQHandler() {
MSerial1.IRQHandler();
}
extern "C" void UART1_IRQHandler() { MSerial1.IRQHandler(); }
#endif

#if USING_SERIAL_2
MarlinSerial MSerial2(LPC_UART2);
extern "C" void UART2_IRQHandler() {
MSerial2.IRQHandler();
}
extern "C" void UART2_IRQHandler() { MSerial2.IRQHandler(); }
#endif

#if USING_SERIAL_3
MarlinSerial MSerial3(LPC_UART3);
extern "C" void UART3_IRQHandler() {
MSerial3.IRQHandler();
}
extern "C" void UART3_IRQHandler() { MSerial3.IRQHandler(); }
#endif

#endif // TARGET_LPC1768
12 changes: 6 additions & 6 deletions Marlin/src/HAL/LPC1768/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,18 @@
#include <CDCSerial.h>
#include <usb/mscuser.h>

extern "C" {
#include <debug_frmwrk.h>
}

#include "../../inc/MarlinConfig.h"
#include "../../core/millis_t.h"

#include "../../sd/cardreader.h"

extern uint32_t MSC_SD_Init(uint8_t pdrv);
extern "C" int isLPC1769();
extern "C" void disk_timerproc();

extern "C" {
#include <debug_frmwrk.h>
extern "C" int isLPC1769();
extern "C" void disk_timerproc();
}

void SysTick_Callback() { disk_timerproc(); }

Expand Down
12 changes: 9 additions & 3 deletions Marlin/src/HAL/SAMD51/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,16 @@ void HAL_idletask();
//
FORCE_INLINE void _delay_ms(const int delay_ms) { delay(delay_ms); }

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

int freeMemory();
#pragma GCC diagnostic pop

#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

#ifdef __cplusplus
extern "C" {
Expand Down
10 changes: 7 additions & 3 deletions Marlin/src/HAL/STM32/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,15 +140,19 @@ void _delay_ms(const int delay);

extern "C" char* _sbrk(int incr);

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

static inline int freeMemory() {
volatile char top;
return &top - reinterpret_cast<char*>(_sbrk(0));
}

#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

//
// ADC
Expand Down
10 changes: 7 additions & 3 deletions Marlin/src/HAL/STM32F1/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -189,8 +189,10 @@ inline void HAL_reboot() {} // reboot the board or restart the bootloader

void _delay_ms(const int delay);

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

/*
extern "C" {
Expand All @@ -213,7 +215,9 @@ static int freeMemory() {
return &top - reinterpret_cast<char*>(_sbrk(0));
}

#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

//
// ADC
Expand Down
6 changes: 4 additions & 2 deletions Marlin/src/HAL/STM32F1/timers.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,8 +129,10 @@ timer_dev* get_timer_dev(int number);
#define HAL_STEP_TIMER_ISR() extern "C" void stepTC_Handler()
#endif

extern "C" void tempTC_Handler();
extern "C" void stepTC_Handler();
extern "C" {
void tempTC_Handler();
void stepTC_Handler();
}

// ------------------------
// Public Variables
Expand Down
10 changes: 7 additions & 3 deletions Marlin/src/HAL/STM32_F4_F7/HAL.h
Original file line number Diff line number Diff line change
Expand Up @@ -162,15 +162,19 @@ int freeMemory() {
}
*/

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#if GCC_VERSION <= 50000
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-function"
#endif

static inline int freeMemory() {
volatile char top;
return &top - reinterpret_cast<char*>(_sbrk(0));
}

#pragma GCC diagnostic pop
#if GCC_VERSION <= 50000
#pragma GCC diagnostic pop
#endif

//
// ADC
Expand Down
8 changes: 3 additions & 5 deletions Marlin/src/HAL/STM32_F4_F7/STM32F4/timers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,9 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
HAL_TIM_Base_Start_IT(&TimerHandle[timer_num].handle);
}

extern "C" void TIM5_IRQHandler() {
((void(*)())TimerHandle[0].callback)();
}
extern "C" void TIM7_IRQHandler() {
((void(*)())TimerHandle[1].callback)();
extern "C" {
void TIM5_IRQHandler() { ((void(*)())TimerHandle[0].callback)(); }
void TIM7_IRQHandler() { ((void(*)())TimerHandle[1].callback)(); }
}

void HAL_timer_enable_interrupt(const uint8_t timer_num) {
Expand Down
8 changes: 3 additions & 5 deletions Marlin/src/HAL/STM32_F4_F7/STM32F7/timers.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,9 @@ void HAL_timer_start(const uint8_t timer_num, const uint32_t frequency) {
}

//forward the interrupt
extern "C" void TIM5_IRQHandler() {
((void(*)())timerConfig[0].callback)();
}
extern "C" void TIM7_IRQHandler() {
((void(*)())timerConfig[1].callback)();
extern "C" {
void TIM5_IRQHandler() { ((void(*)())timerConfig[0].callback)(); }
void TIM7_IRQHandler() { ((void(*)())timerConfig[1].callback)(); }
}

void HAL_timer_set_compare(const uint8_t timer_num, const uint32_t compare) {
Expand Down
Loading

0 comments on commit 0bb9a53

Please sign in to comment.