CSCE 313 - Embedded Systems Programming

Course Syllabus & Text

Course Description:  Embedded microprocessor and micro-controller systems are the data analysis and processing backbone of many of our industries—automotive, military and aerospace, manufacturing and production, transportation, and consumer electronics—to name a few.  The millions of lines of embedded software code drives many of the critical systems that makes our global economy work as it does.  (Remember the Y2K “scare” a few years back?  Experts were mostly worried about the impact of the date rollover problem on the execution of the embedded systems more than any other factor.)  Many of these millions of lines of code are written in the low-level assembler languages, and in direct machine code sequences, supported by the microprocessor or micro-controller used in the specific systems.  We will take one popular processor, the Motorola® 68000, on which many embedded systems are built, and explore its Instruction Set Architecture (ISA) model, and its Register Transfer (RTL) hardware architecture, so that we can write efficient and correct programs that exploit the capabilities of this processor “workhorse”.  Here is a PDF version of the 313-Spring04 Syllabus (PDF). (NOTE: Until I can get the Spring 2004 version posted, you can print this one for Spring 2003 and use it; at this point, there is not a lot of change in scope of coverage in this class.)

Course Outline & Topics:

The following updated outline has been devised for the course, based on a number of factors (most importantly the unavailability of a working Laboratory apparatus in the first half of the course).  The topics above the dotted lines will be covered without reference to the 68KMB Lab apparatus. Labs up to this point will be done using the WISM68K software simulator tool set.

  1. Chapters 0 & 1: Review of Digital Logic and Computer Architecture concepts (CSCE 211, CSCE 212).
  2. Selected Topics 1: Layers of the Virtual Machine, the place of the ISA Layer (Fetch, Decode, Execute).
  3. Chapter 2: Motorola 68000 Architecture – Registers, Buses, and Memory Organization.
  4. Chapters 2 & 3: Motorola ISA Layer – Addressing Modes, Instruction Set
  5. Chapter 5: Programming Examples (using the WISM68 Emulator Toolset).
  6. Chapter 4: The Discipline, Methods, and Process of Assembler Program Development.
  7. Chapter 3: The Machine Instruction Format and Instruction Timing (also Appendices C & D).
  8. Selected Topics 2: Interface between ISA and RTL Layers of Virtual Machine.
  9. Chapter 5: More Programming Examples with Algorithm Analysis.
  10. Chapter 6: Interrupts, Privilege States and Exception Handling.

-------------------------------------------------------------------------------------------------------------------------------------

  1. Chapter 7: Principles of I/O Interfacing.
  2. Chapter 8: The 68KMB Embedded Processor Board.
  3. Chapter 9: Interfacing Examples.
  4. Selected Topics 3: Software Engineering of 68K Programs for Reactive Real-time Systems.

Instructor:       Dr. James P. Davis, Associate Professor

                   Department of Computer Science and Engineering

                        University of South Carolina, Columbia, SC 29208

                        Phone:  (803) 777-5855; Email: jimdavis@cse.sc.edu

Office Hours:    By appointment.

Texts:

  1. MacKenzie, I. Scott, The 68000 Processor, Prentice-Hall Publishers, Inc., 1995.
  2. MacKenzie, I. Scott, Lab Manual 68KMB, (C) 1994, Scott MacKenzie. (This is lab manual for the labs, and is based on using the 68KMB board and lab apparatus).

Grading Policy:    Homework:                          15%

                      Examinations (3):                 60%

                           Lab Exercises:                      25%