LAB PROJECTS


Questions and Communication Regarding the Labs
General discussions & information (goes to entire class): 349-class-fall2012 at lists.andrew.cmu.edu
Specific queries (goes to instructor and TAs alone): 349-ta-fall2012 at lists.andrew.cmu.edu



LAB PROJECT #1: Gumstix and Code Optimization
Released: September 15, 2012 at midnight
Due: September 30, 2012 at 11:59pm ET

First, get the Lab 1 Handout that describes the hardware and software platforms that we will be using throughout the course.
Please use these additional resources to complete the project. Lab Project #2: ARM Programming
Released: September 30, 2012 at midnight
Part 1 Due: Sunday, October 7, 2012 at 11:59 ET
Part 2 Due: Sunday, October 21, 2012 at 11:59 ET

The goals of this lab are to write a software interrupt handler to implement a number of syscalls and to create a single-task mini-kernel capable of running userspace applications. You will use your mini-kernel to execute your Linux application binaries without any modifications.

You will need the lab handout and the lab 2 support code to get started. You may also find these assembly tips related to the GNU assembler useful for this lab. The U-Boot API for the lab can be downloaded from the link.


Cross-Compiling / Cross-Debugging
Instructions for using the cross compiler are available here. You can download the opt.tar.gz files to install on your linux machines (cross-compilation toolchain). The kermrc file needed to set up Kermit. The QEMU guide is available here.


Lab Project #3: IRQs and Hardware
Released: October 22, 2012 at midnight
Due: November 4, 2012, 11:59pm EDT
Lab Project #4: Real-Time Scheduling
Released: November 20, 2012, 12:00pm EDT
Part 1 Due: December 7, 2012, 11:59pm EDT
Part 2 Due: December 7, 2012, 11:59pm EDT