There will be 6 regular programming labs required for all. On the first two labs only, you may work with a partner. Work on the other 4 regular labs must be your own (this means no cheating, copying, contracting, consulting, …). In this series of labs you will “build” a simple processor from the ground up, including support for interrupts and virtual memory for interaction with software. You will program in C to make the learning curve smoother and your work more productive. Yet, the labs will take time.
One critical aspect of these labs is that you are responsible for testing them well. Write good and comprehensive tests and don’t settle for the very minimal functionality tests we will provide you. When grading, we use a comprehensive array of tests, but we do not make those available to you. Writing good tests requires understanding the architecture well and is a crucial part of the learning experience. Borrowing, copying, consulting, … on the tests is also cheating.
Useful Links
- Getting Started with gcc?
- How to port code from Windows to Unix?
- Note about Security of your files
- ECE LRC : Remote-Linux
- Remotely access Unix machines with VNC. Sorry, Not working now!
- Guide to connecting to University using VPN
- Visual Studio: Compiling your code with ANSI C
- Secure Shell (SSH) client for windows
- WinSCP A Secure Copy client for windows - Useful if you want to copy files to/from your unix account.
- Emacs editor tutorial and reference card
- Vim editor tutorial and reference card
- “The C Programming Language” by Kernighan and Ritchie. This is an excellent book on the C language.
- C/C++ Reference has some useful information about the functions available in the standard C library.
- http://www.ee.surrey.ac.uk/Teaching/Unix/ http://www.ee.surrey.ac.uk/Teaching/Unix/ A quick tutorial on the Unix environment
- GDB, a command-line debugger for linux. To use GDB, be sure to include the “-g” flag when you compile with gcc.
- LC-3b Handouts
General Submission Instructions
You will find detailed instructions within each lab assignment. General instructions below.
Labs
- See Assignments on Canvas