ARM

 

The ARM microcontrollers are High-Performance, 16/32-Bit RISC Core devices. ARM market is one of the most fastest growing microcontroller market. The prices of ARM devices now are similar to 8-bit devices, while they are providing much more power and peripherials than any other 8-bit microcontroller do.
They are available from number of vendors like: Analog Devices, Atmel, Cirrus Logic, OKI, Philips Semiconductors, ST Microelectronics, Texas Instruments and many others (Intel, Freescale, Samsung, Sharp, Hynix, etc).
Many experts say that in the next 5 years ARMs are going to replace the industry standard 8051 architecture in almost all applications.

Olimex aim is to provide low cost development tools and boards for as many ARM vendors as possible, this year we'll cover all above 7 vendors and will have more than 40 different development boards for ARM7 and ARM9 device.

Few years ago to start with ARM developing the companies had to spend tenths of thousands of USD to buy compiler, debugger/emulator and development board, now everybody who want's to learn ARMs can start with under $100 budged buying JTAG + Development board and using the free ARM GCC C compiler.

MINUS:
too complex to beginners, definitely this one should be not your 'first steps in microcontrollers' ;)

PLUS:
Very fast: most ARM7 cores run at 60Mhz and ARM9 cores run at 150Mhz+ providing more power than old 386 Intel processors.
Low power: ARM7 cores need only approx 0.5-1mA per Mhz
Great range of peripherials: ADC, DAC, USB, SPI, UART, I2C, CAN, Ethernet, SDRAM.
Lot of internal Flash: 32KB-1MB, Lot of internal RAM: 4-256KB.

ARM GCC + OpenOCD is the most powerful development tool on the market

OpenOCD started as Domenic Rath diploma thesis and open source project back in 2005.
At the beginning it was with modest capabilities and supported only ARM7 core, now in 2011 with the help of hundreds of enthusiasts and contributors OpenOCD become the JTAG platform with the most supported cores on the ARM market.
For the list of supported processors in OpenOCD you can see http://openocd.sourceforge.net/doc/html/CPU-Configuration.html and http://openocd.sourceforge.net/doc/html/Architecture-and-Core-Commands.html#Trace%20Port%20Drivers
Currently there is support for:ARM ARM7TDMI (-s), ARM ARM9TDMI, ARM ARM920t, ARM ARM922t, ARM ARM926ej-s, ARM ARM966e, ARM Cortex-M3, XSCALE PXA25x, XSCALE PXA27x, XSCALE IXP42x, Marvell Feroceon CPU and Orion SoC, TI OMAP.

OpenOCD is work in progress and people keep adding new devices.

Now to develop with ARM there are two routes:

- using GNU C compiler + Eclipse, complete free C IDE and environment. GCC is most powerful compiler for ARM, capable to compile 1GB of sources for linux without problem, it's doubtful any of the commercial compilers would do this job, but the trade off is that GCC have zilion of switches and options for the compilation which will confuse starter and 1500 pages user manual which nobody usually reads. So once you learn GCC you can do anything you can do with the commercial compilers, even more, but this will take *quite lot* of time. Our observations are that GCC is used mostly in Eastern Europe and Universities all around the world, in Western world paying EUR 4000 for commercial compiler justify the time spent on the GCC learning. In other hand big companies like Siemens, Nokia, Infineon etc. use GCC as they need hundreds of seats and making internal training justify the time spent vs. the money they would spent on commercial compilers.

- commercial compilers like Rowley, IAR, Keil, they all come with support for different microcontrollers i.e. register definitions, flash loaders to program different microcontroller flashes etc, if you want to sit today and make blinking led - the commercial compilers is the route to go.

With the GCC if you want to work with ARM XYZ you have to search if there is already header files and flash loader for it or to make it yourself.
The good news is that there is already support for most of ARMs on the market. So it's up to you to decide which way to go.

Here is article from EETIMES about GNU Project what you can see there is this picture:

GCC+Eclipse now is 18 millions lines of well debugged code project, there is no single company which can do project of such magnitude and show clearly the advantage of the open source projects vs. the commercial solutions.