Operating Systems Project 2: Bare Metal Programming

Due: Wed Dec 3rd at 11:55pm


Operating systems generally have to start from little or nothing when programming. We will be doing that now with a raspberry Pi program which reads from the keyboard and produces output using the OK LED light.


using the C/Raspberry Pi Tutorial that was assigned in project 1.5 (http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal-programming-in-cpt1/ and friends) and the low level  USB and Keyboard driver written by the original Cambridge tutorial ( compiled solution here  Source code here )

A walk-through and description of the keyboard driver can be found here.

write a bare metal/proto-OS program for the raspberry Pi to do the following:

Additional requirements

My guidelines are fully in effect here. Talk all you want about the solution, but don't share your code and don't copy anyone else's.

Comment your code. Make sure to put your name and class/section in a comment at the beginning of every file you write.

either provide me a make file, or a readme with all of the lines I need to compile.

The Rasberry Pi model B in the lab is the canonical machine for this project. If your program runs there, it runs, otherwise is does not run.

Extra Credit:

Your solution can be a purely polling solution that waits till the lights are finished blinking to read again from the keyboard. (basically using only steps 1-3 of the valvers tutorial) Extra credit is available for those who use interrupts for the lights as in the step 4 of the valvers tutorial.