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. 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 )

  1. >>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.

  2. 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.
      hackaday has covered this before.

  3. 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

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

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