• Tags
  • Documentation
  • Order
  • Register
  • Login
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.
  • undefined
    jml
    last edited by 11 Dec 2017, 09:52 12 Nov 2017, 09:42

    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
    • undefined
      dc42 administrators
      last edited by 12 Nov 2017, 10:05

      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
      • undefined
        jml
        last edited by 11 Dec 2017, 19:23 12 Nov 2017, 18:58

        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
        • undefined
          jml
          last edited by 13 Nov 2017, 21:47

          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
          • undefined
            fma
            last edited by 14 Nov 2017, 06:16

            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
            • undefined
              jml
              last edited by 14 Nov 2017, 06:20

              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
              • undefined
                jml
                last edited by 14 Nov 2017, 06:34

                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
                • undefined
                  fma
                  last edited by 14 Nov 2017, 06:44

                  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
                  • undefined
                    jml
                    last edited by 14 Nov 2017, 06:54

                    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
                    • undefined
                      jml
                      last edited by 14 Nov 2017, 06:58

                      I'm so happy

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        fma
                        last edited by 14 Nov 2017, 07:18

                        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
                        • undefined
                          jml
                          last edited by 14 Nov 2017, 07:22

                          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
                          • undefined
                            jml
                            last edited by 14 Nov 2017, 07:46

                            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
                            • undefined
                              fma
                              last edited by 14 Nov 2017, 08:01

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

                              Frédéric

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                vsch
                                last edited by 26 Nov 2017, 22:55

                                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
                                • undefined
                                  vsch
                                  last edited by 5 Dec 2017, 19:36

                                  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
                                  • undefined
                                    dc42 administrators
                                    last edited by 5 Dec 2017, 20:56

                                    @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