Friday, January 29, 2010

LPCxpresso: nice hardware made useless by bad software

Remember back in the mid-90s, when many of us used Microchip PICs for embedded control? Remember having to use a shoddy closed-source compiler, which only ran on one operating system/architecture? Remember having to use a particular set of tools, instead of whatever tools you were most comfortable with?

Fast-forward to 2010, and you can re-experience all these limitations with the NXP LPCxpresso board! This evaluation board for the NXP LPC ARM chips is...well, I'll let them speak for themselves:

The LPCXpresso evaluation board is meant to be used only with the Code Red LPCXpresso, or Red Suite IDEs.

This runs only on Windows, of course. Yes, folks, it's like 1995 all over again. Consensus among reverse engineers I've contacted is that the programming/debugging interface is cryptographically secured, to keep you from using it the way you want. (Edit: I've decided there's not enough evidence to support this claim.)

Not that Digikey tells you this before you buy, of course! At the time of this writing, even the LPCxpresso web site makes no mention of this, unless you drill down into the PDF Getting Started Guide. Fortunately, competing parts from both Atmel and ST Microelectronics have support for GCC and cross-platform programmers and debuggers. I'll be using these in my next design and sending the LPCxpresso back to the factory.

Update: Someone claiming to be from Code Red commented below, noting that they do have GCC support, but didn't address the other points (cross-platform compatibility being the main one). I based my initial complaints of "no command line compiler" and "no GCC support" on other users' summaries, since (not having Windows) I couldn't test that. My bad; these claims have been removed.

If Code Red does indeed provide cross-platform support (or OSS tools that could become cross-platform) I'll update this post!

Update 2: They do not, though they suggest I could run Windows in a VM. Missing the point, guys.

To be clear, I'm not a complete noob to embedded ARM systems, or Cortex-M3. Once I decided not to return this proprietary piece of circuit (because I'm terribly stubborn), I tried putting together a toolchain based on CS2009q3, writing a linker script, soldering on a USB connector, implementing the proprietary NXP checksum algorithm, chopping off the debug circuitry that I paid for and would sure like to use, etc. Never quite worked right - got consistent firmware corruption. My point is that I shouldn't have to do any of this stuff, or troll through forums trying to decide which contradictory answer is correct. I'm currently rather enamored with the mbed eval board, which, unlike the LPCxpresso, explicitly supports Mac and Linux out of the box.

Excellent, glad to hear you have GCC support! I must have missed the download link for Linux/OS X, or to the source code repository. All I could find is an exe file, which is of course useless on anything other than Windows. If you can point me to the link I missed so that I can install or build it on either of these operating systems, I'll edit the post to reflect that!

The LPCXpresso board can be used with any "JTAG" tool supporting the ARM Cortex SWD protocol. At this point OpenOCD does not support that protocol so it can't be used with most small ARM Cortex-based parts lacking a JTAG debug port. SWD supports fairly comprehensive real-time trace so hopefully it will get into the "free" OpenOCD/gdb soon. LPCXpresso comes with either the LPC1343 or LPC1114 which both have Serial and USB bootloaders in them that you can use to download GCC binaries. Check out the NXP LPCXpresso and LPC1000 Yahoo! forums for details on how to do this.

Debuggers are usually platform dependent as you mentioned; New debuggers need people to port them.

BTW The "luminary micro" (now TI) cortex parts also use a new debugger protocol over jtag - good luck supporting it as well.

FYI it is only the low pin count LPC11xx and LPC13xx families that only use the new SWD debug rather than jtag. Someone just needs to port the SWD protocol to OCD for you, as they would for any new debugger.

The LPC17XX family does have JTAG (along with SWD); so if you have a cortex M3 compiler & jtag tools that work for you on your OS, you should be able to work with the LPC17XX.

I think the 128K compiler and xpresso board is a bargain at $30 and the tools are great.

It would be nice if you shed some positive light on this board as well, because i think you're article misses the point. I've started with arms a while ago, had no idea where to begin, imported a jtag debugger from America (i live in holland) only to find i could not get it to work with openOCD. This board is ideal for me since it allows me to focus on developing arm applications without having to focus on all the other crap involved. Plus is costs about half of the jtag-debugger I ended up not using. Though i have to admit it would be nice to have linux support.

This is my first time i visit here. I found so many entertaining stuff in your blog, especially its discussion. From the tons of comments on your articles, I guess I am not the only one having all the leisure here! Keep up the good work.termite control brisbane

This is a great inspiring article. I am pretty much pleased with your good work. You put really very helpful information. Keep it up. Keep blogging. Looking to reading your next post.prom dressesprom dressesevening dresses

I'm so glad to have found your web page. My pal mentioned it to me before, yet never got around to checking it out until now. I must express, I'm floored. I really enjoyed reading through your posts and will absolutely be back to get more. diamond for sale | internet marketing agency

Very useful and informative content has been shared, I must say that your writing skills are very attractive. Moreover sharing information and acknowledging others is really very good job, keep it up.-----------------------------

It is a very interesting topic that you’ve written here.The truth is that I’m really related to this, and I think this is a good opportunity to learn more about it.------------------------http://www.poker-sign-up-bonus.com/poker-bonuses/

Wow. Fantastic article, it’s so nice and your blog is very good.I've learned a lot from your blog here, you’re provided blog is very super perfect i really like it. Keep it up and Thanks you for sharing......!------------------------------------

Another interesting articles and i find more new information, i like that kind of information, not only i like that post all peoples like that post, because of all given information was very excellent.

There are lots of information about latest technology and how to get trained in them, like this have spread around the web, but this is a unique one according to me. The strategy you have updated here will make me to get trained in future technologies. By the way you are running a great blog. Thanks for sharing this.PHP training in chennai

This idea is mind blowing. I think everyone should know such information like you have described on this post. Thank you for sharing this explanation.Your final conclusion was good. We are sowing seeds and need to be patiently wait till it blossoms.

Here i had read the content you had posted. It is much interesting so please keep update like this. Infact it will be useful for the beginners to develop their knowledge along with . I am expecting much more posts from you

I am not sure the place you are getting your information, however good topic.I needs to spend some time studying more or understanding more.Thank you for wonderful information I was in search of this info for my mission.

It’s really amazing that we can record what our visitors do on our site. Thanks for sharing this awesome guide. I’m happy that I came across with your site this article is on point,thanks again and have a great day. Keep update more information..Home Interiors in Chennai

It’s the best time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I want to suggest you few interesting things or suggestions.You can write next articles referring to this article. I desire to read even more things about it..

It’s the best time to make some plans for the future and it is time to be happy. I’ve read this post and if I could I want to suggest you few interesting things or suggestions.You can write next articles referring to this article. I desire to read even more things about it..cloud computing training in chennai

There are lots of information about latest technology and how to get trained in them, like this have spread around the web, but this is a unique one according to me. The strategy you have updated here will make me to get trained in future technologies. By the way you are running a great blog. Thanks for sharing this.Digital Marketing Training in Chennai

This blog is having the general information. Got a creative work and this is very different one. We have to develop our creativity mind. This blog helps for this. Thank you for this blog. This is very interesting and useful.

Excellent, glad to hear you have GCC support! I must have missed the download link for Linux/OS X, or to the source code repository. All I could find is an exe file, which is of course useless on anything other than Windows. If you can point me to the link I missed so that I can install or build it on either of these operating systems, I'll edit the post to reflect that!Web development Company in India

Just found your post by searching on the Google, I am Impressed and Learned Lot of new thing from your post. I am new to blogging and always try to learn new skill as I believe that blogging is the full time job for learning new things day by day.

Hey nice info you posted.I just browsing through some blogs and came across yours!Excellent blog, good to see someone actually uses em for quality posts.Your site kept me on for a few minutes unlike the rest :)Keep up the good work!Thanks!.Wooden Temple for HomeTanjore PaintingPooja Mandir

Thanks for sharing, Really it is an amazing article I had ever read. I hope it will help a lot for all. Thank you so much for this amazing posts and please keep update like this. SEO Company in Chennai

About

A blog for my tech rants. My rants, suggestions, ideas, and general pedantry here are representative solely of this geek-at-arms, and not my employer, affiliated civic service organizations, deceased ancestors, or people whose names rhyme with my own.

About Me

Name:Cliff Biffle

Location:Mountain View, California, United States

I'm a Java developer for a large unspecified company, aficionado of programming languages, and general Mac bigot.
Contrary to what you may have read on the intarweb, I am not, in fact, a "Linux stalwart."