Free online course on building a simple Raspberry Pi OS from the University of Cambridge

3rd of September 2012 by liz
submit to reddit

This summer, the University of Cambridge Computer Lab has been home to a small group working on projects with the Raspberry Pi. Alex Chadwick is one of those people, and he’s produced this: a free course on building a very simple operating system for the Raspberry Pi in assembly language.

The course opens with some explanations about what assembly language is – and, importantly, what an operating system really is; you’ll learn some new concepts and possibly some new terms, and then you’ll dive headlong into practical work. You will work through sessions which teach you how to enable and manipulate one of the board’s LEDs, then learn some graphics theory and start generating lines, text and random numbers. Eventually you’ll be manipulating text to display computed values, and learning how to build your own command line interface. Alex has also given you instructions on building your own USB HID driver, which is a really useful way of getting to understand the USB controller that’s already on the Raspberry Pi. There’s a section of downloads with answers to every exercise, so you can keep an eye on your progress.

This is not meant for those new to programming (you’ll find it easier if you’ve got some experience), but should be accessible even if you’re new to assembly language if you are smart and persistent. This is as much a course on bare-metal programming as it is on OS building. It’s not easy, and it’s not meant to be; we expect you to find this course challenging – and you should find you come out of it with a great deal of skill and knowledge that you didn’t have before.

There’s a growing bare-metal programming community emerging around the Raspberry Pi (we’ve had to make a separate subforum for them in our message boards so they’ve got somewhere to talk to each other in ones and zeros), and they’re a really friendly and helpful group – if you get stuck at any point, drop in there and they’ll answer your questions. Alex will also be dropping into the comments below if you have anything you’d like to ask about the course.

Many thanks to the University of Cambridge Computer lab for making the course available, and especially to Alex. Alex does plan on extending the course in the future – but for now, you’ve got twelve lessons to get through which will have you bending your brain in ways which might be new to you, so I’ll let you get straight to it.

 

Buy a Pi!

buyapi
buypiswag
News Archives

Supported by


In the forums
  • BrianW, 2 minutes ago: Français • Re: Exécuter une action toutes les nuits
    Salut! Je parle seulement un peut de français, mais si je comprends votre question correctement: la commande crontabhttp://fr.wikipedia.org/wiki/Crontab
  • xXAzazelXx, 4 minutes ago: Raspbian • Re: Processing triggers for man-db errors
    I've tried running it as sudo apt-get get blala and just sudo su :/
  • lorddoskias, 4 minutes ago: C/C++ • Difference between pthread and vcos function
    I'm writing an MT program for the rpi using pthread as means of synchronization - e.g. mutexes, condvars etc. However, by looking at the example source of the ilclient library i can see that vcos_ prefixed functions are used. I…
  • xXAzazelXx, 5 minutes ago: Raspbian • Processing triggers for man-db errors
    Hey Guys,I've been getting error messages after doing sudo apt-get dist-upgrade.Code: Processing triggers for man-db .../usr/bin/mandb: can't read from /var/cache/man/hr/index.db: Is a directoryProcessing triggers for menu Now it seems I cannot upgrade most of the packages in the list after…
  • akash, 10 minutes ago: Basic setup and usage • how can we change udev rules ??
    My pc and my raspberry pi are paired via bluetooth, and the pi shows that the pc can be accessed via /dev/rfcomm0 serial port.but I am not able to access this port with my python program.The output says that "Err…

On Twitter

Friends of Pi