Setting Up Eclipse For the new Firmware



  • I'm trying to set up eclipse so I can edit the most recent firmware. I got to a point where there were no errors/problems (prior to building).

    Then I wanted to build CoreNG. The first error is:
    arm-none-eabi-g++: error: unrecognized command line option '-std=gnu++14'

    I can't find what the problem is exactly. Any suggestions?


  • administrators

    I suspect that the version of arm-none-eabi-g++ you are using is too old. See the BuildInstructions file for the correct version.



  • Oops, I skipped the "brew cask install gcc-arm-embedded" instruction because i thought I had done that in the previous buildinstructions months ago. doing it now



  • @dc42 Maybe this is a stupid question: Do i need to do "brew cask install eclipse-cpp" if I have already installed eclipse a different way?



  • When I right click the CoreNG, then Build Configurations, Set Active should be set to SAM4E8E, right? And for right-clicking RepRapFirmware-2.01 folder ... Set Active should be Duet2_RTOS ?



  • The brew cask install gcc-arm-embedded fixed the error. The new error is:
    /Users/John/eclipse-workspace4/RepRapFirmware-2.01/src/RTOSIface.h:19:11: fatal error: FreeRTOS.h: No such file or directory

    I searched my computer for that FreeRTOS.h file. Its nowhere to be found.



  • @jml I think you are missing https://github.com/dc42/FreeRTOS
    I think this is not yet part of the build instructions, @dc42?



  • The brew cask install eclipse-cpp fixed the error... maybe FreeRTOS.h is included with Eclipse CPP.

    CoreNG builds correctly like before, and RepRapFirmware gets this new error when building:

    /Users/John/eclipse-workspace5/RepRapFirmware-2.01/src/ReprapFirmware.h:129:2: error: 'coreDelay' was not declared in this scope

    and it repeats several times. Other errors:
    make: *** [src/Tools/Filament.o] Error 1
    make: *** [src/Storage/FileStore.o] Error 1
    make: *** [src/Storage/FileInfoParser.o] Error 1
    make: *** [src/Tools/Tool.o] Error 1
    In file included from ../src/StepperDrivers/TMC22xx/TMC22xx.cpp:8:0:



  • Oops nevermind, the FreeRTOS problem is still there.

    I've downloaded the zip file in the FreeRTOS link you gave. What do I do with it?

    Your help is much appreciated!



  • And in addition to FreeRTOS missing from BuildInstructions, are any of these also required?

    DuetIAP
    LwipESP8266
    CoreESP8266
    CoreDuet



  • @jml Hi, in the FreeRTOS github is a .cproject file, so the files are complete project files for Eclipse. Unpack the zip and import them in Eclipse.

    In the comment for .cproject stands that is compiled for 2018-q2-update, so you should use the gcc-arm-none-eabi-7-2018-q2-... release.

    (coreDelay comment delected, see below)



  • @jml
    I think you should follow
    https://github.com/dc42/RepRapFirmware/blob/dev/BuildInstructions.md
    This should be sufficient to make a basic build.



  • @jml

    you asked for DuetIAP
    LwipESP8266
    CoreESP8266
    CoreDuet

    Most of them are old or have 1.21 version as a comment. I suspect that they are not needed.

    When you build the projects, eclipse tells you which libraries or links are missing,

    Good luck and please tell me where you get stuck.



  • @jml said in Setting Up Eclipse For the new Firmware:

    /Users/John/eclipse-workspace5/RepRapFirmware-2.01/src/ReprapFirmware.h:129:2: error: 'coreDelay' was not declared in this scope
    and it repeats several times. Other errors:
    make: *** [src/Tools/Filament.o] Error 1
    make: *** [src/Storage/FileStore.o] Error 1
    make: *** [src/Storage/FileInfoParser.o] Error 1
    make: *** [src/Tools/Tool.o] Error 1
    In file included from ../src/StepperDrivers/TMC22xx/TMC22xx.cpp:8:0:

    I think the reason is;
    You did not rename the project to RepRapFirmware, so some hardcoded links will not work:

    Step 4: Then rename folder ReprapFirmware-dev in that folder to RepRapFirmware.

    Error 1 in make is that the tool cannot find the file, this makes sense.


  • administrators

    @joergs5 said in Setting Up Eclipse For the new Firmware:

    @jml
    I think you should follow
    https://github.com/dc42/RepRapFirmware/blob/dev/BuildInstructions.md
    This should be sufficient to make a basic build.

    I confirm that, the up to date build instructions are the ones in the dev branch, not v2-dev.



  • I was looking at the BuildInstructions.md within the RepRapFirmware-2.01 folder, but I will follow the ones at the link sent in the above comments and will report back.

    The BuildInstructions say to keep the folder names as-is. The folder name as-is is RepRapFirmware-2.01, but I feel like I should change it to just RepRapFirmware... is that right?



  • Making progress. Using the proper Build Instructions this time. But now the first error that comes up (when building RepRapFirmware) is:

    In file included from ../src/Networking/ESP8266WiFi/WiFiInterface.cpp:9:0:
    ../src/Networking/ESP8266WiFi/WiFiInterface.h:16:10: fatal error: MessageFormats.h: No such file or directory
    #include "MessageFormats.h"
    ^~~~~~~~~~~~~~~~~~
    compilation terminated.

    But MessageFormats.h exists in the /Users/John/eclipse-workspace7/DuetWiFiSocketServer/src/include

    So I feel like it just can't see the socketserver folder. How do I link it or include it? CoreNG and FreeRTOS built fine by the way.



  • @jml
    WifiInterface.cpp I would try setting the reference by rclick on the project, properties, project references:
    But your project workspace is in another one than in the other message (workspace7, workspace5), I would put all Duet related projects into one workspace.

    This is not needed.



  • @joergs5 When I go to Project References for RepRapFirmware, I see only CoreNG, and FreeRTOS. DuetWiFiSocketServer is not there. Do I need to import DuetWiFiSocketServer into Eclipse?

    The reason I have different workspaces is because each time I try something new, I just start a new workspace and put in the original CoreNG, FreeRTOS, RRF, and socketserver folders into it. Reason for that is because I don't know if the things that I try mess up anything, so I like to start from scratch with a new workspace.



  • @jml I understand, this is totally ok, I do it the same way.



  • @jml your question for DuetWiFi..: you should copy the DuetWiFi... files into the newest workspace you use, import it without the option to move the files (they are already in your new workspace), then it will show up in the build properties list and you can click it. Maybe you have to restart/rebuild all Eclipse, if it is not in the list.
    this is not needed, and from DuetWifi you only need one .h file. See below



  • That is exactly what I think I have been doing. Perhaps my importing is not right.

    Option#1: This is what I would normally do. I would right click in the Navigator and select Import. Then I would select General > Existing Projects, and I'd select CoreNG and it would import. Then I would repeat for FreeRTOS and RepRapFirmware.

    Option#2: File > Open Projects From File System. Select only CoreNG, FreeRTOS, and RepRapFirmware (and not selecting the socketserver one).

    Using both options above, I still only get CoreNG and FreeRTOS in the project references for RepRapFirmware. The only way I can get the socket server one there is if I import it as a project, but then that causes a bunch of other errors.

    I right click CoreNG to set active to SAM4E. For RRF I set active to Duet2_RTOS. This part should be fine I think.



  • @joergs5 I had problems updating the list of dependencies. Fastest way to resolve it, copy all necessary projects into a new workspace, then after setting the new workspace import them in one step (without file move), then it will all show up in the list.
    this is not needed, see below



  • @jml my importing procedure is:

    1. copy files unzipped into the workspace
    2. open eclipse, say file - import - general/existing projects into workspace - next
    3. select root directory: select the workspace
    4. select all project - finish


  • I will do it that way next time i create a new workspace. For now, I will just import DuetWiFiSocketServer. Here is how it went.

    When I import DuetWiFiSocketServer, and right click it, and go to Properties, C/C++ Build, Settings, the path there is:
    C:\Users\David\AppData\Local\Arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\1.20.0-26-gb404fb9-2\bin

    I assume this should be changed (I'm on a Mac), but not sure to what. I put it as /usr/local/bin/ not sure if thats correct. I was able to select the checkbox for DuetWiFiSocketServer in the settings for RepRapFirmware by the way.

    I checked /Users/John/Library/Arduino15/packages , but the only folder in there is a folder called "arduino"

    The error I get when building RRF (after building coreng and freertos) is:

    In file included from ../src/Networking/ESP8266WiFi/WiFiInterface.cpp:9:0:
    ../src/Networking/ESP8266WiFi/WiFiInterface.h:128:22: error: 'NumWiFiTcpSockets' was not declared in this scope
    WiFiSocket *sockets[NumWiFiTcpSockets];

    Not sure if I am making progress now. Time to go to sleep.


Log in to reply