Initially, I am going to look at three options.
1: Virtualization using Qemu.
2: Development boards or single board computers. (sbc)
3: Integrated development environments/ software development kits (ide/sdk)
Virtualization using Qemu
Both Fedora and Debian Linux have ARM ports, which means Fedora and Debian can run on ARM hardware as well as the usual Intel hardware in a PC. Here is a link to the Fedora project howto:
a link to the Debian ARM project:
and the Debian howto:
Link to Qemu: http://wiki.qemu.org/Main_Page
and Gcc is a free compiler.
With an emulator set up, a first step is a couple of lines of code in c, containing one inline assembler instruction, compiled with gcc and prints 'hello' when run, screen shots here:-
A more in depth discussion about virtual development using the Qemu-arm integrator is here:-
With a virtual development environment set up, ARM development work can begin.
The next step will be to move on to real hardware.
Development boards or single board computers
Because this is partly a nostalgia project for me, the propeller 6502 laptop project at parallax looks like a possible candidate:-
The beagle board is another possibility:-http://beagleboard.org/
More about development boards:
Using a development board, step by step example
Integrated development environments/ software development kits (ide/sdk)
And finally moving on to an integrated development environment/ software development kit (ide/sdk) to develope for existing hardware, an Android phone, for example. The Google offering is here:
Putting code on an Android phone