Trump
Thanks
-Where in the filesystem is the output? (.hex, .epp etc)
The output files are located in a subfolder of the project wit the configuration name. It however only appears after the compile has been executed. This is the standard C/C++ eclipse indigo behavior.
-What is your reasoning for importing the core Arduino files into a new project for each board type used.
There is a long history on the core with the MCU extension. I'm happy you asked it.
I started with a library called arduino_core. That worked fine until I had 2 boards with a different MCU.
So I changed the approach to adding the Arduino code to the source code. I already shouted I'm done to notice that the sketch size was far bigger than the Arduino IDE. This is cause by the fact that the linker can not remove unused global variables when directly linked in.
So I went to arduino_<MCU_name> this worked great because avr_eclipse changes the environment variable MCU_name and you can use environment variables to reference folders. So I only had to create the arduino core project and the references are immediately change.
Later on I realized that it is possible to use the configuration to only have one arduino_core for all configurations (avr_eclipse allows multiple configurations)
When I looked at how to do it I failed to do this with environment variables and the change implied some code tat I didn't feel like doing so I consider the current solution good enough. But this is on the list of improvements.
Note that a similar problem exists with the programmer. I have only one board type so i couldn't test this but I think that if you have 2 board with a different upload frequency there will be a little bug.
-I assume that the project is no longer compatible with the Arduino IDE? (wrong file extension etc) If not, how can you import into the arduino ide.
You know I asked you to work together. This is one of the things I was thinking of :-)
Basically the IDE can handle pde files. a pde file is a standard c/c++ file but the ide makes that you can relax the C C++ language constraints.
For instance you do not have to declare functions before you can use them. If we add in the toolchain a pde to C++ tool before the C++ compiler we can have Arduino IDE compatibility.
- I think that Having a custom board option would be neat. aka running a mega at a different frequency etc.
Basically I only put a layer on avr-eclipse and the C/C++ cdt. The create "new Arduino sketch wizard" just sets all the options correctly. The property page allows to change some properties and only changes those. In the Arduino property page you see the all the properties (how they are set when you open it, and how they will be set after you changed the board type) except for the programmer that is used (look at project properties-> arduino->avrdude->programmer tab to understand what I mean; click edit for better understanding.
I'm not sure what it would be good for but avr eclipse supports this. I consider this advanced usage and I would advice advanced users who want to do this to use the avr-eclipse functionality directly or by using the Arduino-eclipse plugin.
- Once you have the Arduino install location from the new project wizard, the plugin should be able to set the AVRDude paths and other settings correctly.
I fully agree. This should be a preference page with a option like "use Arduino IDE for avrDude and GNU compiler"
-Will you be releasing the source?
I worked on that yesterday all day. Never worked with Git nor github but I succeeded in uploading. Please feel free to join in. I know you have the code to make a combo box to select the com port on windows. Not sure what the consequences are from adding this code for linux users and that is why I didn't use it. The code is at :
https://github.com/jantje/arduino-eclipse-pluginI'm currently working on a library import function. This should import the code in the main folder and add a include and source reference.
Best regards
Jan