Welcome! Log In Create A New Profile

Advanced

S_CURVE_ACCELERATION compilation error for STM32: selected processor does not support `umull r2,r3,r3,r4' in Thumb mode

Posted by DD-Y41613 
Hi,

not very sure about the consequence of enabling "S-Curve Acceleration" ("#define S_CURVE_ACCELERATION" in "Configuration.h"), I run into the error (see below) during compilation.
It is basically the assembler routine in "stepper.cpp", which uses the "UMULL" instruction - the STM32F070-based controller does not support in "Thumb Mode". And the compiler run with the parameters ... '-mcpu=cortex-m0' '-mthumb' ...

Work-Around for me is ... simply not enable the "S-Curve Acceleration".
Hopefully the developer of "stepper.cpp" could have a look and decides, how to deal with this topic.

I did run the test with 2.1 release version of Marlin as well as with the hotfix of the 22th July.

For any questions, don't hessitate to contact me, or reply on my post.

Kind regards,
DD-Y 41613

Visual Studio Code - Version 1.69.2
PlatformIO IDE - Version v2.5.0
Auto Build Marlin - Version v2.1.41

=== VSCode "Auto Build Marlin" page ===
Marlin Firmware Auto Build
Firmware 2.1
:
Board: MALYAN M300
STM32F070-based delta
:


Output of compilation output with "-v"
:
COLLECT_GCC_OPTIONS='-o' '.pio\build\malyan_M300\src\src\module\stepper\indirection.cpp.o' '-c' '-Wno-register' '-std=gnu++14' '-std=gnu++14' '-fno-threadsafe-statics' '-fno-rtti' '-fno-exceptions' '-fno-use-cxa-atexit' '-g3' '-v' '-fmax-errors=5' '-Os' '-mcpu=cortex-m0' '-mthumb' '-ffunction-sections' '-fdata-sections' '-Wall' '-nostdlib' '--param' 'max-inline-insns-single=500' '-D' 'PLATFORMIO=60103' '-D' 'STM32F070xB' '-D' '__MARLIN_FIRMWARE__' '-D' 'NDEBUG' '-D' 'HAL_STM32' '-D' 'USBCON' '-D' 'USBD_USE_CDC' '-D' 'TIM_IRQ_PRIO=13' '-D' 'ADC_RESOLUTION=12' '-D' 'HAL_PCD_MODULE_ENABLED' '-D' 'DISABLE_GENERIC_SERIALUSB' '-D' 'HAL_UART_MODULE_ENABLED' '-D' 'BOARD_F_CPU=48000000L' '-D' 'SERIAL_RX_BUFFER_SIZE=128' '-D' 'SERIAL_TX_BUFFER_SIZE=64' '-D' 'USART_RX_BUF_SIZE=128' '-D' 'USART_TX_BUF_SIZE=64' '-D' 'STM32F0xx' '-D' 'ARDUINO=10808' '-D' 'ARDUINO_ARCH_STM32' '-D' 'ARDUINO_MALYANM300_F070CB' '-D' 'BOARD_NAME="MALYANM300_F070CB"' '-D' 'HAL_UART_MODULE_ENABLED' '-D' 'VECT_TAB_OFFSET=0x2000' '-D' 'CUSTOM_STARTUP_FILE' '-D' 'HAL_PCD_MODULE_ENABLED' '-I' 'Marlin' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\Wire\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\Servo\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\SoftwareSerial\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\EEPROM\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\SPI\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\IWatchdog\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\avr' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\LL' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\usb' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\OpenAMP' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\usb\hid' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\usb\cdc' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\STM32F0xx_HAL_Driver\Inc' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\STM32F0xx_HAL_Driver\Src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\STM32F0xx' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\ST\STM32_USB_Device_Library\Core\Inc' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\ST\STM32_USB_Device_Library\Core\Src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\open-amp\lib\include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\libmetal\lib\include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\virtual_driver' '-I' '%USERPROFILE%\.platformio\packages\framework-cmsis\CMSIS\Core\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\CMSIS\Device\ST\STM32F0xx\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\CMSIS\Device\ST\STM32F0xx\Source\Templates\gcc' '-I' '%USERPROFILE%\.platformio\packages\framework-cmsis\CMSIS\DSP\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\variants\MALYANMx00_F070CB' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\variants\MALYANMx00_F070CB' '-mfloat-abi=soft' '-march=armv6s-m'
Compiling .pio\build\malyan_M300\libd15\SPI\utility\spi_com.c.o
 c:/users/dietricl/.platformio/packages/toolchain-gCOLLECT_GCC_OPTIONS='-o' '.pio\build\malyan_M300\src\src\module\temperature.cpp.o' '-c' '-Wno-register' '-std=gnu++14' '-std=gnu++14' '-fno-threadsafe-statics' '-fno-rtti' '-fno-exceptions' '-fno-use-cxa-atexit' '-g3' '-v' '-fmax-errors=5' '-Os' '-mcpu=cortex-m0' '-mthumb' '-ffunction-sections' '-fdata-sections' '-Wall' '-nostdlib' '--param' 'max-inline-insns-single=500' '-D' 'PLATFORMIO=60103' '-D' 'STM32F070xB' '-D' '__MARLIN_FIRMWARE__' '-D' 'NDEBUG' '-D' 'HAL_STM32' '-D' 'USBCON' '-D' 'USBD_USE_CDC' '-D' 'TIM_IRQ_PRIO=13' '-D' 'ADC_RESOLUTION=12' '-D' 'HAL_PCD_MODULE_ENABLED' '-D' 'DISABLE_GENERIC_SERIALUSB' '-D' 
'HAL_UART_MODULE_ENABLED' '-D' 'BOARD_F_CPU=48000000L' '-D' 'SERIAL_RX_BUFFER_SIZE=128' '-D' 'SERIAL_TX_BUFFER_SIZE=64' '-D' 'USART_RX_BUF_SIZE=128' '-D' 'USART_TX_BUF_SIZE=64' '-D' 'STM32F0xx' '-D' 'ARDUINO=10808' '-D' 'ARDUINO_ARCH_STM32' '-D' 'ARDUINO_MALYANM300_F070CB' '-D' 'BOARD_NAME="MALYANM300_F070CB"' '-D' 'HAL_UART_MODULE_ENABLED' '-D' 'VECT_TAB_OFFSET=0x2000' '-D' 'CUSTOM_STARTUP_FILE' '-D' 'HAL_PCD_MODULE_ENABLED' '-I' 'Marlin' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\Wire\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\Servo\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\SoftwareSerial\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\EEPROM\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\SPI\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\IWatchdog\src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\avr' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\LL' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\usb' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\OpenAMP' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\usb\hid' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino\stm32\usb\cdc' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\STM32F0xx_HAL_Driver\Inc' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\STM32F0xx_HAL_Driver\Src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\STM32F0xx' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\ST\STM32_USB_Device_Library\Core\Inc' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\ST\STM32_USB_Device_Library\Core\Src' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\open-amp\lib\include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\libmetal\lib\include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\virtual_driver' '-I' '%USERPROFILE%\.platformio\packages\framework-cmsis\CMSIS\Core\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\CMSIS\Device\ST\STM32F0xx\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\CMSIS\Device\ST\STM32F0xx\Source\Templates\gcc' '-I' '%USERPROFILE%\.platformio\packages\framework-cmsis\CMSIS\DSP\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\variants\MALYANMx00_F070CB' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\variants\MALYANMx00_F070CB' '-mfloat-abi=soft' '-march=armv6s-m'
 c:/users/dietricl/.platformio/packages/toolchain-gccarmnonUFFER_SIZE=64 -D USART_RX_BUF_SIZE=128 -D USART_TX_BUF_SIZE=64 -D STM32F0xx -D ARDUINO=10808 -D ARDUINO_ARCH_STM32 -D ARDUINO_MALYANM300_F070CB -D BOARD_NAME="MALYANM300_F070CB" -D HAL_UART_MODULE_ENABLED -D VECT_TAB_OFFSET=0x2000 -D CUSTOM_STARTUP_FILE -D HAL_PCD_MODULE_ENABLED %USERPROFILE%\.platformio\packages\framework-arduinoststm32\libraries\IWatchdog\src\IWatchdog.cpp -quiet -dumpbase IWatchdog.cpp -mcpu=cortex-m0 -mthumb -mfloat-abi=soft -march=armv6s-m -auxbase-strip .pio\build\malyan_M300\libad9\IWatchdog\IWatchdog.cpp.o -g3 -Os -Wno-register -Wall -std=gnu++14 -std=gnu++14 -version -fno-threadsafe-statics -fno-rtti -fno-exceptions -fno-use-cxa-atexit -fmax-errors=5 -ffunction-sections -fdata-sections --param max-inline-insns-single=500 -o %TEMP%\ccSvE3jx.s    
\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\open-amp\lib\include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\libmetal\lib\include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Middlewares\OpenAMP\virtual_driver' '-I' '%USERPROFILE%\.platformio\packages\framework-cmsis\CMSIS\Core\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\CMSIS\Device\ST\STM32F0xx\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\system\Drivers\CMSIS\Device\ST\STM32F0xx\Source\Templates\gcc' '-I' '%USERPROFILE%\.platformio\packages\framework-cmsis\CMSIS\DSP\Include' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\cores\arduino' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\variants\MALYANMx00_F070CB' '-I' '%USERPROFILE%\.platformio\packages\framework-arduinoststm32\variants\MALYANMx00_F070CB' '-mfloat-abi=soft' '-march=armv6s-m'
GNU assembler version 2.33.1 (arm-none-eabi) using BFD version (xPack GNU Arm Embedded GCC, 64-bit) 2.33.1.20191025
%TEMP%\ccYSEA0P.s: Assembler messages:
%TEMP%\ccYSEA0P.s:3139: Error: cannot honor width suffix -- `lsrs ip,r1,#1'
%TEMP%\ccYSEA0P.s:3141: Error: selected processor does not support `umull r2,r3,r3,r4' in Thumb mode
%TEMP%\ccYSEA0P.s:3142: Error: selected processor does not support `umull r2,r3,r3,r4' in Thumb mode
%TEMP%\ccYSEA0P.s:3144: Error: selected processor does not support `smlal r1,ip,r2,r6' in Thumb mode
%TEMP%\ccYSEA0P.s:3145: Error: selected processor does not support `umull r2,r3,r3,r4' in Thumb mode
%TEMP%\ccYSEA0P.s:3147: Error: selected processor does not support `smlal r1,ip,r2,r5' in Thumb mode
%TEMP%\ccYSEA0P.s:3148: Error: selected processor does not support `umull r2,r3,r3,r4' in Thumb mode
%TEMP%\ccYSEA0P.s:3150: Error: selected processor does not support `smlal r1,ip,r2,r0' in Thumb mode
%TEMP%\ccYSEA0P.s:3151: Error: cannot honor width suffix -- `lsrs r1,ip,#6'
%TEMP%\ccYSEA0P.s:3602: Error: cannot honor width suffix -- `lsrs ip,r1,#1'
%TEMP%\ccYSEA0P.s:3604: Error: selected processor does not support `umull r2,r3,r3,r6' in Thumb mode
%TEMP%\ccYSEA0P.s:3605: Error: selected processor does not support `umull r2,r3,r3,r6' in Thumb mode
%TEMP%\ccYSEA0P.s:3607: Error: selected processor does not support `smlal r1,ip,r2,r5' in Thumb mode
%TEMP%\ccYSEA0P.s:3608: Error: selected processor does not support `umull r2,r3,r3,r6' in Thumb mode
%TEMP%\ccYSEA0P.s:3610: Error: selected processor does not support `smlal r1,ip,r2,r4' in Thumb mode
%TEMP%\ccYSEA0P.s:3611: Error: selected processor does not support `umull r2,r3,r3,r6' in Thumb mode
%TEMP%\ccYSEA0P.s:3613: Error: selected processor does not support `smlal r1,ip,r2,r0' in Thumb mode
%TEMP%\ccYSEA0P.s:3614: Error: cannot honor width suffix -- `lsrs r1,ip,#6'
:


Note: I do have replaced the any machine specific pathes and replaced these by %USERPROFILE% and %TEMP%.
I've run into the same bug. Looks like you've uncovered a Marlin bug.

Please go to the official Marlin issues page and report this bug. That is the best way to get it fixed.

Be sure to attach your configuration.h and configuration_adv.h files when you open the issue. That helps the developers re-create the problem.
Thanks Bob, for your quick reply.
I do have logged the following bug
[github.com]
Sorry, only registered users may post in this forum.

Click here to login