Welcome to CS2230

This is the documentation for WMU's CS2230 Computer Organization and Assembly Language course.

launchpad

Class Expectations

Course Syllabus

The objective of this course is to teach you the low level basics of computer programming and the hardware that is necessary to make it possible.

Historically, this course was taught using a few multi-user SPARC servers maintained by the CS department. The SPARC architecture is simple enough to make it approachable for novice assembly language programming. When these servers were decomissioned, an effort to move the course to the TI MSP430 Launchpad platform was undertaken. The MSP430 is a 16-bit RISC (reduced instruction set computing) architecture, which also makes it quite suitable for novice assembly language programming.

In this class the following concepts will be covered:

There is so much material to cover in this class that I will be going very quickly. You must pay attention very carefully and be on time with your assignments or you will fall behind. If you need any help at all, you must contact me. I am here to help you understand these concepts and ensure you are prepared for the next classes in this curriculum. Don't fail to take advantage of me or the many resources I have put together for this course.

Weekly Schedule

My Office is B-257 inside the CS faculty offices (the hallway next to the CS department office),

and Class is held in C-123.

Tuesday Wednesday Thursday
Class 11:30AM - 12:45PM 11:30AM - 12:45PM
Office Hours 2:30PM - 3:45PM 2:30PM - 3:45PM

Semester Timeline

Week Covered Content Videos to watch Helpful Links
1 Bitwise Operations, Hexadecimal, Binary, Number Bases The Stages of Compilation, The IDE Blackbox, Hexadecimal, Bitwise Operators Bitwise in C, Base Converter, Bit Shifting
2 Git, C Pointers, Review How Git Works, Pointers Bash Guide, Git Tutorial, Beej's Guide to C
3 Makefiles, MSP430 Toolchain Installation, Hardware Make, Clang, Game Boy Hardware Autopsy Makefile Tutorial, MSP430 User Guide, MSP430 Registers
4 Remote Debugging, Peripherals Launchpad on Ben Heck, Blink LED Tutorial Blink Code, Button Polling
5 Assembly, GDB How a CPU Works, GDB Assembly Example GDB Commands
6 PWM PWM Theory, PWM on a Breadboard, Pulse Width Modulation Tutorial MSP430 Timers and Inturrupts
7 Review for Midterm Question 1
8 LED Display, Structs, Pointers Mutiplexing, Pointers, Structs
9 More PWM Inside the CPU PWM on msp430
10
11
12
13
14

Assignment Schedule

Your assignments are to be downloaded and turned in using gitworkflow

Assignment Description Due Date
a0 Base Conversion Thursday, January 25th
a1 RPN Calculator Thursday, February 8th
a2 RGB LED Thursday, March 1st
a3 Signals Tuesday, March 27th
a4 Potentiometer
a5 Project Proposal
a6 Final Project

Helpful Inclass Files

  1. blink.S
  2. polling.S
  3. interrupt.S
  4. signals.S