Help create a universal ARM programmer

The new crop of ARM Cortex M0/M3/M4 microcontrollers have a lot of interesting features for developers. In addition to supporting drag and drop programming via USB, the same hardware can also be used as a debugger. Setting breakpoints and inspecting memory at any point in the code is a wonderful feature, but not all the new ARM dev boards we’ve seen support this feature.

The folks over on SimpleCortex have a solution to this problem, but they need your help. To get their¬†CMSIS-DAP hardware working with Open Source tools, they’re looking for a few good programmers and hardware developers to build a toolchain.

Right now, the hardware only works with Keil development tools. A closed source development environment is no good to anyone, so if you have some experience writing drivers and such, send the guys at SimpleCortex an email. They’ll give you a free board in return for a contribution to building an open source ARM toolchain.

Common sense requires us to mention that you should probably only send these guys an email if you actually plan on working on this problem. Still, it’s a great opportunity¬†to contribute to open hardware.

20 thoughts on “Help create a universal ARM programmer

  1. Only supporting Cortex M0/M3/M4 is far from a ‘Universal’. There are many more ARM cores out there. ARM7TDMIs are still extremely common.

      1. Actually, looking at the API (of CMSIS-DAP), I’m not entirely sure it “only supports Cortex-M”. The “DAP” is the ARM bridge to the system and appears in the diagrams with other Cortex processors (see down the page here )

  2. >>Setting breakpoints and inspecting memory

    Isn’t this part of the debugging hardware on all ARM cores? Surely a “universal ARM programmer” is just JTAG or SWI.

    >hardware developers to build a toolchain.

    GCC, GDB, OpenOCD.. this stuff exists and has done for ages.

    1. Thanks! This was exactly the point I was going to make! Can’t you even attach gdb over JTAG for some chips out there at the moment. Pretty sure you can with the TI/Stellaris chips.

  3. For the NXP/LPC chips, I have found that the serial bootloader is a perfectly acceptable way to *program* the chips. Debugging, at least when Serial Wire Debug is the only option (such as on the LPX1114) is a *completely* different issue.

    So far, the *only* SWD option I have found that works with OpenOCD/gdb is the Black Magic Probe, and I haven’t actually confirmed that that works yet. If anyone can confirm this, or any other options for SWD+OpenOCD+gdb for the LPC11xx, I would sure love to hear about it!

    1. Segger sells their commercially supported hobbyist/educational segger j-link programmer for about 64 bux. You can get a clone on ebay cheaper. I *Think* this is supposed to work with openocd for swd… haven’t verified.

      Olimex sells a jtag to swd dev breakout board. Again, I don’t know if Olimex’s arm jtag programmer setups support swd yet

      You might be able to use the stlink 2 programmer off of a st discovery board?

      There’s also the Versaloon platform. It’s open source, has openocd swd support too if I recall.

      http://www.versaloon.com/

      hackaday has covered this before.

      1. @Sqelch: Galago’s debugger is fully integrated, so it can only debug the ARM chip on that device. We do have a low-cost, flexible, discrete debugger on the roadmap though.

  4. I’ll be surprised if any talented coders jump on considering ARM v5+ is pretty inaccessible outside of hacked consumer devices with signed boot chains..

    If I had the time and money I’d use cheap 3D printing to produce easy BGA methods(document accurate stencils and heat workflows) that would actually justify this tool. I actually wonder why nobody is doing this considering you can get single unit TI ARM v7 stuff around $25-$40, $40 being 800Mhz 3xxx app profiles; you can probably get v7 dual-core 4xxx now..

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s