Microcontroller programming: do I need vendor’s IDE

armfirmwaremicrocontrollerpcb

I am very interested in the following ARM Cortex-M0 microcontroller:

http://www.nxp.com/products/microcontrollers/cortex_m0_m0/lpc1100/LPC11U24FBD48.html#overview

However I'm turned off at the thought of having to license their development software, which I found here: http://www.lpcware.com/lpcxpresso

Do I have options? My goal is to PCB design a custom development board based off of this microcontroller or similar (Cortex-M0/M3), and be able to program it via (micro) USB. Frankly I'd rather write ARM assembly – and likely be able to find good open source stuff to get me started – than have to use a proprietary IDE.

Thanks for any help; also open to alternatives based on my goals.

Best Answer

The free GCC toolchain supports ARM/Cortex just fine. Pre-compiled versions can be found all over the web, or you can build your own. You could do assembler if you want, but I would suggest at least C, personally I like C++ even better because it allows very efficient libraries.

The things that 'hang around' the compiler can be a bit trickier. I wrote my own make scripts, linker scripts, startup code, and some support libraries. That requires some in-depth knowledge, but it is not that much work (at least for the first few chips). I mainly use the LPC DIP chips, LPC1114FN28 and LPC810M021FN8.

I am not a fan of the 'heavy' IDEs. I use mostly PSPpad, but the make-script can be used with any editor that can call a shell script, catch the output, and parse a (GCC) error message.

I am not a fan of debuggers, I prefer to insert print statements. I use lpc21isp for hands-off serial downloading + terminal emulation. Works OK, except that I had to patch lpc21isp it to reset the chip after downloading (instead of using the ISP GO command, which is broken on Cortex. Blame on you NXP for not fixing this!).

An article about how I use C++ can be found here.

In about two weeks I'll have my environment up-to-date for my C-on-LPC1114 course. The last-year version can be found here.

Related Topic