ARM Programming on Mars

Before you overreact to the title, keep in mind the latest version of Eclipse is code named “Mars.” It is always a bit of a challenge to set up a generic ARM tool chain. If you don’t mind sticking to one vendor, shelling out a lot of money, or using Web-based tools, then you might not have this problem. But getting all the tools together can be annoying, at best.

[Erich Styger] works with students and knows they often stumble on just this step so he’s provided clear documentation for getting Eclipse, the ARM gcc compiler, and a full set of tools installed. He focuses on Windows and the Kinetis platform, but the steps are virtually the same regardless. Just get the right tools for your operating system and skip the Kinetis-specific parts if you don’t need them.

We did notice that the PPA for the ARM gcc package (gcc-arm-none-eabi) didn’t have packages for Ubuntu Vivid, but since the standard repositories have the newest version, that’s not a problem. Just install it as you would any other software if you are using Ubuntu or one of its derivatives.

Is this something the average Hackaday reader couldn’t figure out? No. Is it a big time saver to have all the links and instructions in one place? You bet.

Although Eclipse originally was a Java development tool, it is flexible enough to do just about anything. Even debug microcontrollers. If you’ve had trouble in the past installing Eclipse, the Mars version comes with a new, friendlier installer (see video below).

39 thoughts on “ARM Programming on Mars

  1. Speaking of IDEs for ARM developing…. Anyone else also butthurt about the Coocox version 2? It was about the perfect tool but they broke it completely…. I migrated from the Eclipse+gcc+eclipse-arm plugin to coocox because the eclipse plugin had a very broken makefile generation feature about 3 years ago when I last tried it. I’m considering going back to Eclipse…. Also in the mean time ST itroduced the Cube platform which also a new twist in the game, I used to the classic style CMSIS method… I don’t know how to catch up if I leave CoIDE.. :S

        1. This is the one religious war I participate in. Well… maybe one of two. I still use emacs for nearly everything. Pre X11 it was your windowing system and it was massively productive.

        2. I like VIM use it quite a bit for restructured text and C/C++. I also like Atom IDE. It’s very cool looking and is open source. Unfortunately it also uses almost as much RAM as eclipse…while being only an code editor. Still I like it

          Eclipse is great..it is a true swiss army knife of IDE’s and can be re-purposed with plugins to do almost anything related to any kind of coding. If it only were written in a more speedy language than Java..it would be perfect.

          QtCreator is another great IDE that is often overlooked. Unfortunately it’s focus is on Qt app development…but can be used for generic C/C++ (and maybe Python) development as well.

          Finally CodeBlocks is another great one. I haven’t used it in a while, but I’ll probably get back to it at some point.

          NetBeans is another great IDE that’s unfortunately also written in Java.

        1. I’m dying lol, just need some of those mind-scarring images that I block almost always now to complement the click bait like plastic surgery gone wrong or some quasi-medusa snake head thing going on.

    1. I just wish those Eclipse based dev environments would play nicely with a standard Eclipse install. I don’t like having to install a whole separate Eclipse just for one microcontroller family.

  2. ST has created a really awesome Eclipse based IDE called System Workbench for STM32: http://www.openstm32.org/System+Workbench+for+STM32

    Also Freescale has their own Eclipse based Kinetis Studio: http://www.freescale.com/tools/embedded-software-and-tools/run-time-software/kinetis-software-and-tools/ides-for-kinetis-mcus/kinetis-design-studio-integrated-development-environment-ide:KDS_IDE

    Both are free, cross-platform and have no code size limitations or compiler crippling.

  3. Will the IDE require 8GB of ram, thrash my swap file, and my SSD or hard drive?

    Will it “garbage collect” every 5 mins, leaving the IDE unresponsive?

    Will it “garbage collect” just when I want to do something , and then drop the input?

    Maybe if I leave the GUI up for a few hours, the profiler will have hot-spot compiled the app correctly?

    1. 8G. 8G? The last used computer I bought – 2009 Mac Pro with 8 cores – has 18 GB and that was the smallest. Most had 28 or more. Included a huge Samsung display and was not very expensive. A nice feature lacking in PC boxes is the protection against small arms fire.

    1. I’m a great fan of this combination as well. Visual Studio may be big (20+GB on latest edition) but it offers great tools for developers. Add VisualGDB (from Sysprogs, not Microsoft) and you can work with a range of microcontrollers and now they have support for the ESP8266.

  4. I remember futzing around with this jumble back in 2008. Of course, I was never smart enough to write it up as a nice guide, but at the same time, the ARM gcc compiler was pretty fresh, libraries and patches were all over the place, and the only usable compiler+lib was put out by a rag-tag team of folks from CodeSourcery.

    But, still, *still* it hasn’t been sorted out. Still. All these manufacturers have dumped effort into their own versions, which are usually too small to compile even the dev board examples. Even Segger has their own neutral IDE now, but it’s Windows only and a bit of a toy project.

    Why is this so hard? This is the reason that the HORRIBLE arduino IDE lingers on, because the ratio of effort to usability is pretty good for it, despite it being horrible. And even they now have a multi-arch extensibility function, supporting avr, arm, and xtensa.

    Also, eclipse is a pain in the ass. It has a terribly industrial look and feel, and the whole run/debug “configuration” system is confusing and excessive for most goals. It has the opposite problem that the Arduino IDE does.
    NetBeans is great, other than the UI slowness (java … god dammed java).

    Can’t someone just maintain an ecosystem of NetBeans plugins that provide all these functions? Can’t someone take NetBeans and roll NetBeans Embedded, and finally do something about this shit soup of solutions?

  5. I have somehow found myself going from using mbed thinking that was amazing to now using Kinetis design studio. Eclipse is interesting, its hard work, its ugly but it does the job and for free.

  6. Couple of points on Ubuntu: the arm-none-eabi-gcc packaged toolchain that Ubuntu ships WILL NOT WORK for this, because it doesn’t like newlib or something stupid. You need to do the apt-get add-repository thing to make sure you get the right toolchain from launchpad.net. While the “right” toolchain is theoretically only available for 14.x, you can happily install that same toolchain on 15.04, which is what I’ve got. It works fine, at least for the stm32f103 that I’m playing with.

    Anyone complaining that all this stuff is “too hard” or that IDEs “haven’t been sorted out yet” are clearly not paying any attention whatsoever (or even reading the damn linked article). Eclipse does make it super-easy and if you can’t manage the instructions in the linked guide, there’s No Effing Way you’ll get anywhere with actually writing ARM code. Sorry. Seriously, getting the cross-gcc toolchains etc up is easier now than it was to build your own non-cross gcc about 15 years ago.

    Yeah you can do it in vi, but then you have to know how to write a linker-script from scratch and all that stuff. Easiest to get started with ld-scripts, makefiles etc all generated by the IDE plugins. Note that eclipse produces makefiles, so you don’t actually need eclipse on-hand to edit and recompile a project once it’s been created.

  7. I recently discovered a version of Eclipse Mars that installs via PortableApps. (They’ve had a portable version of Java for a while, now.) It’s not a formal release, but I’ve been using it for more than 3 months (with PyDev), and it works great. My biggest complaint about Eclipse was the install process, and the portable version streamlines it to 3 simple steps. I haven’t actually tried installing it on a usb key, but it *should* work. And you never have to worry about Java version mis-matches, or path snafus, or update pop-ups ever again!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.