So the hardware to experiment with 32-bit ARM microprocessors is available and
affordable. What about the software required for editing, compiling, linking and
downloading applications for the LPC2106 board?
Embedded microcomputer development software has always been considered
“professional” and priced accordingly. It’s very common for an engineer in a technical
company to spend $1000 to $5000 for a professional development package. I once
ordered $18,000 of compilers and emulators for a single project. In the professional
engineering world,
time is money. The commercial software development packages for
the ARM architecture install easily, are well supported and rarely have bugs. In fact,
most of them can load your program into either RAM or FLASH and you can set
breakpoints in either. The professional compiler packages are also quite efficient; they
generate compact and speedy code.
The Rowley CrossWorks recommended by Olimex is $904.00, clearly out of the range
for the student or hobby experimenter. I’ve seen other packages going up as high as
$3000. A professional would not bat an eyelash about paying this – time is money.
There is a low cost alternative to the high priced professional software development
packages, the GNU toolset. GNU is the cornerstone of the open-source software
movement. It was used to build the LINUX operating system. The GNU Toolset includes
compilers, linkers, utilities for all the major microprocessor platforms, including the ARM
architecture. The GNU toolset is free.
The editor of choice these days is the Eclipse open-source Integrated Development
Environment (IDE). By adding the CDT plugin (C/C++ Development Toolkit), you can
edit and build C programs using the GNU compiler toolkit. Eclipse is also free.
Philips provides a Windows flash programming utility that allows you to transfer the hex
file created by the GNU compiler/linker into the onboard flash EPROM on the LPC2106
microprocessor chip. The Philips tool is also free.
Macraigor has made available a free Windows utility called OCDremote that allows the
Eclipse/GDB (GNU Debugger) to access the Philips LPC2106 microprocessor via the
JTAG port using an expensive device called the “wiggler”. I’ve had more success
running the open-source Insight debugger than the debugger included with Eclipse;
however it’s only usable for programs running from RAM memory.
At this point, you’re probably saying “this is great – all these tools and they’re FREE!” In
the interest of honesty and openness, let’s delineate the downside of the free open
software GNU tools.
• The GNU tools do not currently generate as efficient code as the professional
compilers.
• The Insight Debugger cannot set a software breakpoint in FLASH since it can’t
erase and reprogram the FLASH.
• The OCDRemote JTAG utility does not support hardware breakpoints.