I recently decided to get back into the embedded design game. I used the Olimex LPC2106 board (http://www.sparkfun.com/commerce/produc … cts_id=269) in a couple of my engineering classes, but haven’t touched it in a couple years. I no longer have the same toolchain installed that I used in school, though I vividly recall the month-long fight to get it working initially.
Short version: I have a working board sitting on my desk, with power and a good serial connection to my PC. What I do NOT have is a software environment for programming it. A friend gave me the all-inclusive Eclipse setup that Olimex apparently uses now, and I see that it inclused Jim Lynch’s tutorial from a few years ago.
I fought with it for a while, installed it a couple times, and my friend walked me through setting up the FlashMagic Flash Download Utility. I’m getting errors about the Hex file exceeding something in Flash.
I’d be happy to post the exact circumstances and text of the error messages, but my question is larger than that: Does anyone know of a single, integrated environment that I can use to program this board that actually works? I don’t want to need a degree in CompSci and know how to compile a Linux kernel to set up this software. My degree is in EE, and I just want to write code for the hardware.
This board (and many like it) are billed as ‘hobby electronics’ parts, but I have trouble believing that, given the headaches this software causes.
I’m running a Dell XPS laptop with Windows XP installed. The serial connection to the board works because the program already resident on the board talks to Hyperterminal. I just need a working IDE.
Thanks for the tip. Naturally I wanted to have my cake and eat it too (software that actually works, but is still free). But it’s looking more and more like this isn’t an option.
eewestcoaster:
Does anyone know of a single, integrated environment that I can use to program this board that actually works? I don’t want to need a degree in CompSci and know how to compile a Linux kernel to set up this software. My degree is in EE, and I just want to write code for the hardware.
This board (and many like it) are billed as ‘hobby electronics’ parts, but I have trouble believing that, given the headaches this software causes.
Yes indeed! That was exactly what I was thinking when I set out to design Armaide with users like yourself in mind:
That’s great! I finally got the Eclipse environment working, but I never want to go through that again. It took myself (Bachelor’s degree in EE) and a friend of mine (newly graduated Master’s in EE) to get it to work. That is, needless to say, a bit ridiculous.
Jim Lynch’s tutorial was great for the versions he covered. But now that everything’s got a new version and it’s all bundled together, there needs to be an updated version of that tutorial.
I’ve got your pages bookmarked, and will certainly check it out.
eewestcoaster:
That’s great! I finally got the Eclipse environment working, but I never want to go through that again. It took myself (Bachelor’s degree in EE) and a friend of mine (newly graduated Master’s in EE) to get it to work. That is, needless to say, a bit ridiculous.
I've been a professional software developer for 30+ years so have learnt not to go anywhere near that sort of stuff. I believe that's why Oberon / Component Pascal is particularly popular amongst physicists, engineers and other non-computer scientists. They are more interested in reaching the destination alive than experiencing the 'thrills' and excitement of the journey ;-)
cfb:
I’ve been a professional software developer for 30+ years so have learnt not to go anywhere near that sort of stuff. I believe that’s why Oberon / Component Pascal is particularly popular amongst physicists, engineers and other non-computer scientists. They are more interested in reaching the destination alive than experiencing the ‘thrills’ and excitement of the journey
Oberon may be great for the diciplines you have mentioned, but why would I want to learn yet another programming language just to program ARM microcontrollers. I want to leverage what I already know of C and am learning of C++ rather than learn another programming language. My speciality is robotics and process control. I also do not want to lock myself into learning a language that I am going to be asked to pay to get a full version of later.
linuxguy:
Oberon may be great for the diciplines you have mentioned, but why would I want to learn yet another programming language just to program ARM microcontrollers. I want to leverage what I already know of C and am learning of C++ rather than learn another programming language.
I use different languages for different tasks just as I use a screwdriver for some jobs and a spanner for others - not just a hammer for everything i.e. assembler for 8-bit computers, PocketStudio Pascal for Palm PDAs, Delphi for Win32, C for Unix, Component Pascal and C# for .NET etc.
The more languages you have experience with the better choice you can make when you have a particular job to do. e.g. before embarking on the Win32 work I came up with a shortlist of half-a-dozen different systems before making a final decision. Similarly if you weighed up the pros and cons of a number of alternatives when considering programming ARM microcontrollers and C or C++ was the best fit then that is what you should use.
Lots of folks like WinARM with Yagarto or some other IDE. I didn’t.
The free IAR product compiles up to 32KB of code. Excellent IDE in my opinion.
I did a detailed review of YAGARTO, IAR, Keil, Rowley and Imagecraft. Downloaded and used each. Looked at docs. Looked at supplied libraries. I chose IAR’s lowest cost product. Other folks will differ. Rowley’s a bit of an odd apple in the mix as they are an IDE and library but use GCC, IIRC. Some swear by them. Another odd one is Coridium’s adaptation of GCC for their ARM boards.
FWIW, I’m using the free (32K code-size-limited) version of IAR Embedded Workbench on an LPC-2103. It does have some minor issues, but the price is definitely right.
I recommend to invest some time and learn GCC/Eclipse/OpenOCD/etc, it is a bit harder but then you can use the same environment everywhere.
If you need a commercially supported toolchain you can evaluate codesourcery that gives you all the above (and more), they also have a free version without code limits.
Well above as price tag there is the Green Hills compiler, it is not GCC but it is very compatible with GCC (extensions and all, you can reuse all your GCC knowledge).
Face it, GCC is a standard, I would not get myself self-locked into a proprietary toolchain (unless somebody pays me to do so for a job of course).
I am still leaning towards getting a personal license for Crossworks for ARM under Linux. It’s one of those things that just works and does not cause me frustration. The support from Rowely is second to none! This is a great combination for me, and they also have a version for AVRs, which I am getting into now. I’m tired of dinking around trying to get various components to play nice together.
The CrossWorks IDE is very nice, and the debugging and simulation facilities are excellent. I’m using it for a large LPC2148 application and haven’t had any problems with it. It’s a piece of medical equipment I’m helping to develop at a French university, Rowley were good enough to donate a license to the project.