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

    Setting up Eclipse to Develop Firmware

    Scheduled Pinned Locked Moved
    Firmware developers
    4
    42
    5.8k
    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.
    • jmlundefined
      jml
      last edited by

      Ok we are getting closer to a solution.

      I found the missing file here:
      /Users/John/eclipse-workspace/CoreNG/SAM4E8E/cores/arduino/syscalls.o
      [it appears there with a bunch of other files after building CoreNG]

      In the RRF Cross G++ Linker "Command line pattern" box, I see this written:
      ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${LINK_FLAGS_1} "${workspace_loc:/${CoreName}/SAM4E8E/cores/arduino/syscalls.o}" ${INPUTS} ${LINK_FLAGS_2}

      Its the same as yours, so seems like its not a problem.

      Maybe the problem is with how I build CoreNG and RRF:

      • First I right click CoreNG, Build Configurations > Clean All.
      • Repeat for RepRapFirmware folder
      • Right click CoreNG, Build Configurations > Build Selected… then I select SAM4E8E and hit ok.
      • Wait for build to finish (8 seconds)
      • Repeat for RepRapFirmware folder, but select DuetWiFi and hit ok.
      • Error

      Should I build it differently?

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

        That's the correct build order.

        In Properties -> C/C++ Build -> Build Variables, do you have CoreName defined as CoreNG ?

        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

        1 Reply Last reply Reply Quote 0
        • jmlundefined
          jml
          last edited by

          For the RepRapFirmware folder, yes it is there. Name: CoreName || Type: String || Value: CoreNG

          For the CoreNG folder, nothing is listed in the list. Should it be there?

          1 Reply Last reply Reply Quote 0
          • jmlundefined
            jml
            last edited by

            I really just need to make some small firmware changes and some custom g-code commands.

            I purchased the DuetWifi, PanelDue, and am waiting for the Duex5. Hoping to have it solved by the time it arrives! If I can't get it to work on Mac or Windows, I may just uninstall everything and try again when firmware version 1.2 is out.

            Thanks for all the help you've provided so far!

            1 Reply Last reply Reply Quote 0
            • fmaundefined
              fma
              last edited by

              I had no problem installing/compiling under linux. You may try to install a linux system in a Virtualbox env, and compile from there.

              Frédéric

              1 Reply Last reply Reply Quote 0
              • jmlundefined
                jml
                last edited by

                Ok, I will try. I'm using a decently powered Mac using Parallels to run windows and I assume I can put Linux on here too. Which Linux OS/distribution do you recommend? Ubuntu? I have limited experience with Linux, but I can learn!

                1 Reply Last reply Reply Quote 0
                • jmlundefined
                  jml
                  last edited by

                  So strange though. It seems like the only thing I need to fix is these empty quotation marks and it will fix everything:
                  -Wl,–start-group ""

                  The file it is looking for is 100% in the right folder. And the command line pattern is exactly how dc42's is.

                  1 Reply Last reply Reply Quote 0
                  • fmaundefined
                    fma
                    last edited by

                    I run debian, but I think ubuntu is fine too (all dev libs exist).

                    About the missing path, you can try to replace:

                    ${CoreName}

                    by

                    CoreNG

                    or ${workspace_loc:/${CoreName}

                    by

                    /Users/John/eclipse-workspace/CoreNG

                    to see if it fixes the problem.

                    Frédéric

                    1 Reply Last reply Reply Quote 0
                    • jmlundefined
                      jml
                      last edited by

                      LOL, I literally just tried it before reading your post AND IT WORKED!!!!!!

                      Just in case someone in the future has this problem, this is what I changed:

                      ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${LINK_FLAGS_1} "${workspace_loc:/${CoreName}/SAM4E8E/cores/arduino/syscalls.o}" ${INPUTS} ${LINK_FLAGS_2}

                      changed it to:
                      ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${LINK_FLAGS_1} "/Users/John/eclipse-workspace/CoreNG/SAM4E8E/cores/arduino/syscalls.o" ${INPUTS} ${LINK_FLAGS_2}

                      (make sure the quotes are there but the curly brackets and dollar signs removed).

                      Thanks everyone!

                      1 Reply Last reply Reply Quote 0
                      • jmlundefined
                        jml
                        last edited by

                        I'm so happy

                        1 Reply Last reply Reply Quote 0
                        • fmaundefined
                          fma
                          last edited by

                          Good!

                          But I think I found the issue. The string:

                          "${workspace_loc:/${CoreName}/SAM4E8E/cores/arduino/syscalls.o}"

                          should be :

                          "${workspace_loc}:/${CoreName}/SAM4E8E/cores/arduino/syscalls.o}"

                          There where a missing bracket at the end of the workspace_loc var…

                          Can you confirm?

                          Frédéric

                          1 Reply Last reply Reply Quote 0
                          • jmlundefined
                            jml
                            last edited by

                            When I browse around in the settings, the way that all of the Includes are is like this:
                            "${workspace_loc:/${CoreName}/asf/common/utils}"

                            So I don't think that was the issue.

                            1 Reply Last reply Reply Quote 0
                            • jmlundefined
                              jml
                              last edited by

                              Eg. when you write it like this:
                              "${workspace_loc}:/${CoreName}/SAM4E8E/cores/arduino/syscalls.o}"

                              you have an extra curly bracket because there is one on the far right 2nd last to the end.

                              1 Reply Last reply Reply Quote 0
                              • fmaundefined
                                fma
                                last edited by

                                Mmm, you're right, they are all defined this way… Strange.

                                Frédéric

                                1 Reply Last reply Reply Quote 0
                                • vschundefined
                                  vsch
                                  last edited by

                                  If it is of any help, I was getting the exact same error because I made the mistake of having the projects not under the workspace directory.

                                  When I created the workspace in the parent directory of the project sources (CoreNG and RepRapFirmware directories) the error went away as expected. The ${workspace_loc:} is expecting them to be under the workspace directory.

                                  However, I am getting undefined reference errors during linking for: lprintf, sqrtf, floorf, etc.

                                  I am running under OS X with gcc-arm-none-eabi-6-2017-q2-update tools. Is there a library missing from the linker options that the IDE should include based on dependencies?

                                  1 Reply Last reply Reply Quote 0
                                  • vschundefined
                                    vsch
                                    last edited by

                                    My problem of unresolved references was solved by resetting .cproject and .settings/language.settings.xml in RepRapFirmware project to repository version and then changing the project properties as per instructions. Subsequent build was successful.

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

                                      @fma:

                                      Good!

                                      But I think I found the issue. The string:

                                      "${workspace_loc:/${CoreName}/SAM4E8E/cores/arduino/syscalls.o}"

                                      should be :

                                      "${workspace_loc}:/${CoreName}/SAM4E8E/cores/arduino/syscalls.o}"

                                      There where a missing bracket at the end of the workspace_loc var…

                                      Can you confirm?

                                      Recently I was getting this issue intermittently. I think it is an Eclipse bug. So in the latest commit I changed the path to this:

                                      "${workspace_loc}/${CoreName}/SAM4E8E/cores/arduino/syscalls.o"

                                      This seems to have resolved 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

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post
                                      Unless otherwise noted, all forum content is licensed under CC-BY-SA