Assignments from the CS140 course.
+-- blinky
| +-- phase3
| +-- phase4
+-- shelly
| +-- ferris-wheel
| +-- questions
| +-- stack-vec
| +-- ttywrite
| +-- volatile
| +-- xmodem
+-- osy
+-- bootloader
+-- files
+-- kernel
+-- pi
+-- std
+-- volatile
$ rustup install nightly-2018-01-09
$ rustup default nightly-2018-01-09
$ rustup override set nightly-2018-01-09
$ rustup component add rust-src
$ cargo install xargo --version 0.3.10
$ rustc --version
rustc 1.25.0-nightly (b5392f545 2018-01-08)
$ xargo --version
xargo 0.3.10
cargo 0.25.0-nightly (a88fbace4 2017-12-29)
Phase 0 - 4 from Assignment 0: Blinky. Get the enviornment setup and make and LED blink in C and Rust.
- Getting your Pi Ready
- Getting the Skeleton Code
- Installing Driver
- Powering the Pi
- Running Programs
- GPIO: General Purpose I/O
- Testing the LED
- Installing a Cross-Compiler
- Talking to Hardware
- GPIO Memory-Mapped Interface
- Writing the Code
- Installing Rust and Xargo
- Writing the Code
Phase 0 - 2 from Assignment 1: Shell.
Write stack-vec
, volatile
, ttywrite
, and xmodem
libraries.
- Getting the Skeleton Code
- Questions
- Diff Budget
- The Rules
- Modify Away!
- Subphase A: StackVec
- Subphase B: volatile
- Subphase C: xmodem
- Subphase D: ttywrite
Phase 3 and 4 from Assignment 1: Shell and Phase 0, 1, 3, and 4 from Assignment 2.
The assignment-1
branch contains the completed code for first assignment, and the assignment-2
branch contains the completed code for second assignment.
- Subphase A: Getting Started
- Subphase B: System Timer
- Subphase C: GPIO
- Subphase D: UART
- Subphase E: The Shell
- Loading Binaries
- Making Space
- Implementing the Bootloader
- Getting the Skeleton Code
- Firmware Update
- Installing ttywrite
- Subphase A: Panic!
- Subphase B: ATAGS
- Subphase C: Warming Up
- Subphase D: Bump Allocator
- Subphase E: Bin Allocator
- Subphase A: SD Driver FFI
- Subphase B: File System
- Working Directory
- Commands
- Implementation
Phase 2 from Assignment 2: File System.
- Disks and File Systems
- Disk Layout
- Code Structure
- Implementation