A beginners take on ARM programming


Update 
The Raspberry Pi has appeared, and is a game changer for me. RISC OS has been ported to the Pi, which means that BBC Basic with built in assembler is available to run natively on the Pi.
This brings my ARM quest full circle, and I can now intermingle Basic and assembler and write directly to the hardware. No more virtual environments required, a real assembler working on real hardware.
RISC OS on the Pi has to be one of the easiest ways for a beginner to get started with ARM assembly language, and RISC OS is much faster than the Rasbian offering.
However, it is easy to switch SD cards and try both to see which you prefer, industry standard tools are available to Rasbian.

The rest of this page remains for historical purposes.

———————————————

I started  collecting this material together in 2010 as I 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 pictures

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

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.


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.

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 make Windows 8 available for ARM devices.

As you can see, there is no shortage of devices to develop applications for.

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

Update 1:
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: http://www.avrfreaks.net/index.php?name=PNphpBB2&file=index
has answers to any AVR question you can think of.

http://rcm-uk.amazon.co.uk/e/cm?t=atoarm-21&o=2&p=8&l=as1&asins=B0046ANZ9S&ref=qf_sp_asin_til&fc1=000000&IS2=1&lt1=_blank&m=amazon&lc1=0000FF&bc1=000000&bg1=FFFFFF&f=ifr

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s