I've spent some 25 years developing software on CP/M, various 80s home computers and finally, DOS and Windows. Now (coinciding, ahem, with the release of Vista...) I think it's way past time that I looked at Linux (and perhaps one of the BSDs) as a development platform.
What I'd like to find out is what folks are using to develop on Linux. In particular, what editors or IDEs are you using? And what else would you tell somebody looking to start developing native and cross-platform embedded software on Linux? Many thanks for any comments.
It depends what you're targeting. Are you just desirous of using Linux as your desktop OS, or are you developing for Linux targets, or what? Is the target big enough to run the compiler directly? What micros are you intending to use?
I am working with several micros at the moment, and here are my setups. All of the software that I'm currently running inside MacOS could be run under Linux if desired:
Cell/BE: PlayStation 3 (60GB edition) is the target. I run the compiler on the target. I export the source directory using nfs and edit the files directly using eclipse running on my main workstation (which, at the moment, is a 2.16GHz MacBook running OSX). I have a telnet window open to the PS3, and I run make in that window. Currently I also run gdb in that window, though it would be more efficient to run it natively on the Mac.
MSP430: This development is currently done on a PC. I use Rowley's CrossWorks. Avail for Linux/Windows.
ARM: This development is currently done on a PC. I use Rowley's CrossWorks. Again avail for Linux/Windows. These are OSless designs.
With MSP430 and ARM I am currently using Windows because I need to run other s/w at the same time, which is not presently available for Linux. But I could do the firmware development under Linux if I wanted to; I have in the past.
AVR: Currently I do this natively in MacOS. I use avrgcc, with eclipse as my editor. Note that Rowley also has an AVR compiler/IDE for Linux/ Windows.
Java (yes I use it in embedded designs): eclipse on MacOS again. Linux would actually be better due to more up-to-date Java support, but the system I have works okay for now.
I'm in self-improvement mode at the moment, which means that while I'm thinking mostly of 32-bit targets I don't have anything particular in mind, though I do have s small ARM SBC I'd like to play with (too small to run Linux). I'd also like to try cross-developing (on Linux) for some larger SBC (tbd) that is running Linux. Maybe something built around an MPC5** or Coldfire device.
Many thanks to all of you who have replied. I gather that there is a great deal of variety in the tools being used (esp. editors). For some (unjustified, I admit) reason I was not really expecting that.
Anyway, further reports on tool sets being used are certainly welcome. And additional thanks to all who pointed to additional resources as well.
I'll be porting my open source EmbeddedGNU IDE to linux as time allows. I'll use the same syntax highlighting editor component used by MonoDevelop. Once of the unique niches I'll be supporting is the use of Java for small target devices - in addition to gcc, of course. NanoVM for the AVR devices has gotten my attention. I'm amazed at what they can do to stick an OOP program into an 8K flash device with 1K or RAM. Surely we can take that a lot further with 128K of flash ...
It's the only one I've found for the processors I've used recently (e.g MSP430 and ARM). I currently use gcc for both, but should I ever need a commercial toolchain/debugger Rowley is probably the first place I'd look.
Grant Edwards grante Yow! ... I think I'd
at better go back to my DESK