Welcome to CS2230
This is the documentation for WMU's CS2230 Computer Organization and Assembly Language course.
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:
- Command Line Tools
- MSP430 Toolchain
- Screen or Minicom
- Using the GNU Debugger (GDB)
- MSP430 Assembly Language
- C Programming Language
- Character Arrays
- Memory Allocation
- CPU Architecture & Components
- Memory Model
- General Purpose I/O (GPIO)
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.
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.
|Class||11:30AM - 12:45PM||11:30AM - 12:45PM|
|Office Hours||2:30PM - 3:45PM||2:30PM - 3:45PM|
|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|
Your assignments are to be downloaded and turned in using gitworkflow
|a0||Base Conversion||Thursday, January 25th|
|a1||RPN Calculator||Thursday, February 8th|
|a2||RGB LED||Thursday, March 1st|
|a3||Signals||Tuesday, March 27th|