Saturday, 5 March 2011

A beginners take on ARM programming

I have collected this material together as I have tried to figure out how to 'get started' with ARM.
ARM in this context means:-

A        Acorn or Advanced, depending on who you talk to.
R        RISC,  (Reduced Instruction Set Computing)
M       Machine 

Atomic: The Acorn Atom was my first computer, and the manual was called "Atomic theory and practice." Acorn Atom picture

Acorn were the makers of the BBC micro which was widely used in schools in the UK in the '80's.
The BBC had an 8 bit 6502 microprocessor, and it is said that this processor which had a comparatively small instruction set was the inspiration for the design of the first ARM RISC(Reduced Instruction Set Computing) chip. ARM - a brief history

Getting started will depend on what you are attempting to do or learn, and could perhaps be divided into two broad categories, hardware and software.

If you are interested in writing software/applications, then there is a multitude of options. Most Android 'phones are ARM based, and Google have made it free and easy to develop and get applications into the Android market. So easy in fact, that several virus/trojan applications have appeared.

See our first attempt at an Android game  here :- Angry Beaks

The Apple iphone is ARM based, and Apple have also released a free development environment, although a licence is needed to put your application in the Apple appstore.

Microsoft intend to make Windows 8 available for ARM devices.

As you can see, there is no shortage of devices to develop applications for, but at the moment, Android is the cheapest and easiest to get started with.

There are also a multitude of development boards available if you want to get started with hardware.

Having only worked with assembler on the 6502 in the '80's, I thought 'getting started' with ARM would just be a case of learning the ARM assembler instructions and chip pinout as I had done with the 6502, but  this is not the case.I soon discovered that there is a large number of ARM  devices, and that the devices can have different operating states and modes.

So, where to start?
Several years have passed, since I started this site, and I did not get started with ARM in the way I initially envisaged.
Basically, I was a beginner, starting again, and the ARM devices were more complicated than I wanted. Instead I found the AVR range of devices, specifically in the Arduino platform, designed with beginners in  mind.
Although not ARM, the Atmel AVR chips could be described as RISC, and the 8 bit version in the Arduino was just right as a starting point. The Arduino has a large community following, and the avrfreaks forum:
has answers to any AVR question you can think of.
Did I mention that it is cheap too?

No comments:

Post a Comment