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.
With that in mind, you will want to become familiar with GCC cross compilers.
The CrossGCC mailing list is worth joining if you get into building your own cross compilers.
Dan Kegal's crosstool script is worthy if you start building cross toolchains targeted at Linux based embedded systems.
When building GCC cross toolchains for "bare metal" embedded systems, newlib is nice to know about, and the GCC build machinery makes it fairly easy to build.
I can't help you on editors too much, other than to say vi (a.k.a. vim) is the ultimate text editor ;-)
Linux is an adventure.
--
Michael N. Moran (h) 770 516 7918
5009 Old Field Ct. (c) 678 521 5460
I use linux or linux in vmware. Currently fedora core 6 and just having a test with fedora 7 .
Usually command line for compiling + kedit. Vim if I not running x.
Eclipse if I need an ide (is pretty slow even on fast machines) But usually find I'm more productive with command line compiling(and tools) + plain text editor.
Some tools you need to compile yourself from sources others are available prepackaged.
Atmel provides pre-packaged tools for avr32.
Also use a mini mac. Currently just for avr , m68k and arm.
The bsd's and mac are easier to setup than linux due to the ports collections (fink or darwin ports on mac) avr osx package is mac equivalent of winavr.
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
I have to give them credit for charging the same price for Linux and for Windows -- unlike other vendors (e.g. Gimple) who charge 4X for the Linux/Unix version.
--
Grant Edwards grante Yow! I'm reporting for
at duty as a modern person. I
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here.
All logos and trade names are the property of their respective owners.