EE247 Programming for Embedded Applications


Catalog description

EE247. Programming for Embedded Applications
Credits: 3
Microcontroller hardware structures. Basic software concepts such as constants, variables, control structures and subroutine calls, based on the 'C' language and as translated to machine language. Mapping of compiled software to the memory of a microcontroller. Embedded programming principles. Basic interactions with peripherals. Interrupts and their use. Debugging. Three hours of lecture and lab per week.
Pre-Requisites: EGR-140 or CS-125.

This programming course focuses on computing in the small: a microcontroller with very limited resources and no (or very limited) operating system. That means that the programmer is very close to the hardware, and actually manipulates individual signals. Yet, for all that, there is typically both hardware support (modules for timers, serial ports and more) as well as software support (monitors, terminal processes and interrupt service routines) that must all work with the hardware. In this course the student gains an appreciation for what computer hardware actually does, and how software is constrained by that reality. This course (or CS126 or similar) is a prerequisite for EE342.

The next offering of this course is expected to be Spring 2018.

Syllabus and Laboratory Exercises

Most recent offering: Spring 2016
  • Syllabus
  • An Introduction to C (from EGR140) (2.3MB)
  • Use of Processor Init (we won't)
  • An introductory exercise using a microcontroller (from EGR222) (.94MB)
  • An example showing how a simple program is implemented on the microcontroller
  • Lab Exercise No. 0
  • Lab Project No. 1
  • Lab Project No. 2
  • Lab Exercise No. 3
  • Lab Project No. 4
  • MC9S08SH8 Microcontroller Manual (1.6MB)
  • Remarks

    This course is normally offered in the fall semester, and is a tight fit for fourth semester students wanting to take it in order to get into EE342 the following fall. However, since that is the only time it is offered (in alternate years) someone wanting the Computer Engineering minor needs to find space, perhaps by forgoing a distribution course. The CS "C and Unix" course is also usually acceptable as alternative along with CS 126 Computer Science 2, but those courses do not address the embedded environment which is important in EE342.