Monday, February 09, 2009

Beagle Board and Eclipse Distros

We had a meeting a few days ago amongst interested parties in an Eclipse IDE distribution for embedded. The idea would be to do something like I'm doing with Wascana which is supposed to make it easy for developers using open source tools, students especially, to get them up and running on Windows, and in turn showcase the features of the CDT in that environment. The idea of doing this for embedded would be to do the same for embedded systems developers and to show case the features of the DSDP project at Eclipse as well as CDT's embedded development support.

One thing I think we noticed quite quickly is the diversity of the embedded community at Eclipse. We have Web services applications for embedded, we have J2ME Java for embedded, we have deeply embedded systems like microkernels and DSPs that have no OS per se, and, of course, we have the more traditional RTOS systems. I think it'll be hard to showcase Eclipse support for all these things in one distro, and maybe it deserves it's a few such distros, or maybe we have RTOS versus not RTOS. It's an interesting initiative and I'm excited to see where it goes.

One of the platforms that came up in the meeting was the Beagle Board. Checking out their web site, it looks like an interesting target for hobbyist and student embedded developers. It's a cheap little board at around $150 US (a little more once you add the needed cables and a power supply to use it properly). The community there is working on getting the Angstrom embedded Linux distro running on the board and there are some cool videos of it working. Don't doubt it, this is being driven by Texas Instruments, who makes the chips for this board, so it's not purely a community driven project, but it looks like an independent community has formed and is running with it.

I think this would be a good choice to target an Eclipse for Embedded distro. I think a case could be made for qemu as well and the various CPUs and boards it emulates. And I assume you'd target Linux for these platforms. But then you open up the questions, which distro do you support, or do you make your own? And what about the other free or quasi-free RTOSes that have Eclipse support. At a minimum you need a cross compile and debug tool chain to integrate Eclipse with but what else would you need?

I get the feeling that this could turn into a pretty big project on it's own. Which, of course means it won't happen without a community behind it and maybe vendors to sponsor it. I'm interested in hearing your opinions on what this all should mean and what you would like to see in an open source Eclipse for Embedded IDE.

8 comments:

  1. An exemplary distribution of Eclipse for embedded is a great idea, but I feel that the highly disparate needs of the embedded community are going to make this a tall order.

    Rather than creating a single distro is there any way that a family of Wascana-like distros for embedded could be created?

    The idea might be to try and provide similar functionality for a variety of targets (Arm, ColdFire, DSPs, etc). Maybe the choice of compiler(s) will be the thing that drives this.

    Also it would be good to at least provide one non-Linux targetted example.

    When I first set up CDT for an embedded project it took about six months to get a good and stable platform so I know that this is going to help developers.

    I'd be happy to contribute from the experience I have of building a Coldfire RTOS platform.

    Cheers,

    Paul.

    ReplyDelete
  2. Thumbs up, sounds extremely interesting!

    We are currently looking at the Beagleboard as a kind of study material at work, and it's a perfect platform to learn about embedded Linux. However, one should be aware that this is a fully fledged plattform. It's not so much embedded as a complete computer, so you might actually learn just as much from using a 5-6 years old computer with Linux on it(ok, its not as small sized but...).
    There is one big disadvantage of the Beagleboard at the time of writing -- there are good graphics drivers, but they are proprietary. It's not that bad, but it's always risky with proprietary graphics drivers in Linux (just look at ATI and Nvidia driver support in linux, it's sketchy and causes more problems than any other system in Linux at this time imho, and it's been going on for 10+ years. I digress).

    To get to the point, developing applications for Beagleboard like systems is fairly simply.
    Two ongoing development parallell threads/teams.

    One application development thread working on the application on their normal (Linux)desktop, keeping in mind what libraries etc they use, making sure they are decently lightweight etc, and notifying systems thread of any extra libs necessary. Once this is done, just switch out compilers for crosscompilers, and gogo.

    Second team is systems thread, making the system work, porting in Linux/system, building toolchains, adding necessary drivers and libraries based on the application teams requirements.

    With QT and/or makefile based projects, this is amazingly simple. I'm afraid I never made Eclipse use a cross compiler, but should not be that hard. How hard is it?

    ReplyDelete
  3. Hi Doug,

    As a junior EE engineer, mainly specialized in embedded, I really appreciate any work done in supporting Eclipse/CDT for embedded SW development.

    But I am really confused, because QNX's Momentics, in some way, could be considered as an Eclipse distro focused on embedded, isn't it? And as I've lately heard, VxWorks retired their Tornado IDE and embraced Eclipse more or less at the same time as some canadian cdt guru joined Windriver (don't ask me about the crappy old Tornado I had to cope with in Uni).

    I know that those two distros are targeted to be used with their correspondent RTOS, but the thing is that they ARE Eclipse distros for embedded, aren't they.

    There is yet another distro I am aware of, there is a guy named Gaisler who has done a quite impressive work. Look at GRTools, an Eclipse distro+some cross compilers+support for RTEMS, eCOS, VxWorks targeted to the LEON proccessor, an GPLed SPARC implementation in VHDL.

    As mccp kinda said, it is not completely straightforward the way Eclipse/CDT manages things, so everytime I tried to use it as my main platform, I gave up and switched back to my old text editor and CLI toolchain.

    Lately I am quite interested in upgrading my PIC/8051 development environment and taking up the ARM as my common target environment. The prices have dropped a lot. Now for more or less the price of a 51 you can get an ARM7, and the family goes from there to high-end nearly-PC cores like the one in the Beagle and above.

    So, I suppose that what I am trying to say is that it would be great if someone could build an Eclipse distro aimed at ARMs with the correct toolchain, jtag support, etc. More or less what Gaisler et al. did for the LEON

    Well, those were my 0.02€

    Regards,
    ihm

    ReplyDelete
  4. I'd really like to see Eclipse to develop for BeagleBoard and being able to use OpenOCD JTAG [1] (not working yet) debugging via Eclipse. If there is some interest, we should start a discussion at BeagleBoard mailing list

    [1] http://elinux.org/BeagleBoardJTAG

    [2] http://groups.google.com/group/beagleboard

    ReplyDelete
  5. Since embedded development comes in such a wide variety of flavours, why not build on the existing update manager framework to provide "only embedded" options.

    This way developers would be able to build their own environment. I'd love to be able to go to the update manager and say:

    "I'm doing ARM BSP work, using VxWorks, using an iMx"

    and have it automatically pull in all of the required plugins to do that development. Then if I could switch and say:

    "I'm doing x86 application work, using QNX, using an Atom"

    and it would ensure my plugins are all in place again.

    Different vendors have different strengths and I think that that is a good thing. I just want a unified development environment for them.

    If this picks up steam, Crank (www.cranksoftware.com) would be interested in incorporating our embedded graphics products.

    Thomas

    ReplyDelete
  6. Ah, Thomas, you've revealed my internal strategy for the Wind River Installer ;).

    But yes, I think that's the right answer. Provide a framework and UI to do this using p2 as a base and have it download bits from various sources. Keep the install workflow simple, take advantage of the update mechanism of p2 to get new versions out.

    This could be pretty nice, but I'm not sure how to convert plan into action.

    ReplyDelete
  7. Just noticed that this made the Latest News page of beagleboard.org. I wonder if this qualifies me for a free board ;)

    ReplyDelete
  8. I am also evaluating the Beagle Board for a hobby project. In my case, I want to develop under Windows and run my programs on the bare metal of the OMAP processor rather than having an OS. I use Eclipse for my Java Web/Applications development and love it. I would like to use Eclipse for the OMAP SW development but the price of the Eclipse Plugins is beyond my limit for hobby expenses.

    A Windows GNU command line driven cross-compiler, assembler, and linker is available at no cost. Can I configure Eclipse CDT to use these tools?

    Regards,
    Bob

    ReplyDelete