µProcessors course

1. General Description

1.1 Course Objectives

After completing the course the student will:

·      Program device driver invoked by interrupts.

·      Program in Assembly language.

·      Understanding high-level and Assembly language relations.

·      Implement data-structures to exchange data between concurrent programs.

·      Understand software-Hardware interface.

1.2 Prerequisite

·      At least one year of experience in high level language programming.

·      Knowledge of digital design.

1.3 Course Organization

The course is composed of:

·      Lectures in which the theory is given.

·      Workshops in which the process of analyzing given designs and understanding their semantics, is performed.

·      Practical exercising.

This document describes: The subjects and the exercises to be given course.

2. Course Subjects

2.1 80x86 Architecture

2.1.1 Lecture

·      What is a 80x86 computer based system ?

·      Memory Organization.

·      I/O organization: Memory and Isolated techniques.

2.1.2 Workshop

·      Real addressing mode. How it works? Advantages and disadvantages.

·      Protected addressing mode. How it works?

2.1.3 Practical Exercising

·      Accessing registers and memory using a debugger.

·      Exercises from the text-book.

2.2 Addressing modes

2.2.1 Lecture

·      Direct

·      Based/Indexed.

·      Basic instruction set: Arithmetical/Logical, move, and Jumps.

2.2.2 Workshop

·      Calculating physical addresses.

·      Special register usage.

·      Programming using C++ and embedded assembly lines.

2.2.3 Practical Exercising

·      Debugging C++ and embedded assembly programs.

·      Exercises from the text-book.

 

2.3 Complex Instruction Set Computer

2.3.1 Lecture

·      Loop instructions.

·      String instructions

2.3.2 Workshop

Given two examples, each of which is written in C and assembly languages using Loop and String instructions. We shall compare the size, and execution time.

2.3.3  Practical Exercising

Exercises from the text book, (Loop and String instructions).

2.4 Stack instructions

2.4.1 Lecture

·      Hardware/Software interface:

·      Calling a Procedures/Function.

·      Stack instructions related for Procedures/Function. 

·      Passing parameters via the stack. 

2.4.2 Workshop

·      How a real program runs: Procedure/Function calling, Stack usage.

·      Reading the processor’s data-sheet.

2.4.3 Practical Exercising

Exercises from the text book.

2.5  Peripheral I/O

2.5.1 Lecture

·      Timer.

·      Direct Memory Access (DMA).

·      Parallel Communication.

·      Serial Communication: Synchronous/Asynchronous.

 

 

2.5.2 Workshop

·      SW/HW interface with the I/O peripherals.

·      Programming the timer to produce tones.

·      Reading data-sheets of the peripherals.

2.5.3 Practical Exercising

Test programs using Loopback property in the Serial communication.

Exercises from the text book.

2.6  Interrupt

·      What is an interrupt: Hardware/Software interface?

·      Programming the interrupt controller.

·      Interrupt handling:

        * Critical section.

        * Semaphore.

        * Cyclic Queue.

2.6.1 Workshop

·      Programming the PIC8259 and reading its status.

·      Programming the Timer and counting the elapsed time.

·      DMA operation and its relation to string instructions.

2.6.2 Practical Exercising

Talk project.

 

3. Hours Allocation

Total

Practical Exercising

Workshop

Lecture

Subject

4

1

1

2

80x86 Architecture

4

1

1

2

Addressing modes

7

1

2

4

Complex Instruction Set Computer

4

1

1

2

Stack instructions

13

1

4

8

Peripheral I/O

16

4

4

8

Interrupt

4

 

 

4

Defense of the Final Project[1]

52

9

13

30

Total

 

 

4. Bibliography

1. [IS95] Murray Sargent III. And Richard L. Shoemaker. The IBM PC from inside out. Addison Wesley, ISBN 0-201-06918-0, 1995.

2. [Egg95] Lewis C. Eggebechet. Interfacing to the IBM personal computer. ISBN 0-672-22722-3, 1995.

 



[1] The students perform this project as home-work.