Skip to content

Marlin FW 2.0.5.4 and HardwareTimer::attachInterrupt error #1120

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
happy77fr opened this issue Jul 12, 2020 · 1 comment
Closed

Marlin FW 2.0.5.4 and HardwareTimer::attachInterrupt error #1120

happy77fr opened this issue Jul 12, 2020 · 1 comment
Labels
answered question ❓ Usually converted as a discussion

Comments

@happy77fr
Copy link

happy77fr commented Jul 12, 2020

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
Copy link
Member

fpistm commented Jul 13, 2020

Hi @happy77fr
I guess your issue is linked to the HT API change around the interrupt.
This was reqest for Marlin FW --> #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.

@fpistm fpistm closed this as completed Jul 13, 2020
@fpistm fpistm added answered question ❓ Usually converted as a discussion labels Jul 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
answered question ❓ Usually converted as a discussion
Projects
None yet
Development

No branches or pull requests

2 participants