Can't compile 3.5.0 (Duet2)
-
@OwenD I think you may need to have "go" set up to run that tool. It may be possible to build a debug version (which I think does not use the crc stuff), but to be honest I'm not very familiar with that side of things as we don't use it on the STM32 or LPC port.
-
@OwenD said in Can't compile 3.5.0 (Duet2):
about crcappender I think.
if you use windows, you should add the path to the PATH environment, so the crc32appender exe file can be found, e.g.:
C:...\RepRapFirmware\Tools\crc32appender\win-x86_64
This crc32appender is used to calculate a checksum of the compiled binary.
In the tools subdirectory are versions for linux and mac also. -
@JoergS5
Thanks.
The path to crc32appender.exe is already there in the environment path section, but I'm sure it's something basic like that as I can compile 3.4-dev no problems. -
@OwenD I a not fit enought for Eclipse details, but this path may only be valid for building, but crc32 is after linking. You could try to do it like me and add it to the environment path, then restart eclipse. I don't know why 3.4 works for you, however.
Maybe it helps to diagnose if you post the exact error message. -
@JoergS5
Ahh, sorry. Didn't realise you meant the windows environment path.
I've added it there as well. Restarted windows and eclipse, but same thing.
-
@OwenD please post the register Console (lower half, third register).
-
@JoergS5 Here you go (last part only)
Building target: Duet2CombinedFirmware.elf Invoking: Cross G++ Linker arm-none-eabi-gcc -L"C:\Eclipse\Firmware\CoreN2G\SAM4E_SDHC_USB_RTOS" -L"C:\Eclipse\Firmware\RRFLibraries\SAM4E_RTOS" -L"C:\Eclipse\Firmware\FreeRTOS\SAM4E" -L"C:\Eclipse\Firmware\CANlib\SAM4E_RTOS" --specs=nosys.specs -Os -Wl,--gc-sections -Wl,--fatal-warnings -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -T"C:\Eclipse\Firmware\ReprapFirmware\src\Hardware\SAM4E\sam4e8e_flash.ld" -Wl,-Map,"C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.map" -o "Duet2CombinedFirmware.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/atoi.o ./src/libc/errno.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/EmbeddedFiles.o ./src/Storage/FileInfoParser.o ./src/Storage/FileStore.o ./src/Storage/MassStorage.o ./src/PrintMonitor/PrintMonitor.o ./src/Platform/ArrayHandle.o ./src/Platform/Event.o ./src/Platform/Heap.o ./src/Platform/Logger.o ./src/Platform/MessageBox.o ./src/Platform/OutputMemory.o ./src/Platform/Platform.o ./src/Platform/PortControl.o ./src/Platform/RepRap.o ./src/Platform/Scanner.o ./src/Platform/StringHandle.o ./src/Platform/Tasks.o ./src/Platform/UniqueId.o ./src/ObjectModel/GlobalVariables.o ./src/ObjectModel/ObjectModel.o ./src/ObjectModel/Variable.o ./src/Networking/W5500Ethernet/Wiznet/Internet/DHCP/dhcp.o ./src/Networking/W5500Ethernet/Wiznet/Ethernet/W5500/w5500.o ./src/Networking/W5500Ethernet/Wiznet/Ethernet/WizSpi.o ./src/Networking/W5500Ethernet/Wiznet/Ethernet/socketlib.o ./src/Networking/W5500Ethernet/Wiznet/Ethernet/wizchip_conf.o ./src/Networking/W5500Ethernet/MdnsResponder.o ./src/Networking/W5500Ethernet/W5500Interface.o ./src/Networking/W5500Ethernet/W5500Socket.o ./src/Networking/MulticastDiscovery/MulticastResponder.o ./src/Networking/MulticastDiscovery/fgmc_protocol.o ./src/Networking/ESP8266WiFi/WiFiInterface.o ./src/Networking/ESP8266WiFi/WiFiSocket.o ./src/Networking/ESP8266WiFi/WifiFirmwareUploader.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/AxisShaper.o ./src/Movement/DDA.o ./src/Movement/DDARing.o ./src/Movement/DriveMovement.o ./src/Movement/ExtruderShaper.o ./src/Movement/Move.o ./src/Movement/MoveSegment.o ./src/Movement/RawMove.o ./src/Movement/StepTimer.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/BME280.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/Hardware/Spi/SharedSpiClient.o ./src/Hardware/Spi/SharedSpiDevice.o ./src/Hardware/Spi/SpiDevice.o ./src/Hardware/SAM4E/Devices.o ./src/Hardware/SAM4E/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/CollisionAvoider.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/GCodes5.o ./src/GCodes/GCodes6.o ./src/GCodes/GCodes7.o ./src/GCodes/ObjectTracker.o ./src/GCodes/RestorePoint.o ./src/GCodes/StraightProbeSettings.o ./src/GCodes/TriggerItem.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/DuetNG/DueXn.o ./src/DuetNG/SX1509.o ./src/Display/Lcd/ST7920/Lcd7920.o ./src/Display/Lcd/ST7567/Lcd7567.o ./src/Display/Lcd/ILI9488/ILI9488.o ./src/Display/Lcd/Fonts/ER3301_1.o ./src/Display/Lcd/Fonts/glcd11x14.o ./src/Display/Lcd/Fonts/glcd19x21.o ./src/Display/Lcd/Fonts/glcd28x32.o ./src/Display/Lcd/Fonts/glcd7x11.o ./src/Display/Lcd/Lcd.o ./src/Display/Lcd/MonoLcd.o ./src/Display/Lcd/TFTLcd.o ./src/Display/ButtonMenuItem.o ./src/Display/Display.o ./src/Display/FilesMenuItem.o ./src/Display/ImageMenuItem.o ./src/Display/Menu.o ./src/Display/MenuItem.o ./src/Display/ResistiveTouch.o ./src/Display/RotaryEncoder.o ./src/Display/TextMenuItem.o ./src/Display/ValueMenuItem.o ./src/Config/Pins.o ./src/Comms/AuxDevice.o ./src/Comms/FirmwareUpdater.o ./src/Comms/PanelDueUpdater.o ./src/ClosedLoop/ClosedLoop.o ./src/CAN/CanDriversData.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/Accelerometers/LIS3DH.o ./src/RepRapFirmware.o ./src/Version.o -lCANlib -lCoreN2G -lRRFLibraries -lFreeRTOS -lsupc++ -Wl,--end-group -lm Finished building target: Duet2CombinedFirmware.elf Generating binary file arm-none-eabi-objcopy -O binary "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.elf" "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.bin" && crcappender "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.bin" c:/program files/gnu arm eclipse/build tools/2.6-201507152002/bin/sh: crcappender: not found makefile:124: recipe for target 'post-build' failed make[1]: [post-build] Error 127 (ignored) 21:43:07 Build Failed. 1 errors, 0 warnings. (took 25s.810ms)
-
@OwenD for historical reasons, some build configurations use crc32appender and some use the more recent program CrcAppender. The Duet 2 configuration uses CrcAppender. You can find this tool at https://github.com/Duet3D/CrcAppender/releases/tag/v1.2.0.
PS - I have also added CrcAppender to the Tools folder of RepRapFirmware.
-
@dc42 Thanks for stepping in. I would have looked for a while longer for a solution....
-
@dc42
Thanks for that.
I have downloaded that.
However it now says it can't find CrcAppender.dll?Generating binary file arm-none-eabi-objcopy -O binary "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.elf" "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.bin" && crcappender "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.bin" The application to execute does not exist: 'C:\Program Files\GNU ARM Eclipse\Build Tools\2.6-201507152002\bin\CrcAppender.dll'. VTALRM makefile:124: recipe for target 'post-build' failed make[1]: [post-build] Error 154 (ignored)
Edit:
Strangely I can build for Duet2_SBC and Duet 3 Mini 5 ?? -
@OwenD that's odd! It has worked for me for several months. It should work provided that you have CrcAppender.exe on your Path. Try entering command CrcAppender on a command line, to see if it is found.
In the Post Build Step within Project Properties/Settings you could try replacing crcappender by CrcAppender in case that part of Eclipse is case-sensitive on your machine; or replace it by CrcAppender.exe; or you could replace it by crc32appender which is what the other configurations you mentioned used.
-
@dc42 said in Can't compile 3.5.0 (Duet2):
@OwenD that's odd! It has worked for me for several months.
Well if you want something broken, I'm your man!
It should work provided that you have CrcAppender.exe on your Path.
Try entering command CrcAppender on a command line, to see if it is found.It's found no problem, but if I try to execute it, I get the same thing about crcappender.dll as if the .exe file is trying to call functions within a .dll ??
In the Post Build Step within Project Properties/Settings you could try replacing crcappender by CrcAppender in case that part of Eclipse is case-sensitive on your machine; or replace it by CrcAppender.exe;
None of the above work
or you could replace it by crc32appender which is what the other configurations you mentioned used.
This does work.
I can compile if I change the post build settings to use Crc32Appender.exe
Given my needs are purely self education, that will be fine.
Thanks for your help -
-
-
@OwenD I tried and get the same strange message:
C:\Users\joerg>path %path%;c:_
C:\Users\joerg>where crcappender
c:_\CrcAppender.exeC:\Users\joerg>crcappender
The application to execute does not exist: 'c:_\CrcAppender.dll'.C:\Users\joerg>
I've never seen this before...
Maybe the .NET 6 library is missing (no change after installing). But the message is very confusing.
-
@JoergS5 there is now a new build of CrcAppender.exe at https://github.com/Duet3D/CrcAppender/releases/tag/v1.2.0. Can you try that one? I have just tested it.
-
@dc42 said in Can't compile 3.5.0 (Duet2):
there is now a new build of CrcAppender.exe at https://github.com/Duet3D/CrcAppender/releases/tag/v1.2.0.
That one works for me
Generating binary file arm-none-eabi-objcopy -O binary "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.elf" "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.bin" && CrcAppender "C:\Eclipse\Firmware\ReprapFirmware\Duet2/Duet2CombinedFirmware.bin" Firmware binary: C:\Eclipse\Firmware\ReprapFirmware\Duet2\Duet2CombinedFirmware.bin CRC32 = 0x71B36E05 20:06:38 Build Finished. 0 errors, 0 warnings. (took 3s.747ms)
-
@OwenD thanks, I'll update the one in the Tools folder of RRF.
-
@dc42 thank you! (confirmed: works for me too now)