Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Can't compile 3.5.0 (Duet2)

    Scheduled Pinned Locked Moved Solved
    Firmware developers
    5
    22
    634
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • OwenDundefined
      OwenD
      last edited by

      I'm having trouble compiling 3.5.0-dev (3.4.5-dev compiles fine)
      Can anyone offer suggestions for the errors shown?
      There's no specific instructions yet (understandably) for 3.5-dev at the github page , so I've used 3.5-dev version for those projects that have one and 3.4-dev for FreeRTOS
      screenshot2023-01-09-0745.png

      jay_s_ukundefined gloomyandyundefined 2 Replies Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @OwenD
        last edited by

        @OwenD try adding

        #include <Platform/Tasks.h>
        

        To the top of that file. A similar issue was recently fixed on the duet3expansion firmware https://github.com/Duet3D/Duet3Expansion/commit/4bf3819f5a1c688fea06cfca071bd705bc924483

        0 dc42 committed to Duet3D/Duet3Expansion
        Fixed build errors in some configurations after recent changes

        Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

        OwenDundefined 1 Reply Last reply Reply Quote 0
        • OwenDundefined
          OwenD @jay_s_uk
          last edited by

          @jay_s_uk said in Can't compile 3.5.0 (Duet2):

          try adding
          #include <Platform/Tasks.h>

          Thanks, but made no difference.

          1 Reply Last reply Reply Quote 0
          • gloomyandyundefined
            gloomyandy @OwenD
            last edited by

            @OwenD Try using the 3.4-dev version of RRFLibraries I don't think the current 3.5-dev is being used.

            OwenDundefined 1 Reply Last reply Reply Quote 2
            • OwenDundefined
              OwenD @gloomyandy
              last edited by OwenD

              @gloomyandy
              Thanks
              I actually tried that earlier and it almost worked.
              The binary was created but I got an error on the after compile section about crcappender I think.
              I'll have a bit more of a play later to see if I can figure it out.

              gloomyandyundefined JoergS5undefined 2 Replies Last reply Reply Quote 0
              • gloomyandyundefined
                gloomyandy @OwenD
                last edited by

                @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.

                1 Reply Last reply Reply Quote 0
                • JoergS5undefined
                  JoergS5 @OwenD
                  last edited by JoergS5

                  @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.

                  OwenDundefined 1 Reply Last reply Reply Quote 0
                  • OwenDundefined
                    OwenD @JoergS5
                    last edited by

                    @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.

                    window.png

                    JoergS5undefined 1 Reply Last reply Reply Quote 0
                    • JoergS5undefined
                      JoergS5 @OwenD
                      last edited by

                      @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.

                      OwenDundefined 1 Reply Last reply Reply Quote 0
                      • OwenDundefined
                        OwenD @JoergS5
                        last edited by

                        @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.
                        🤷

                        window1.png

                        JoergS5undefined dc42undefined 2 Replies Last reply Reply Quote 0
                        • JoergS5undefined
                          JoergS5 @OwenD
                          last edited by

                          @OwenD please post the register Console (lower half, third register).

                          OwenDundefined 1 Reply Last reply Reply Quote 0
                          • OwenDundefined
                            OwenD @JoergS5
                            last edited by

                            @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)
                            
                            1 Reply Last reply Reply Quote 0
                            • dc42undefined
                              dc42 administrators @OwenD
                              last edited by dc42

                              @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.

                              Duet WiFi hardware designer and firmware engineer
                              Please do not ask me for Duet support via PM or email, use the forum
                              http://www.escher3d.com, https://miscsolutions.wordpress.com

                              JoergS5undefined OwenDundefined 2 Replies Last reply Reply Quote 1
                              • JoergS5undefined
                                JoergS5 @dc42
                                last edited by

                                @dc42 Thanks for stepping in. I would have looked for a while longer for a solution....

                                1 Reply Last reply Reply Quote 0
                                • OwenDundefined
                                  OwenD @dc42
                                  last edited by OwenD

                                  @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 ??

                                  dc42undefined 1 Reply Last reply Reply Quote 0
                                  • dc42undefined
                                    dc42 administrators @OwenD
                                    last edited by dc42

                                    @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.

                                    Duet WiFi hardware designer and firmware engineer
                                    Please do not ask me for Duet support via PM or email, use the forum
                                    http://www.escher3d.com, https://miscsolutions.wordpress.com

                                    OwenDundefined 1 Reply Last reply Reply Quote 0
                                    • OwenDundefined
                                      OwenD @dc42
                                      last edited by

                                      @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 ??

                                      pathtocrcappender.png

                                      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 👍

                                      JoergS5undefined 1 Reply Last reply Reply Quote 0
                                      • OwenDundefined OwenD marked this topic as a question
                                      • OwenDundefined OwenD has marked this topic as solved
                                      • JoergS5undefined
                                        JoergS5 @OwenD
                                        last edited by JoergS5

                                        @OwenD I tried and get the same strange message:

                                        C:\Users\joerg>path %path%;c:_

                                        C:\Users\joerg>where crcappender
                                        c:_\CrcAppender.exe

                                        C:\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.

                                        dc42undefined 1 Reply Last reply Reply Quote 1
                                        • dc42undefined
                                          dc42 administrators @JoergS5
                                          last edited by dc42

                                          @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.

                                          Duet WiFi hardware designer and firmware engineer
                                          Please do not ask me for Duet support via PM or email, use the forum
                                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                                          OwenDundefined 1 Reply Last reply Reply Quote 0
                                          • OwenDundefined
                                            OwenD @dc42
                                            last edited by

                                            @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)
                                            
                                            dc42undefined 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA