Author Topic: All-in-one development IDE?  (Read 10457 times)

0 Members and 1 Guest are viewing this topic.

Offline brainwashTopic starter

  • Frequent Contributor
  • **
  • Posts: 463
  • Country: de
    • Hack Correlation
All-in-one development IDE?
« on: December 14, 2016, 04:14:48 am »
I have various boards around the house and frequently find myself making a project on different platforms and deploying them. However I have a huge issue with toolchains and IDEs, as well as figuring out the low-level configuration commands for each chip. That's why most of the time I just default to some Arduino port if I want to get something done quickly. This means that most of the time I have to deal with the horrible IDE as well.
I'm looking for a cross-platform solution (preferably Eclipse-based) that has a single setup (not one Eclipse instance for each board) and that can do ICD, for: 8-bit ATMega, MSP430, Stellaris/Tiva-C, ESP8266, STM32. PIC is a bonus but I haven't used it in years.

My current TI stuff requires probably around 2GB of Windows-only stuff at the root of my drive. AFAIK Energia relies on it as well.
The Arduino IDE is horrible (no ICD, no autocomplete, no VCS) but provides easy access to most platforms so it tends to get used the most.

I would also like to just copy/paste the setup to a different machine and possibly even to a different OS.
 
If anyone is having the same issues and has found a solution care to provide a quick description? Obviously ICD only where applicable.
« Last Edit: December 14, 2016, 04:17:17 am by brainwash »
 

Offline ez24

  • Super Contributor
  • ***
  • Posts: 3082
  • Country: us
  • L.D.A.
Re: All-in-one development IDE?
« Reply #1 on: December 14, 2016, 05:32:40 am »
Following (I finally got up the nerve to say this  :-DD )
YouTube and Website Electronic Resources ------>  https://www.eevblog.com/forum/other-blog-specific/a/msg1341166/#msg1341166
 

Offline Bud

  • Super Contributor
  • ***
  • Posts: 6877
  • Country: ca
Re: All-in-one development IDE?
« Reply #2 on: December 14, 2016, 06:17:09 am »
 :popcorn:
Facebook-free life and Rigol-free shack.
 

Offline ez24

  • Super Contributor
  • ***
  • Posts: 3082
  • Country: us
  • L.D.A.
Re: All-in-one development IDE?
« Reply #3 on: December 14, 2016, 06:24:40 am »
:popcorn:
I am going to use this from now on - thanks
YouTube and Website Electronic Resources ------>  https://www.eevblog.com/forum/other-blog-specific/a/msg1341166/#msg1341166
 

Offline sleemanj

  • Super Contributor
  • ***
  • Posts: 3020
  • Country: nz
  • Professional tightwad.
    • The electronics hobby components I sell.
Re: All-in-one development IDE?
« Reply #4 on: December 14, 2016, 06:56:17 am »
Maybe PlatformIO, i don't know if it supports all your platforms.  Personally, I tried it, but found it too complicated and unintuitive for my liking, but that said i also hate eclipse and my "IDE" of choice is a text editor with syntax highlighting, a file tree and a shell terminal, that's all I want, I absolutely hate any "project management" stuff in an IDE.
~~~
EEVBlog Members - get yourself 10% discount off all my electronic components for sale just use the Buy Direct links and use Coupon Code "eevblog" during checkout.  Shipping from New Zealand, international orders welcome :-)
 
The following users thanked this post: fourtytwo42

Online rstofer

  • Super Contributor
  • ***
  • Posts: 9886
  • Country: us
Re: All-in-one development IDE?
« Reply #5 on: December 14, 2016, 07:22:22 am »
Both Microsoft Visual Studio Community Edition and Eclipse support Makefile projects.  You can put the toolchain anywhere you want as long as you specify the location in the Makefile.

There is an Arduino plug-in for Visual Studio that adds a few buttons that are familiar to Arduino IDE users including COM port, board type, compile, download, etc.  It's a vast improvement over the Arduino IDE.

Eclipse is now heavily into building the project Makefile for projects it understands.

You should probably expect to have to get involved with the Makefile if you project grows to multiple files.
This isn't especially hard but there is a bit of a learning curve.
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2572
  • Country: fr
    • kripton2035 schematics repository
Re: All-in-one development IDE?
« Reply #6 on: December 14, 2016, 07:29:38 am »
:popcorn:
 

Offline Karel

  • Super Contributor
  • ***
  • Posts: 2214
  • Country: 00
Re: All-in-one development IDE?
« Reply #7 on: December 14, 2016, 07:39:21 am »
I don't want to use one IDE solution for everything.
But I do use my favorite text editor Kate for everything.
Most IDE's are aware when an opened file is changed from outside the IDE and reload the file automatically.
 

Offline Jeroen3

  • Super Contributor
  • ***
  • Posts: 4067
  • Country: nl
  • Embedded Engineer
    • jeroen3.nl
Re: All-in-one development IDE?
« Reply #8 on: December 14, 2016, 08:10:05 am »
A cross-platform cross-compiler with debugger for ATMega, MSP430, Stellaris/Tiva-C, ESP8266 and STM32.

It's good to have dreams.
 

Offline hans

  • Super Contributor
  • ***
  • Posts: 1626
  • Country: nl
Re: All-in-one development IDE?
« Reply #9 on: December 14, 2016, 09:14:00 am »
Nope.

If a chip has a GCC port that's great for Eclipse, however different chips still have different gdb proxies. For example Microchip XC16 and XC32 is possible to put into Eclipse, but I'm not familiar with a GDB proxy for 16-bit PICs.

You probably have way much more admin time than just learning 2 IDE's side by side. In addition, you probably also lose quite a lot of time on the quirks of Arduino's IDE.

Multi machine is hard enough given how fragmented installations are.
Multi OS is out of this the world.
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: All-in-one development IDE?
« Reply #10 on: December 14, 2016, 09:16:46 am »
AFAIK Eclipse should get you quite far. I'm using it for various microcontrollers (including PIC -shudder-), PHP (if I really really have to), C++ and VHDL.
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline ElektroQuark

  • Supporter
  • ****
  • Posts: 1244
  • Country: es
    • ElektroQuark
Re: All-in-one development IDE?
« Reply #11 on: December 14, 2016, 09:30:55 am »
Is it possible to use Microchip debug probes (PICKit, IDC, REAL ICE) with Eclipse?

Offline Brutte

  • Frequent Contributor
  • **
  • Posts: 614
Re: All-in-one development IDE?
« Reply #12 on: December 14, 2016, 10:13:09 am »
and that can do ICD, for: 8-bit ATMega, MSP430, Stellaris/Tiva-C, ESP8266, STM32. PIC is a bonus but I haven't used it in years.
Ok, so I have done: coding + compiling + debugging + programming + documentation, etc. on AVR8, PIC32, ARM Cortex M (STM32, LPC17xx, Stellaris and other) plus of course x86, under single instance of Eclipse. As you are mostly interested in in-circuit-debugging, for AVR8 I used JTAGICE + avarice, for PIC32 there was PICKIt2+ejtagproxy, for Cortex-M there were various dongles with OpenOCD. I have not tried MSP430. AFAIK you can also use gcc for Xtensa core and if the GDB is available then that should not be more complicated than for other above architectures. It is also worth noting that there are simulators available for those (simulavr for AVR8, qemu for cortex-m, mips and xtensa) so many algorithms can be debugged/simulated without actual hardware under same Eclipse.
 

Offline kripton2035

  • Super Contributor
  • ***
  • Posts: 2572
  • Country: fr
    • kripton2035 schematics repository
Re: All-in-one development IDE?
« Reply #13 on: December 14, 2016, 11:43:55 am »
I don't want to use one IDE solution for everything.
But I do use my favorite text editor Kate for everything.
Most IDE's are aware when an opened file is changed from outside the IDE and reload the file automatically.
this even works with the arduino IDE !
 

Offline brainwashTopic starter

  • Frequent Contributor
  • **
  • Posts: 463
  • Country: de
    • Hack Correlation
Re: All-in-one development IDE?
« Reply #14 on: December 14, 2016, 11:59:14 am »
I wasn't expecting so much feedback, thanks everyone. It seems like quite a few have similar needs as in the first post.
To detail: ICD (or step-by-step debugging) would be nice but it obviously won't work with every platform.

Replying in random order:

Ok, so I have done: coding + compiling + debugging + programming + documentation, etc. on AVR8, PIC32, ARM Cortex M (STM32, LPC17xx, Stellaris and other) plus of course x86, under single instance of Eclipse. As you are mostly interested in in-circuit-debugging, for AVR8 I used JTAGICE + avarice, for PIC32 there was PICKIt2+ejtagproxy, for Cortex-M there were various dongles with OpenOCD. I have not tried MSP430. AFAIK you can also use gcc for Xtensa core and if the GDB is available then that should not be more complicated than for other above architectures. It is also worth noting that there are simulators available for those (simulavr for AVR8, qemu for cortex-m, mips and xtensa) so many algorithms can be debugged/simulated without actual hardware under same Eclipse.
That sounds quite interesting and very close to what I want. Is there any way you can share the way you've configured your eclipse installation? Or perhaps even upload it somewhere, if it's easier.
Simulators are very useful for automated testing. Through careful abstracting/wrapping of the hardware-specific functions you can easily test the code or port it to another platform. So testing was one of my future topics after finding a proper IDE/toolchain flow. Keil could do that and I think the TI version of Eclipse can also.

If a chip has a GCC port that's great for Eclipse, however different chips still have different gdb proxies. For example Microchip XC16 and XC32 is possible to put into Eclipse, but I'm not familiar with a GDB proxy for 16-bit PICs.

I don't think you can [easily] debug low-end PIC16F, wasn't even aiming for that. A makefile approach is fine.

AFAIK Eclipse should get you quite far. I'm using it for various microcontrollers (including PIC -shudder-), PHP (if I really really have to), C++ and VHDL.

Perhaps I misspoke, Eclipse is ok, just not sure if you can integrate everything inside it and still have it perform properly. I have around 4-5 instances floating around for various stuff. OTOH I have at least: one for enterprise Java, one for GWT, one for embedded C, one from TI, one for AngularJS.

A cross-platform cross-compiler with debugger for ATMega, MSP430, Stellaris/Tiva-C, ESP8266 and STM32.

It's good to have dreams.

Not sure if it's meant at my post or it's just a wish. But I'm not talking about a single compiler, that would be almost impossible, just integrating several projects on different platforms under the same IDE and keep a constant workflow.

Both Microsoft Visual Studio Community Edition and Eclipse support Makefile projects.  You can put the toolchain anywhere you want as long as you specify the location in the Makefile.

There is an Arduino plug-in for Visual Studio that adds a few buttons that are familiar to Arduino IDE users including COM port, board type, compile, download, etc.  It's a vast improvement over the Arduino IDE.

Eclipse is now heavily into building the project Makefile for projects it understands.

You should probably expect to have to get involved with the Makefile if you project grows to multiple files.
This isn't especially hard but there is a bit of a learning curve.

Makefile is fine, it's industry standard AFAIK. The real problem is with the libraries/includes/platform, TI for example has an unreadable XML format. It's probably unreadable even to them as they have broken compatibility several times.
VS is nice but I don't particularly like it and it's not cross-platform. I could get used to it, if needed.

Maybe PlatformIO, i don't know if it supports all your platforms.  Personally, I tried it, but found it too complicated and unintuitive for my liking, but that said i also hate eclipse and my "IDE" of choice is a text editor with syntax highlighting, a file tree and a shell terminal, that's all I want, I absolutely hate any "project management" stuff in an IDE.

I found out about platform.io after writing my original post. It looks very promising and 'they' seem to be considering adding debugging support. I also don't like it but willing to sacrifice some of my habits if it gets the job done.

As a side note - I've also grown fond of the IntelliJ-based IDEs from Jetbrains. For C they have CLion, which I haven't used, but I assume it's as good as the other ones.

I don't want to use one IDE solution for everything.
But I do use my favorite text editor Kate for everything.
Most IDE's are aware when an opened file is changed from outside the IDE and reload the file automatically.

I'm not sure if you can get an external IDE to highlight compiler errors without a lot of fumbling. Also the advantage of an integrated IDE is that you can debug line-by-line and check the current state of a variable. Sure, you can read the errors and jump manually, run git from the command line, run gdb manually - but then you are only a level above notepad.


So far there seem to be two promising possibilities: platform.io (can be used with another IDE for editing files) or a custom setup of Eclipse.
 

Offline Brutte

  • Frequent Contributor
  • **
  • Posts: 614
Re: All-in-one development IDE?
« Reply #15 on: December 14, 2016, 01:46:12 pm »
That sounds quite interesting and very close to what I want. Is there any way you can share the way you've configured your eclipse installation? Or perhaps even upload it somewhere, if it's easier.
Well, I do not use AVR8 and MIPS any more. If you want the installation details, that was always a raw Eclipse + CDT and various plug-ins.
For AVR8 search avrfreaks and my posts. For example here. There is a debugging session screenshot included in one of the posts.
As for mips, you need ejtagproxy.
As for cortex-M there are zillions of projects showing how to run gdb with openocd and eclipse - nothing fancy.
Mind you need some IO viewer plugin as the built-in Eclipse "memory view" is not very convenient. I suggest embsysregview : (AVR8, Cortex-M, MSP430 etc) or GnuArmEclipse (mostly cortex).

As for languages, C and C++ works out of the box (CDT). For Ada you need another plugin (from adacore).
As for OSes: FreeRTOS has its plugin and Chibios has another plugin. Ada runs with its own OS.

Of course you need other generic plugins (for doxygen, egit, qemu, serial terminal etc) to do programming but I assume you already know that.
 

Offline brainwashTopic starter

  • Frequent Contributor
  • **
  • Posts: 463
  • Country: de
    • Hack Correlation
Re: All-in-one development IDE?
« Reply #16 on: December 14, 2016, 03:01:09 pm »
But I'm curios about specifics:
- how do you handle different gcc versions? Normally you set up a global system path or a project override.
- what's your workflow for creating a new project? Do you duplicate an existing config or create one from scratch?
- how is the MCU defined? As a project variable?
- how does the IDE handling moving from place to place? If you move a tooling folder do you have to update all projects?
- are the build and debug steps done through Makefile or .bat/sh files?
 

Online nctnico

  • Super Contributor
  • ***
  • Posts: 26751
  • Country: nl
    • NCT Developments
Re: All-in-one development IDE?
« Reply #17 on: December 14, 2016, 03:51:54 pm »
In Eclipse you can set the paths to a specific toolchain for a build target in a project. This means you can build the same project for multiple microcontrollers if you want. Within a workspace you can have different projects (for example VHDL and C++).
There are small lies, big lies and then there is what is on the screen of your oscilloscope.
 

Offline eugenenine

  • Frequent Contributor
  • **
  • Posts: 865
  • Country: us
Re: All-in-one development IDE?
« Reply #18 on: December 14, 2016, 04:15:48 pm »
UCEIDE is a project that whose goal IIRC is just this.  Its Arduino like so it may not be what you want.

I have MPLAB X (with its copy of eclipse) and then eclipse by its self.  Do you setup the standalone eclipse to work with other toolchains then bring in all the Microchip stuff from mplax x or do you start with Microschip's mplabx and add other stuff to it?
 

Offline ElektroQuark

  • Supporter
  • ****
  • Posts: 1244
  • Country: es
    • ElektroQuark
Re: All-in-one development IDE?
« Reply #19 on: December 15, 2016, 07:55:49 am »
MPLAB X is based on NetBeans not Eclipse.

Offline Brutte

  • Frequent Contributor
  • **
  • Posts: 614
Re: All-in-one development IDE?
« Reply #20 on: December 15, 2016, 08:16:14 am »
But I'm curios about specifics:
- how do you handle different gcc versions?
#if #endif
if that is for avr then __AVR is defined in a compiler and if x86 then __x86__ (IIRC),
if that is Keil then __CC_ARM if that is SDCC then it is __SDCC etc


- what's your workflow for creating a new project?
The plugins (avr-eclipse and gnu-arm-eclipse) come with wizarding. Of course you can copy a template project or your own. Or you can create a makefile project and provide your own makefile.

- how is the MCU defined? As a project variable?
That is defined as -D and plugins maintain that. Or you can -D manually if you like to. Mind you also need to link proper libraries and linker script for a particular mcu - wizarding does that automagically but in a manual mode that is your duty.

- how does the IDE handling moving from place to place? If you move a tooling folder do you have to update all projects?
Not sure if I understand. The makefiles are governed by plugins via wizarding and if you move or add a file or folder then the makefile is updated after you click "make all". If you maintain your project as a makefile project then that depends on the details of the makefile you write. So adding a folder requires adding its path in a makefile or writing a makefile that discovers subfolders automatically. That depends on your make-fu, not the eclipse.

- are the build and debug steps done through Makefile or .bat/sh files?
This is made via makefiles. But the makefile can be either created by a plugin (you pick options from drop-down list) that creates makefile, or alternatively you can use a generic makefile project where you edit a makefile in a text mode.

EDIT:
Sorry, didn't notice - build steps are made via makefile. And if you want to debug you have to build an elf with debug information (usually this is default with wizarding). As for debugging - this is maintained by debugging module (Eclipse CDT comes with it installed, with dedicated menu).

As for exactly the thingy you want to debug - if that is qemu then you need to install and use "debug with qemu", if that is native application then you need to use "debug native application" (this one is preinstalled with CDT), if it is debug with OpenOCD then you pick "debug with OpenOCD" (I think this one comes with gnu-arm-eclipse), etc. Nothing sophisticated. And there is also a generic option for raw "gdb hardware debugging" where you can manually specify every woodoo gdb option (kinda "gdb expert mode").

So, gdb connects to debugging dongle via some communication channel. Not sure what dongle you own but it is usually via pipe or TCP/IP or serial. Again, if your dongle comes with ethernet connectivity - just plug it in and configure gdb to access it. If it comes with serial - do serial. However most common dongles are "brain-dead-dongles" that require a middleware application that translates commands in between gdb and dumb debugging dongle. OpenOCD comes handy, supports many platforms. For AVRs the middleware is called avarice. For PIC32 this is called ejtagproxy, etc. Every dongle manufacturer provides its own gdb middleware (or at least should) and there is no one-serves-all.

Of course the middleware has to be running attached to a target, just waiting for gdb connection. Then you run gdb, the connection is established with a dongle, and you are ready for debugging.
« Last Edit: December 15, 2016, 11:13:48 pm by Brutte »
 

Offline eugenenine

  • Frequent Contributor
  • **
  • Posts: 865
  • Country: us
Re: All-in-one development IDE?
« Reply #21 on: December 15, 2016, 06:27:48 pm »
MPLAB X is based on NetBeans not Eclipse.

err, yea, got my open source projects mixed up.  Same concept though just search and replace the names.  do you set up MPLAB X's netbeans to compile other stuff or do you install standalone netbeans and then point it to the microchip toolchain?
 

Offline brainwashTopic starter

  • Frequent Contributor
  • **
  • Posts: 463
  • Country: de
    • Hack Correlation
Re: All-in-one development IDE?
« Reply #22 on: December 16, 2016, 01:03:31 pm »
But I'm curios about specifics:
- how does the IDE handling moving from place to place? If you move a tooling folder do you have to update all projects?
Not sure if I understand. The makefiles are governed by plugins via wizarding and if you move or add a file or folder then the makefile is updated after you click "make all". If you maintain your project as a makefile project then that depends on the details of the makefile you write. So adding a folder requires adding its path in a makefile or writing a makefile that discovers subfolders automatically. That depends on your make-fu, not the eclipse.

Thanks for the clarification so far.
I meant if the installation is portable, like grabbing the Eclipse and tools folders from your machine and continuing work on another machine with minimal setup.
Regarding cross-platform, I meant the development machine (Windows/Linux/OSX), not the underlying MCU. But I guess that's very dependent on the MCU tooling. It probably makes more sense to put everything into a VBox, but that requires a more-than-decent machine which kind of excludes ultra-light laptops.
 

Offline ^_^

  • Regular Contributor
  • *
  • Posts: 82
  • Country: au
  • EE
Re: All-in-one development IDE?
« Reply #23 on: December 16, 2016, 02:45:24 pm »
Well, when it comes to JUST editing, there was a guy in my previous work who used always Eclipse.
He hated MPLAB and he'd only open it to compile the Eclipse-edited code, haha.

I think you can do the same with Visual Studio, which also comes with epic code editor.
Then you're only left with debugging with the vendor-specific IDE.
That's always something.

// Right now I'm using Keil, and it just might be one of the worst IDEs there are.  |O //
 

Offline Brutte

  • Frequent Contributor
  • **
  • Posts: 614
Re: All-in-one development IDE?
« Reply #24 on: December 16, 2016, 04:16:12 pm »
Right now I'm using Keil, and it just might be one of the worst IDEs there are.  |O //
Keil has released an Eclipse uVision plug-in several years ago. You start uVision in the background and use Eclipse as a front-end (it does debugging and even simulation).
 
The following users thanked this post: ^_^, julianhigginson


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf