Can't build RRF 3.3
-
I followed steps provided to build 3.3 at https://github.com/Duet3D/RepRapFirmware/wiki/Building-RepRapFirmware
According to which I am supposed to select Duet3_V06 as build configuration. But eclipse doesn't show that option. So I proceeded with option Duet3 .
I was able to build successfully with "Gnu make builder" , but this didn't generate .elf/.bin . So I chose "CDT Internal builder" ( https://reprap.org/forum/read.php?416,718274 ) But doing so resulted in following error:
I also observed that some of the folders are disabled:
To enable Duet3_V06 , I deleted unnecessary build configurations. It enabled the folder. But I still don't get Duet3_V06 in options and build fails with above error.Board: Duet3 MB6HC
Projects :
CoreNG dev
FreeRTOS 3.3-dev
RRFLibraries 3.3-dev
CANlib 3.3-dev
RepRapFirmware 3.3-dev(also tried with 3.3beta1 tag)How do I solve it?
-
@User3D said in Can't build RRF 3.3:
Projects :
CoreNG dev
FreeRTOS 3.3-dev
RRFLibraries 3.3-dev
CANlib 3.3-dev
RepRapFirmware 3.3-devI know the instructions say it is for Mini 5+ only, but maybe use CoreN2G library: https://github.com/Duet3D/CoreN2G
It does say it's needed 'To build RepRapFirmware 3.3 from the latest development sources'.Ian
-
@droftarts I tired that too. I kept both coreNG and coreN2G which didn't work so I built after removing coreNG. But both failed :
09:57:03 **** Incremental Build of configuration Duet3 for project RepRapFirmware ****
Info: Internal Builder is used for build
arm-none-eabi-gcc -LC:\Users\Nikunj\eclipse-workspace\Firmware\CoreN2G\SAME70_CAN_SDHC_USB_RTOS -LC:\Users\Nikunj\eclipse-workspace\Firmware\RRFLibraries\SAME70_RTOS -LC:\Users\Nikunj\eclipse-workspace\Firmware\FreeRTOS\SAME70 -LC:\Users\Nikunj\eclipse-workspace\Firmware\CANlib\SAME70_RTOS --specs=nosys.specs -Os -Wl,--gc-sections -Wl,--fatal-warnings -mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard -TC:\Users\Nikunj\eclipse-workspace\Firmware\RepRapFirmware\src\Hardware\SAME70\same70q20b_flash.ld -Wl,-Map,C:\Users\Nikunj\eclipse-workspace\Firmware\RepRapFirmware\Duet3/Duet3Firmware_MB6HC.map -o Duet3Firmware_MB6HC.elf -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group src\Accelerometers\Accelerometers.o src\CAN\CanInterface.o src\CAN\CanMessageGenericConstructor.o src\CAN\CanMotion.o src\CAN\CommandProcessor.o src\CAN\ExpansionManager.o src\Comms\AuxDevice.o .
.
.
src\Tools\Spindle.o src\Tools\Tool.o src\bossa\Applet.o src\bossa\BossaFlash.o src\bossa\Device.o src\bossa\EefcFlash.o src\bossa\Flasher.o src\bossa\Samba.o src\bossa\WordCopyApplet.o src\bossa\WordCopyArm.o src\bossa\WordCopyArm.o src\libc\memcmp.o src\libc\memcpy.o src\libc\memmove.o src\libc\memset.o src\libc\nano-mallocr.o src\libc\strptime.o src\libcpp\eh_alloc.o src\libcpp\vterminate.o -lCoreN2G -lRRFLibraries -lFreeRTOS -lCANlib -lsupc++ -Wl,--end-group -lm
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyArm.o: in functionstart': (.text+0x0): multiple definition of
start'; src\bossa\WordCopyArm.o:(.text+0x0): first defined here
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyArm.o: in functionstack': (.text+0x20): multiple definition of
stack'; src\bossa\WordCopyArm.o:(.text+0x20): first defined here
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyArm.o: in functionreset': (.text+0x24): multiple definition of
reset'; src\bossa\WordCopyArm.o:(.text+0x24): first defined here
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyArm.o: in functiondst_addr': (.text+0x28): multiple definition of
dst_addr'; src\bossa\WordCopyArm.o:(.text+0x28): first defined here
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyArm.o: in functionsrc_addr': (.text+0x2c): multiple definition of
src_addr'; src\bossa\WordCopyArm.o:(.text+0x2c): first defined here
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyArm.o: in functionwords': (.text+0x30): multiple definition of
words'; src\bossa\WordCopyArm.o:(.text+0x30): first defined here
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyApplet.o: in functionWordCopyApplet::WordCopyApplet(Samba&, unsigned long)': WordCopyApplet.cpp:(.text._ZN14WordCopyAppletC2ER5Sambam+0x34): warning: undefined reference to
WordCopyApplet::applet'
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyApplet.o: in functionWordCopyApplet::setDstAddr(unsigned long)': WordCopyApplet.cpp:(.text._ZN14WordCopyApplet10setDstAddrEm+0x10): warning: undefined reference to
WordCopyApplet::applet'
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyApplet.o: in functionWordCopyApplet::setSrcAddr(unsigned long)': WordCopyApplet.cpp:(.text._ZN14WordCopyApplet10setSrcAddrEm+0x10): warning: undefined reference to
WordCopyApplet::applet'
c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/../lib/gcc/arm-none-eabi/10.2.1/../../../../arm-none-eabi/bin/ld.exe: src\bossa\WordCopyApplet.o: in functionWordCopyApplet::setWords(unsigned long)': WordCopyApplet.cpp:(.text._ZN14WordCopyApplet8setWordsEm+0x10): warning: undefined reference to
WordCopyApplet::applet'
collect2.exe: error: ld returned 1 exit status
Info: Parallel threads used: 109:57:04 Build Failed. 16 errors, 0 warnings. (took 718ms)
-
The build configuration for the MB6HC is just called Duet3 in the 3.3-dev source code, not Duet3_V06 any more.
The 3.3-dev branch uses CoreN2G for all build configurations, not CoreNG.
The linker errors are because of this part of the command line:
rc\bossa\WordCopyApplet.o src\bossa\WordCopyArm.o src\bossa\WordCopyArm.o src\libc\memcmp.o src\libc\memcpy.o src\libc\memmove.o src\libc\memset.o
That file has been included twice. I don't know why that is. However. Eclipse no longer recommends the internal builder, so I suggest you revert to using make. The output files should be build in the RepRapFirmware/Duet3 folder.
-
@dc42 Doing so is generating:
I don't see any .elf generated ? what am I supposed to do with these generated files to get .bin?
-
It should not be creating those subdirectories, instead it should put all the .o files directly in /src.. Please use the version of 'make' that we recommend.
-
@dc42 Changed it. But now I get :
Building target: Duet3Firmware_MB6HC.elf Invoking: Cross G++ Linker arm-none-eabi-gcc -L"C:\Users\Nikunj\eclipse-workspace\Firmware\CoreN2G\SAME70_CAN_SDHC_USB_RTOS" -L"C:\Users\Nikunj\eclipse-workspace\Firmware\RRFLibraries\SAME70_RTOS" -L"C:\Users\Nikunj\eclipse-workspace\Firmware\FreeRTOS\SAME70" -L"C:\Users\Nikunj\eclipse-workspace\Firmware\CANlib\SAME70_RTOS" --specs=nosys.specs -Os -Wl,--gc-sections -Wl,--fatal-warnings -mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard -T"C:\Users\Nikunj\eclipse-workspace\Firmware\RepRapFirmware\src\Hardware\SAME70\same70q20b_flash.ld" -Wl,-Map,"C:\Users\Nikunj\eclipse-workspace\Firmware\RepRapFirmware\Duet3/Duet3Firmware_MB6HC.map" -o "Duet3Firmware_MB6HC.elf" -mthumb -Wl,--cref -Wl,--check-sections -Wl,--gc-sections -Wl,--entry=Reset_Handler -Wl,--unresolved-symbols=report-all -Wl,--warn-common -Wl,--warn-section-align -Wl,--warn-unresolved-symbols -Wl,--start-group ./src/libcpp/eh_alloc.o ./src/libcpp/vterminate.o ./src/libc/memcmp.o ./src/libc/memcpy.o ./src/libc/memmove.o ./src/libc/memset.o ./src/libc/nano-mallocr.o ./src/libc/strptime.o ./src/bossa/Applet.o ./src/bossa/BossaFlash.o ./src/bossa/Device.o ./src/bossa/EefcFlash.o ./src/bossa/Flasher.o ./src/bossa/Samba.o ./src/bossa/WordCopyApplet.o ./src/bossa/WordCopyArm.o ./src/Tools/Filament.o ./src/Tools/Spindle.o ./src/Tools/Tool.o ./src/Storage/CRC16.o ./src/Storage/CRC32.o ./src/Storage/FileInfoParser.o ./src/Storage/FileStore.o ./src/Storage/MassStorage.o ./src/PrintMonitor/PrintMonitor.o ./src/Platform/Heap.o ./src/Platform/Logger.o ./src/Platform/OutputMemory.o ./src/Platform/Platform.o ./src/Platform/PortControl.o ./src/Platform/RepRap.o ./src/Platform/Roland.o ./src/Platform/Scanner.o ./src/Platform/Tasks.o ./src/ObjectModel/ObjectModel.o ./src/Networking/LwipEthernet/Lwip/src/netif/bridgeif.o ./src/Networking/LwipEthernet/Lwip/src/netif/bridgeif_fdb.o ./src/Networking/LwipEthernet/Lwip/src/netif/ethernet.o ./src/Networking/LwipEthernet/Lwip/src/netif/lowpan6.o ./src/Networking/LwipEthernet/Lwip/src/netif/lowpan6_ble.o ./src/Networking/LwipEthernet/Lwip/src/netif/lowpan6_common.o ./src/Networking/LwipEthernet/Lwip/src/netif/slipif.o ./src/Networking/LwipEthernet/Lwip/src/netif/zepif.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/dhcp6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ethip6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/icmp6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/inet6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ip6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ip6_addr.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/ip6_frag.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/mld6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv6/nd6.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/autoip.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/dhcp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/etharp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/icmp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/igmp.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/ip4.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/ip4_addr.o ./src/Networking/LwipEthernet/Lwip/src/core/ipv4/ip4_frag.o ./src/Networking/LwipEthernet/Lwip/src/core/altcp.o ./src/Networking/LwipEthernet/Lwip/src/core/altcp_alloc.o ./src/Networking/LwipEthernet/Lwip/src/core/altcp_tcp.o ./src/Networking/LwipEthernet/Lwip/src/core/def.o ./src/Networking/LwipEthernet/Lwip/src/core/dns.o ./src/Networking/LwipEthernet/Lwip/src/core/inet_chksum.o ./src/Networking/LwipEthernet/Lwip/src/core/init.o ./src/Networking/LwipEthernet/Lwip/src/core/ip.o ./src/Networking/LwipEthernet/Lwip/src/core/mem.o ./src/Networking/LwipEthernet/Lwip/src/core/memp.o ./src/Networking/LwipEthernet/Lwip/src/core/netif.o ./src/Networking/LwipEthernet/Lwip/src/core/pbuf.o ./src/Networking/LwipEthernet/Lwip/src/core/raw.o ./src/Networking/LwipEthernet/Lwip/src/core/stats.o ./src/Networking/LwipEthernet/Lwip/src/core/sys.o ./src/Networking/LwipEthernet/Lwip/src/core/tcp.o ./src/Networking/LwipEthernet/Lwip/src/core/tcp_in.o ./src/Networking/LwipEthernet/Lwip/src/core/tcp_out.o ./src/Networking/LwipEthernet/Lwip/src/core/timeouts.o ./src/Networking/LwipEthernet/Lwip/src/core/udp.o ./src/Networking/LwipEthernet/Lwip/src/apps/netbiosns/netbiosns.o ./src/Networking/LwipEthernet/Lwip/src/apps/mdns/mdns.o ./src/Networking/LwipEthernet/Lwip/src/api/api_lib.o ./src/Networking/LwipEthernet/Lwip/src/api/api_msg.o ./src/Networking/LwipEthernet/Lwip/src/api/err.o ./src/Networking/LwipEthernet/Lwip/src/api/if_api.o ./src/Networking/LwipEthernet/Lwip/src/api/netbuf.o ./src/Networking/LwipEthernet/Lwip/src/api/netdb.o ./src/Networking/LwipEthernet/Lwip/src/api/netifapi.o ./src/Networking/LwipEthernet/Lwip/src/api/sockets.o ./src/Networking/LwipEthernet/Lwip/src/api/tcpip.o ./src/Networking/LwipEthernet/GMAC/ethernet_sam.o ./src/Networking/LwipEthernet/LwipEthernetInterface.o ./src/Networking/LwipEthernet/LwipSocket.o ./src/Networking/FtpResponder.o ./src/Networking/HttpResponder.o ./src/Networking/Network.o ./src/Networking/NetworkBuffer.o ./src/Networking/NetworkInterface.o ./src/Networking/NetworkResponder.o ./src/Networking/TelnetResponder.o ./src/Networking/UploadingNetworkResponder.o ./src/Movement/StepperDrivers/DriverMode.o ./src/Movement/StepperDrivers/TMC22xx.o ./src/Movement/StepperDrivers/TMC2660.o ./src/Movement/StepperDrivers/TMC51xx.o ./src/Movement/Kinematics/CoreKinematics.o ./src/Movement/Kinematics/FiveBarScaraKinematics.o ./src/Movement/Kinematics/HangprinterKinematics.o ./src/Movement/Kinematics/Kinematics.o ./src/Movement/Kinematics/LinearDeltaKinematics.o ./src/Movement/Kinematics/PolarKinematics.o ./src/Movement/Kinematics/RotaryDeltaKinematics.o ./src/Movement/Kinematics/RoundBedKinematics.o ./src/Movement/Kinematics/ScaraKinematics.o ./src/Movement/Kinematics/ZLeadscrewKinematics.o ./src/Movement/HeightControl/HeightController.o ./src/Movement/BedProbing/Grid.o ./src/Movement/BedProbing/RandomProbePointSet.o ./src/Movement/DDA.o ./src/Movement/DDARing.o ./src/Movement/DriveMovement.o ./src/Movement/InputShaper.o ./src/Movement/Move.o ./src/Movement/RawMove.o ./src/Movement/StepTimer.o ./src/Linux/DataTransfer.o ./src/Linux/LinuxInterface.o ./src/Libraries/sha1/sha1.o ./src/Libraries/sd_mmc/ctrl_access.o ./src/Libraries/sd_mmc/sd_mmc.o ./src/Libraries/sd_mmc/sd_mmc_mem.o ./src/Libraries/sd_mmc/sd_mmc_spi.o ./src/Libraries/Fatfs/diskio.o ./src/Libraries/Fatfs/fattime_rtc.o ./src/Libraries/Fatfs/ff.o ./src/Libraries/Fatfs/ffunicode.o ./src/InputMonitors/InputMonitor.o ./src/Heating/Sensors/AdditionalOutputSensor.o ./src/Heating/Sensors/CpuTemperatureSensor.o ./src/Heating/Sensors/CurrentLoopTemperatureSensor.o ./src/Heating/Sensors/DhtSensor.o ./src/Heating/Sensors/LinearAnalogSensor.o ./src/Heating/Sensors/RemoteSensor.o ./src/Heating/Sensors/RtdSensor31865.o ./src/Heating/Sensors/SensorWithPort.o ./src/Heating/Sensors/SpiTemperatureSensor.o ./src/Heating/Sensors/TemperatureSensor.o ./src/Heating/Sensors/Thermistor.o ./src/Heating/Sensors/ThermocoupleSensor31855.o ./src/Heating/Sensors/ThermocoupleSensor31856.o ./src/Heating/Sensors/TmcDriverTemperatureSensor.o ./src/Heating/FOPDT.o ./src/Heating/Heat.o ./src/Heating/Heater.o ./src/Heating/HeaterMonitor.o ./src/Heating/LocalHeater.o ./src/Heating/RemoteHeater.o ./src/Heating/TemperatureError.o ./src/Hardware/SharedSpi/SharedSpiClient.o ./src/Hardware/SharedSpi/SharedSpiDevice.o ./src/Hardware/SAME70/Ethernet/ksz8081rna/ethernet_phy.o ./src/Hardware/SAME70/Ethernet/GmacInterface.o ./src/Hardware/SAME70/Devices.o ./src/Hardware/SAME70/Main.o ./src/Hardware/ExceptionHandlers.o ./src/Hardware/I2C.o ./src/Hardware/IoPorts.o ./src/Hardware/NonVolatileMemory.o ./src/Hardware/SoftwareReset.o ./src/GPIO/GpInPort.o ./src/GPIO/GpOutPort.o ./src/GCodes/GCodeBuffer/BinaryParser.o ./src/GCodes/GCodeBuffer/ExpressionParser.o ./src/GCodes/GCodeBuffer/GCodeBuffer.o ./src/GCodes/GCodeBuffer/StringParser.o ./src/GCodes/GCodeException.o ./src/GCodes/GCodeFileInfo.o ./src/GCodes/GCodeInput.o ./src/GCodes/GCodeMachineState.o ./src/GCodes/GCodeQueue.o ./src/GCodes/GCodes.o ./src/GCodes/GCodes2.o ./src/GCodes/GCodes3.o ./src/GCodes/GCodes4.o ./src/GCodes/ObjectTracker.o ./src/GCodes/RestorePoint.o ./src/GCodes/StraightProbeSettings.o ./src/GCodes/Trigger.o ./src/GCodes/Variable.o ./src/FilamentMonitors/Duet3DFilamentMonitor.o ./src/FilamentMonitors/FilamentMonitor.o ./src/FilamentMonitors/LaserFilamentMonitor.o ./src/FilamentMonitors/PulsedFilamentMonitor.o ./src/FilamentMonitors/RotatingMagnetFilamentMonitor.o ./src/FilamentMonitors/SimpleFilamentMonitor.o ./src/Fans/Fan.o ./src/Fans/FansManager.o ./src/Fans/LedStripDriver.o ./src/Fans/LocalFan.o ./src/Fans/RemoteFan.o ./src/Endstops/Endstop.o ./src/Endstops/EndstopsManager.o ./src/Endstops/LocalZProbe.o ./src/Endstops/RemoteZProbe.o ./src/Endstops/StallDetectionEndstop.o ./src/Endstops/SwitchEndstop.o ./src/Endstops/ZProbe.o ./src/Endstops/ZProbeEndstop.o ./src/Duet3_V06/Pins_Duet3_V06.o ./src/Comms/AuxDevice.o ./src/Comms/FirmwareUpdater.o ./src/Comms/PanelDueUpdater.o ./src/CAN/CanInterface.o ./src/CAN/CanMessageGenericConstructor.o ./src/CAN/CanMotion.o ./src/CAN/CommandProcessor.o ./src/CAN/ExpansionManager.o ./src/Accelerometers/Accelerometers.o ./src/RepRapFirmware.o -lCoreN2G -lRRFLibraries -lFreeRTOS -lCANlib -lsupc++ -Wl,--end-group -lm Finished building target: Duet3Firmware_MB6HC.elf make --no-print-directory post-build Generating binary file arm-none-eabi-objcopy -O binary "C:\Users\Nikunj\eclipse-workspace\Firmware\RepRapFirmware\Duet3/Duet3Firmware_MB6HC.elf" "C:\Users\Nikunj\eclipse-workspace\Firmware\RepRapFirmware\Duet3/Duet3Firmware_MB6HC.bin" && crc32appender "C:\Users\Nikunj\eclipse-workspace\Firmware\RepRapFirmware\Duet3/Duet3Firmware_MB6HC.bin" c:/program files (x86)/gnu arm embedded toolchain/10 2020-q4-major/bin/sh: crc32appender: not found makefile:109: recipe for target 'post-build' failed make[1]: [post-build] Error 127 (ignored) 13:25:16 Build Failed. 1 errors, 0 warnings. (took 1m:18s.336ms)
even thogh I've it available in PATH (C:\Users\User3D\eclipse-workspace\Firmware\RepRapFirmware\Tools\crc32appender).
-
@User3D said in Can't build RRF 3.3:
even thogh I've it available in PATH (C:\Users\User3D\eclipse-workspace\Firmware\RepRapFirmware\Tools\crc32appender).
Looks like you are nearly there. If you are using the file structure as on github, the path you need is:
C:\Users\User3D\eclipse-workspace\Firmware\RepRapFirmware\Tools\crc32appender\win-x86_64
-
@dc42 Yo, It worked! Thank you : )
P.S. : I also had to copy bin of GNU ARM in GNU TOOL's bin as gnu arm eclipse was installed in program files due is 64 bits and gnu tools arm in program files x86 due is 32 bits.