ECSE-426: Microprocessor Systems Laboratory

Fall 2004

(3 credits, Tues. 1:05-2:25, Room ENGTR 2120)


Course Outline

General Information

Prerequisites:                   ECSE-323 and EDEC 206


Instructor:                        Prof. Mark Coates

                                          Room 759 McConnell Engineering Building

                                          Phone:        398-7137


                                          TAs:           Milos Prokic, Stephan Bourduas, Albert Law (contact details to be announced).


                                          Office Hours:          After class, other times by appointment. 


Course Content


The objective of this course is to teach necessary skills for building embedded processor-based systems. A series of seminars will discuss background knowledge including:

    (1) the basics of modern processor architectures;

    (2) assembler, linker and C compiler use in embedded systems; and

    (3) fundamental real-time embedded system design.

The seminars will explain (at a high level) how these concepts have impacted real-world architectures, including the Intel Pentium and Centrino microprocessors, the Sun SPARC systems, ARM microcontrollers (and low-power microcontrollers, such as Texas Instruments MSP430 series).


The course focuses primarily on experimental work and an engineering project. There are four experiments in the course. The first three are designed to familiarise students with the primary components that will be used in the project (these include the compiler, assembler, simulators, the microprocessor board and peripherals). The fourth is intended as a preparatory exercise for a larger-scale final project.


Course Component

Approximate No. Lectures




Historical perspective, computer systems organization, Design Principles, Instruction set

Assemblers, linker, loader, simulator, processor architecture


Instruction Set Architecture

Properties, registers, instructions, data types, instruction formats, addressing, instruction types, control flow,



Microinstructions, pipelining, branch prediction, prefetching, examples: Pentium, UltraSPARC, picoJava.


Embedded Processors

RISC vs. CISC, ARM, MSP430,  


I/O, Processor Interfacing

Interrupts, clocks, interacting with peripheral devices.



Course Materials


Recommended Reading:           

A. Tanenbaum,  Structured Computer Organization, fourth edition, Prentice-Hall, 1999.

B. Shriver and B. Smith, The Anatomy of a High-Performance Microprocessor - A Systems Perspective, IEEE Computer Society Press, 1998.

C. Hamacher, Z. Vranesic and S. Zaky, Computer Organization, fifth edition, McGraw-Hill, 2002.


 Articles and Manuals:

             Supplementary documents will be posted on the WebCT course page (manuals for hardware, articles on example microarchitectures).


Assignments and Evaluation




Contribution to Final Grade

Lab Experiments

Experiments 1-3 (3 one-week experiments)

30 %


Experiment 4 (2-week extended experiment)

20 %

Final Project

4-week project involving software development to interact with microprocessor board and hardware peripherals

50 %


The grade for each experiment and for the final project is composed of 50% for the lab report and 50% for experimental performance.  Each team of 2 students need only submit one report for each experiment (students who wish to submit individual reports should check with the instructor). Instructions concerning the expectations for the lab reports will be available on WebCT.

Each student (not team) will be given an individual grade for each experiment based on lab preparation and practice; various means of assessment will be used to assign a grade (e.g. demonstration, verbal questioning or written quizzes on relevant background, debugging methods, experiments, observations, etc.).


Lab Groups and Room Access

        Experiments will be conducted in pairs. The lab groups will be assigned specific time slots for lab demonstrations. Before the first day of the lab, you will be given lab material.  Instructions concerning access to the lab and access to the hardware will be provided during the semester.



Preliminary Schedule



Lecture Material


1 half-week, Sep 1

No Lecture


2 Sep. 6



3 Sep. 13

Instruction Set Architecture Lab 1: Assembler and Embedded Programming

4 Sep. 20

Instruction Set Architecture

Lab 2: Simulation and timing; hardware preliminaries

5 Sep. 27


Lab 3: Basic hardware interfacing

6 Oct. 4

No Lecture


Lab 4: Hardware Interfacing

7 Oct. 11


Lab 4: I/O, interrupts, memory, etc.

8 Oct. 18

Embedded Processors


9 Oct. 25

Embedded Processors


10 Nov. 1

I/O; Processor Interfacing


11 Nov. 8


12 Nov. 15


13 Nov. 22


14 Nov. 29