Go Down

Topic: Windows/Linux/Mac Eclipse plugin to compile and upload arduino sketches (Read 503316 times) previous topic - next topic

jim_s

I would love to pick your brain a bit sometime, Jantje.  I also use Eclipse CDT for the software development side of PSoC projects. (PSoC Creator compiles C, but not C++, and doesn't have many of the advanced features that CDT provides, whereas Eclipse allows compiling C++, along with all the Eclipse/CDT bells and whistles.)  PSoC Creator must be used to define the configurable hardware, assign pins, etc, however - so it's a 2-part process - hardware definition/configuration in PSoC Creator, then software development in Eclipse, then upload (including writing the hardware config) in PSoC Creator.

I have a baseline Eclipse project setup (configured according to some information provided by some helpful and smart folks in the community!), and I base the Eclipse side of new PSoC projects off of the baseline Eclipse project - involving some renaming, copying, pasting, etc.  I'd LOVE to be able to setup some type of plugin or wizard that would let me create the CDT project from an existing PSoC Project w/o all of the manual intervention), and could envision that working similar to Sloeber in some respects.

BTW, I can't adequately describe how excited I am to hear that you're working on a new version of Sloeber!!  You are truly a Knight in Shining Armor!! :-)

Jantje

(I made a long answer and then boom->gone. sorry now only the short answer)
There are many changes in CDT right now.
You should take a look at gnu mcu plugin that is currently being integrated.
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Juraj

(I made a long answer and then boom->gone. sorry now only the short answer)
There are many changes in CDT right now.
You should take a look at gnu mcu plugin that is currently being integrated.
Jantie, check Drafts

https://forum.arduino.cc/index.php?action=profile;area=showdrafts;u=14686

Jantje

I do not understand your PSoc story. I have a software background, I don't know much hardware related stuff ;-)
What I can say though is that IMHO CDT has 2 main problems.
1) Managed build (the thing that make the makefiles) is .... ready for replacement.
2) CDT does not work "out of the box"
Sloeber is build upon Managed build and adds "out of the box" for Arduino boards.
If I read your PSoc story I think you are hit by both issues.

Managed build is a big issue and the replacement is being worked on. If your workflow/requirements would be known we can take them along (no guarantees but not knowing them is guaranteed not to be taken along)
IMHO A video showing and explaining the process is a great way.

Working "out of the box" is dependent on Managed build so it is not useful to work on it.

At this point in time 2 big changes are done in CDT.
One is integration of cmake (I do not know whether you will have to create the cmake files yourself) and the other is the integration of gnu mcu plugin.
You should take a look at these. For sure the gnu mcu plugin.
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

Jantje

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

WillemE

Hi, Question I have below in platform.txt

tools.CubeCellflash.cmd.windows={runtime.platform.path}/tools/CubeCellflash/CubeCellflash.exe
tools.CubeCellflash.cmd.linux={runtime.platform.path}/tools/CubeCellflash/CubeCellflash
tools.CubeCellflash.cmd.macosx={runtime.platform.path}/tools/CubeCellflash/CubeCellflash

tools.CubeCellelftool.cmd.windows={runtime.platform.path}/tools/CubeCellelftool/CubeCellelftool.exe
tools.CubeCellelftool.cmd.linux={runtime.platform.path}/tools/CubeCellelftool/CubeCellelftool
tools.CubeCellelftool.cmd.macosx={runtime.platform.path}/tools/CubeCellelftool/CubeCellelftool

This is working in Arduino IDE and .cmd.macosx line is selected using on OSX, sloeber is not picking up anything, after fixing in platform.sloeber.txt to tools.CubeCellflash.cmd= default it is working.

Please advise, is it a slober issue or platform.txt incorrect.

Thanks for the great work !!!!

Jantje

I need to see the whole package to understand what is going on.
Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -

WillemE

I use - https://resource.heltec.cn/download/package_CubeCell_index.json - this will present some boards which will lead to - https://github.com/HelTecAutomation/ASR650x-Arduino -

the platform.txt https://github.com/HelTecAutomation/ASR650x-Arduino/blob/master/platform.txt read by sloeber and parsed into platform.sloeber.txt which I modified as shown in my earlier post.

Thanks in Advance for your time.

WillemE


Jantje

Do not PM me a question unless you are prepared to pay for consultancy.
Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -


mb111

Hi, I hope someone can help with my issue.

I have installed Sloeber V4.3 on Windows10 and I already have Arduino 1.18.13 installed.
After I start Sloeber V4.3, I select to create a new project, but when I try to select the platform
from the platform folder drop down menu, I am only able to select mbed, and cannot work out
how to select a normal AVR Arduino Uno or any other platform. Even if I make this selection
I still cannot change it later.

Can someone help out please?

Thanks
MB

Juraj

Hi, I hope someone can help with my issue.

I have installed Sloeber V4.3 on Windows10 and I already have Arduino 1.18.13 installed.
After I start Sloeber V4.3, I select to create a new project, but when I try to select the platform
from the platform folder drop down menu, I am only able to select mbed, and cannot work out
how to select a normal AVR Arduino Uno or any other platform. Even if I make this selection
I still cannot change it later.

Can someone help out please?

Thanks
MB
go to Arduino menu, Preferences option. then select Preferences and boards and install the boards package

mb111

Thanks Juraj, that worked for me. No matter which way you cut it, Eclipse V's arduino IDE.....no contest.

Where can I find out why on earth this package needs a "sloeber.ino.cpp" file?
?? spec.d ??
No other Eclipse flavor needs such files, whats up with this?

Google translate doesn't know what "sloeber" is, what the heck is it?

Thanks for your help.

Juraj

Thanks Juraj, that worked for me. No matter which way you cut it, Eclipse V's arduino IDE.....no contest.

Where can I find out why on earth this package needs a "sloeber.ino.cpp" file?
?? spec.d ??
No other Eclipse flavor needs such files, whats up with this?

Google translate doesn't know what "sloeber" is, what the heck is it?

Thanks for your help.
sloeber.ino.cpp is ino-to-cpp for CDT C++ indexer, which underlines errors and feeds code completion and it is the main cpp file in the makefile. spec.d is a CDT thing. CDT is Eclipse C/C++ Development Tooling

in Arduino IDE the builder creates at build time a file similar to sloeber.ino.cpp. but in Eclipse we need it all the time for the Indexer

here is a sloeber.ino.cpp for one of my more complex Arduino projects

Code: [Select]
#ifdef __IN_ECLIPSE__
//This is a automatic generated file
//Please do not modify this file
//If you touch this file your change will be overwritten during the next build
//This file has been generated on 2020-04-28 16:43:07

#include "Arduino.h"
extern const unsigned long EVENTS_SAVE_INTERVAL_SEC;
extern const char* eventLongLabels[];
extern const unsigned short eventIsError;
#include <EEPROM.h>
#include <avr/wdt.h>
#include <UIPEthernet.h>
#include <SD.h>
#include <TimeLib.h>
#include <StreamLib.h>

void beeperSetup() ;
void beeperLoop() ;
void alarmSound() ;
void beep() ;
void beeperTone(uint32_t time) ;
void csvLogSetup() ;
void csvLog() ;
void csvLogPrintJson(FormattedPrint& out) ;
void eventsSetup() ;
void eventsLoop() ;
void eventsWrite(int newEvent, int value1, int value2) ;
boolean eventsSaved() ;
void eventsSave() ;
byte eventsRealCount(bool errorsOnly) ;
void eventsPrint(Print& stream) ;
void eventsPrint(Print& s, int ix) ;
void eventsPrintJson(FormattedPrint& stream) ;
void eventsPrintJson(FormattedPrint& stream, int ix) ;
int eventsCompare(const void * elem1, const void * elem2) ;
void setup() ;
void loop() ;
bool inputPinIsON() ;
void switchIsgSgInput1(bool on) ;
bool checkSGOpState() ;
void printState() ;
bool queryState() ;
bool handleErrorState() ;
boolean networkConnected() ;
void watchdogSetup() ;
boolean modbusError(int err) ;
int modbusRequest(Client& client, byte fnc, unsigned int addr, byte len, short *regs) ;
int modbusWriteSingle(Client& client, unsigned int address, int val) ;
void statusLedSetup() ;
void statusLedLopp() ;
void statusLedShortBlink() ;
void symoRtcSetup() ;
void symoRtcLoop() ;
bool symoRtcQuery() ;
void terminalSetup() ;
void terminalLoop() ;
void printTimestamp() ;
void webServerSetup() ;
void webServerLoop() ;
void webServerRestRequest(char cmd, ChunkedPrint& chunked) ;
void webServerServeFile(const char *fn, BufferedPrint& bp) ;
void printValuesJson(FormattedPrint& client) ;
const char* getContentType(const char* ext);

#include "IsgModbusTcpSG.ino"

#include "Beeper.ino"
#include "CsvLog.ino"
#include "Events.ino"
#include "StatusLed.ino"
#include "SymoRTC.ino"
#include "Terminal.ino"
#include "WebServer.ino"

#endif

Go Up