writes "This is a course designed to explain the real basics of computing — there is nothing between you and the hardware. You write an ARM assembly language program and a basic loader gets it running on the Raspberry Pi. It starts out flashing the LED and programming the GPIO directly. From here we move on to programming direct to the screen. This is more than just working with a memory-mapped graphics facility. The graphics chip is as powerful as the CPU and so working with it is a little more complicated. Several lessons work up from random dots to text.The final lessons deal with USB I/O and after two lessons you have a keyboard and screen program that can be used as a dumb terminal.Overall this looks like a good way to get back to basics, and a Raspberry Pi is cheap enough to buy one to just play with ARM assembler.
http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/"Link to Original Source