stm32duino / Arduino_Core_STM32

STM32 core support for Arduino
https://github.com/stm32duino/Arduino_Core_STM32/wiki
Other
2.81k stars 967 forks source link

Marlin FW 2.0.5.4 and HardwareTimer::attachInterrupt error #1120

Closed happy77fr closed 4 years ago

happy77fr commented 4 years ago

Hello,

I am trying to compile the marlin FW for a STM32F7 board (Remramv1) but I get the following error:

"C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\tools\xpack-arm-none-eabi-gcc\9.2.1-1.1/bin/arm-none-eabi-g++" -mcpu=cortex-m7 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb "@C:\Temp/sketch/build_opt.h" -c -Os -w -std=gnu++14 -ffunction-sections -fdata-sections -nostdlib -fno-threadsafe-statics --param max-inline-insns-single=500 -fno-rtti -fno-exceptions -fno-use-cxa-atexit -MMD "-IX:\Marlin" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/avr" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32/LL" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32/usb" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32/OpenAMP" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32/usb/hid" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32/usb/cdc" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Drivers/STM32F7xx_HAL_Driver/Inc" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Drivers/STM32F7xx_HAL_Driver/Src" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/STM32F7xx" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Middlewares/ST/STM32_USB_Device_Library/Core/Inc" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Middlewares/ST/STM32_USB_Device_Library/Core/Src" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Middlewares/OpenAMP" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Middlewares/OpenAMP/open-amp/lib/include" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Middlewares/OpenAMP/libmetal/lib/include" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Middlewares/OpenAMP/virtual_driver" -DSTM32F7xx -DARDUINO=10813 -DARDUINO_REMRAM_V1 -DARDUINO_ARCH_STM32 "-DBOARD_NAME=\"REMRAM_V1\"" -DSTM32F765xx -DUSBCON -DUSBD_VID=0 -DUSBD_PID=0 -DHAL_PCD_MODULE_ENABLED -DUSBD_USE_CDC -DDISABLE_GENERIC_SERIALUSB -DHAL_UART_MODULE_ENABLED "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\tools\CMSIS\5.5.1/CMSIS/Core/Include/" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Drivers/CMSIS/Device/ST/STM32F7xx/Include/" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\system/Drivers/CMSIS/Device/ST/STM32F7xx/Source/Templates/gcc/" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\tools\CMSIS\5.5.1/CMSIS/DSP/Include" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\variants\REMRAM_V1" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\SrcWrapper\src" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\SPI\src" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\IWatchdog\src" "-IC:\Users\xxxx\OneDrive - Intel Corporation\Documents\Arduino\libraries\U8glib\src" "-IC:\Users\xxxx\OneDrive - Intel Corporation\Documents\Arduino\libraries\arduino_571695\src" "-IC:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\SoftwareSerial\src" "C:\Temp\sketch\src\HAL\shared\backtrace\backtrace.cpp" -o "C:\Temp\sketch\src\HAL\shared\backtrace\backtrace.cpp.o" C:\Temp\sketch\src\HAL\STM32\timers.cpp: In function 'void HAL_timer_enable_interrupt(uint8_t)': C:\Temp\sketch\src\HAL\STM32\timers.cpp:110:62: error: no matching function for call to 'HardwareTimer::attachInterrupt(void (&)(HardwareTimer))' 110 | timer_instance[timer_num]->attachInterrupt(Step_Handler); | ^ In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32/analog.h:45, from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/board.h:8, from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/wiring.h:41, from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/Arduino.h:36, from c:\temp\sketch\src\hal\shared\marduino.h:36, from C:\Temp\sketch\src\HAL\STM32\HAL.h:28, from C:\Temp\sketch\src\HAL\STM32\timers.cpp:25: C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:134:10: note: candidate: 'void HardwareTimer::attachInterrupt(callback_function_t)' 134 | void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover) | ^~~~~~~ C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:134:46: note: no known conversion for argument 1 from 'void(HardwareTimer)' to 'callback_function_t' {aka 'std::function<void()>'} 134 | void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover) | ~~~~^~~~ C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:138:10: note: candidate: 'void HardwareTimer::attachInterrupt(uint32_t, callback_function_t)' 138 | void attachInterrupt(uint32_t channel, callback_function_t callback); // Attach interrupt callback which will be called upon compare match event of specified channel | ^~~~~~~ C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:138:10: note: candidate expects 2 arguments, 1 provided C:\Temp\sketch\src\HAL\STM32\timers.cpp:113:62: error: no matching function for call to 'HardwareTimer::attachInterrupt(void (&)(HardwareTimer))' 113 | timer_instance[timer_num]->attachInterrupt(Temp_Handler); | ^ In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/stm32/analog.h:45, from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/board.h:8, from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/wiring.h:41, from C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/Arduino.h:36, from c:\temp\sketch\src\hal\shared\marduino.h:36, from C:\Temp\sketch\src\HAL\STM32\HAL.h:28, from C:\Temp\sketch\src\HAL\STM32\timers.cpp:25: C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:134:10: note: candidate: 'void HardwareTimer::attachInterrupt(callback_function_t)' 134 | void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover) | ^~~~~~~ C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:134:46: note: no known conversion for argument 1 from 'void(HardwareTimer)' to 'callback_function_t' {aka 'std::function<void()>'} 134 | void attachInterrupt(callback_function_t callback); // Attach interrupt callback which will be called upon update event (timer rollover) | ~~~~^~~~ C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:138:10: note: candidate: 'void HardwareTimer::attachInterrupt(uint32_t, callback_function_t)' 138 | void attachInterrupt(uint32_t channel, callback_function_t callback); // Attach interrupt callback which will be called upon compare match event of specified channel | ^~~~~~~ C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\cores\arduino/HardwareTimer.h:138:10: note: candidate expects 2 arguments, 1 provided Using previously compiled file: C:\Temp\sketch\src\HAL\shared\backtrace\unwarm.cpp.o Using library SrcWrapper at version 1.0.1 in folder: C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\SrcWrapper Using library SPI at version 1.0 in folder: C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\SPI Using library IWatchdog at version 1.0.0 in folder: C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\IWatchdog Using library U8glib at version 1.19.1 in folder: C:\Users\xxxx\OneDrive - Intel Corporation\Documents\Arduino\libraries\U8glib Using library arduino_571695 at version 0.7.1 in folder: C:\Users\xxxx\OneDrive - Intel Corporation\Documents\Arduino\libraries\arduino_571695 Using library SoftwareSerial at version 1.0 in folder: C:\Users\xxxx\AppData\Local\Arduino15\packages\STM32\hardware\stm32\1.8.0\libraries\SoftwareSerial exit status 1 Error compiling for board 3D printer boards.

Don't get fooled by the 1.8.0 core version. I copied the last core version of today and renamed it to 1.8.0.

Yesturday, I tried with the core 1.9.0 and got the same issue.

I am not quite sure what to do next. I am using the latest arduino core stm32 and marling fw 2.0.5.4

Thank you for your guidance

C.

fpistm commented 4 years ago

Hi @happy77fr I guess your issue is linked to the HT API change around the interrupt. This was reqest for Marlin FW --> https://github.com/stm32duino/Arduino_Core_STM32/pull/892 and released with 1.9.0. I guess some works are required on Marlin FW side to update. Unfortunately, I could not help on this as I don't manage Marlin FW. You should ask support on Marlin FW side as I think it is already take in account Anyway you can also update it manually to match the new API format.