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, we will try to cover the following concepts:
- Command Line Tools
- MSP430 Toolchain
- Screen or Minicom
- Git VCS
- Using the GNU Debugger (GDB)
- Remote Debugging
- MSP430 Assembly Language
- Calling Conventions
- Passing Function Parameters
- C Programming Language
- Character Arrays
- Simple 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.
The required textbook for this course is The Manga Guide to Microprocessors by Michio Shibuya, Takashi Tonagi, and Office Sawa published by No Starch Press.
There used to be no required textbook for this course, but there have been many complaints from students that reading the free MSP430 Family Users Guide is too difficult or too technical and simply recommending that students read an easier, also free document like Introduction to Microcontrollers means that 90% of the class will ignore it. Therefore, this textbook is now required.
I expect that you will purchase or "purchase" this textbook. I will assign pages of this book to read during the course.
My Office is B-257 inside the CS faculty offices (the hallway next to the CS department office).
|S100 in D-202||1:00PM - 2:15PM||1:00PM - 2:15PM|
|Student Hours||1:00PM - 2:15PM||2:30PM - 3:45PM|
|S105 in C-124||4:00PM - 5:15PM||4:00PM - 5:15PM|
|Week||Covered Content||Helpful Links|
|0||Virtual Machine Setup, Linux Terminal, Text Editing||Toolchain Installation, Linux Journey|
|1||Hexadecimal, Binary, Arrays, Assignment 0||Makefile Tutorial by Example|
|2||Obtain MSP430 Kits, Makefiles, Git VCS|
|3||Quiz 0, Assignment 1, MSP430 Troubleshooting|
|4||Manual Scavenger Hunt||MSP430G2553 Datasheet|
|5||Assignment 2, Debugging, Registers, Memory Layout|
|6||CPU Flags, Instruction Encoding, Quiz 1, Review|
|8||Assignment 3, Lights and Assembly Skeleton||What is an LED?, Assembler Directives|
|9||Variadic Functions, Arrays in Assembly, Interrupts|
|10||The Stack, Timers, Assignment 4||The Stack Explained|
|11||Potentiometer and 7-segment Display|
|14||Debugging Quiz, Final Project Demos|
Work is due at 11:59PM on the specified day.
|Assignment||Description||Due Date ISO 8601|
|a0||Base Conversion [ conv.c ]||2019-09-17|
|a1||Encoder / Decoder||2019-09-26|