Draft: Writing an operating system for ARM hardware from scratch

I’m currently participating in an operating system lab at my university where we write an operation system for ARM hardware from the ground up. Here I will try to port it to my OLinuXino and explain it as detailed as possible so that you can do it on your OLinuXino too.

It was stated in the lab that you need sufficient resistance to frustration and that it is not worth the credit points that you will get but following this guide here should be a lot simpler.

We are using an ARM9 board in the lab, so it should be not that complicated to port it to the iMX233 on the OLinuXino.

Important documents

  • ARM Architecture Reference Manual
  • ARM920T Technical Reference Manual
  • ARM Instruction Set - Quick Reference Card
  • AT91RM9200 - Overview
  • AT91RM9200 - Complete
  • Application Note - Interrupt Management

Prerequisite

Using QEMU

Instead of debugging our program on the real hardware we can also use QEMU, which is a generic and open source machine emulator and virtualizer.