precompiled - (available from Arduino IDE 1.8.6/arduino-builder 1.4.0) (optional) set to true to allow the use of .a (archive) and .so (shared object) files. The .a/.so file must be located at src/{build.mcu} where {build.mcu} is the architecture name of the target the file was compiled for. Ex: cortex-m3 for the Arduino DUE. The static library should be linked as an ldflag.
So i added in .../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/library.properties
As explained in the library specification, you have to put it in the src/{build.mcu} not in src/ where {build.mcu} is the architecture name of the target the file was compiled for.
Not that the core will not support the APM32 as only STM32 is supported.
Instead of modifying the core you should create your own library with the lib and a dedicated include.
fpiSTM wrote: Sun May 10, 2020 10:19 am
As explained in the library specification, you have to put it in the src/{build.mcu} not in src/ where {build.mcu} is the architecture name of the target the file was compiled for.
What will be the path "src/{build.mcu}" ?
Is it the tmp path for compilation?
fpiSTM wrote: Sun May 10, 2020 10:19 am
Not that the core will not support the APM32 as only STM32 is supported.
Instead of modifying the core you should create your own library with the lib and a dedicated include.
Of course this is not an STM32 - this is just an experiment, to proof if there is really an FPU that can be used. viewtopic.php?f=62&t=264
The manufacturer tries to hide his "secrets" in a precompiled library.
This is part of an SDK.
fpiSTM wrote: Sun May 10, 2020 10:19 am
As explained in the library specification, you have to put it in the src/{build.mcu} not in src/ where {build.mcu} is the architecture name of the target the file was compiled for.
It's the same result with .../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/src/stm32/sc_math.a
~/.arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Os --specs=nano.specs -Wl,--defsym=LD_FLASH_OFFSET=0 -Wl,--defsym=LD_MAX_SIZE=65536 -Wl,--defsym=LD_MAX_DATA_SIZE=20480 -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -T.../arduino15/packages/STM32/hardware/stm32/1.8.0/variants/PILL_F103XX/ldscript.ld -Wl,-Map,/tmp/arduino_build_910235/APM-Test.ino.map -L~/.arduino15/packages/STM32/tools/CMSIS/5.5.1/CMSIS/DSP/Lib/GCC/ -larm_cortexM3l_math -o /tmp/arduino_build_910235/APM-Test.ino.elf -L/tmp/arduino_build_910235 -Wl,--start-group /tmp/arduino_build_910235/sketch/APM-Test.ino.cpp.o /tmp/arduino_build_910235/sketch/SrcWrapper.cpp.o .../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/src/cortex-m3/sc_math.a /tmp/arduino_build_910235/core/PeripheralPins.c.o /tmp/arduino_build_910235/core/variant.cpp.o -L.../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/src/cortex-m3 /tmp/arduino_build_910235/core/core.a -lc -Wl,--end-group -lm -lgcc -lstdc++
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: .../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7-m/nofp/libgcc.a(_arm_addsubsf3.o): in function `__aeabi_fsub':
(.text+0x8): multiple definition of `__aeabi_fsub'; .../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/src/cortex-m3/sc_math.a(fpu.o):..\..\User\FPU\fpu.c:(.text+0x234): first defined here
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: .../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7-m/nofp/libgcc.a(_arm_addsubsf3.o): in function `__aeabi_fadd':
(.text+0xc): multiple definition of `__aeabi_fadd'; .../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/src/cortex-m3/sc_math.a(fpu.o):..\..\User\FPU\fpu.c:(.text+0x210): first defined here
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: .../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/thumb/v7-m/nofp/libgcc.a(_arm_addsubsf3.o): in function `__aeabi_ui2f':
(.text+0x16c): multiple definition of `__aeabi_ui2f'; .../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/src/cortex-m3/sc_math.a(fpu.o):..\..\User\FPU\fpu.c:(.text+0x4d6): first defined here
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: warning: .../arduino15/packages/STM32/hardware/stm32/1.8.0/libraries/SrcWrapper/src/cortex-m3/sc_math.a(fpu.o) uses 2-byte wchar_t yet the output is to use 4-byte wchar_t; use of wchar_t values across objects may fail
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(startup_stm32yyxx.S.o): in function `LoopFillZerobss':
(.text.Reset_Handler+0x26): undefined reference to `SystemInit'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/sketch/APM-Test.ino.cpp.o: in function `loop':
APM-Test.ino.cpp:(.text.loop+0xbc): undefined reference to `sc_math_sin(float)'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(wiring_digital.c.o): in function `pinMode':
wiring_digital.c:(.text.pinMode+0x2e): undefined reference to `pin_in_pinmap'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: wiring_digital.c:(.text.pinMode+0x36): undefined reference to `pwm_stop'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: wiring_digital.c:(.text.pinMode+0x62): undefined reference to `pin_function'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: wiring_digital.c:(.text.pinMode+0x82): undefined reference to `_Error_Handler'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(wiring_digital.c.o): in function `digitalWrite':
wiring_digital.c:(.text.digitalWrite+0x40): undefined reference to `GPIOPort'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: wiring_digital.c:(.text.digitalWrite+0x44): undefined reference to `pin_map_ll'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(wiring_digital.c.o): in function `digitalRead':
wiring_digital.c:(.text.digitalRead+0x44): undefined reference to `GPIOPort'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: wiring_digital.c:(.text.digitalRead+0x48): undefined reference to `pin_map_ll'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(wiring_time.c.o): in function `millis':
wiring_time.c:(.text.millis+0x0): undefined reference to `getCurrentMillis'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(HardwareSerial.cpp.o): in function `HardwareSerial::_rx_complete_irq(serial_s*)':
HardwareSerial.cpp:(.text._ZN14HardwareSerial16_rx_complete_irqEP8serial_s+0x8): undefined reference to `uart_getc'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(HardwareSerial.cpp.o): in function `HardwareSerial::write(unsigned char)':
HardwareSerial.cpp:(.text._ZN14HardwareSerial5writeEh+0x24): undefined reference to `uart_enable_tx'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: HardwareSerial.cpp:(.text._ZN14HardwareSerial5writeEh+0x48): undefined reference to `serial_tx_active'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: HardwareSerial.cpp:(.text._ZN14HardwareSerial5writeEh+0x52): undefined reference to `uart_attach_tx_callback'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(HardwareSerial.cpp.o): in function `HardwareSerial::HardwareSerial(void*, bool)':
HardwareSerial.cpp:(.text._ZN14HardwareSerialC2EPvb+0x50): undefined reference to `pinmap_pin'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: HardwareSerial.cpp:(.text._ZN14HardwareSerialC2EPvb+0x5c): undefined reference to `pinmap_pin'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(HardwareSerial.cpp.o): in function `HardwareSerial::enableHalfDuplexRx()':
HardwareSerial.cpp:(.text._ZN14HardwareSerial18enableHalfDuplexRxEv+0x26): undefined reference to `uart_enable_rx'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(HardwareSerial.cpp.o): in function `HardwareSerial::begin(unsigned long, unsigned char)':
HardwareSerial.cpp:(.text._ZN14HardwareSerial5beginEmh+0x4c): undefined reference to `_Error_Handler'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: HardwareSerial.cpp:(.text._ZN14HardwareSerial5beginEmh+0x60): undefined reference to `uart_init'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: HardwareSerial.cpp:(.text._ZN14HardwareSerial5beginEmh+0x74): undefined reference to `uart_attach_rx_callback'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(main.cpp.o): in function `premain()':
main.cpp:(.text.startup._Z7premainv+0x4): undefined reference to `HAL_NVIC_SetPriorityGrouping'
.../arduino15/packages/STM32/tools/xpack-arm-none-eabi-gcc/9.2.1-1.1/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld: /tmp/arduino_build_910235/core/core.a(board.c.o): in function `init':
board.c:(.text.init+0x0): undefined reference to `hw_config_init'
collect2: error: ld returned 1 exit status