EE 599-004: Real-Time and Embedded Computing Systems

Instructor Information

Professor:Dr. William R. Dieter
Email: dieter@engr.uky.edu
Office: 683 Anderson Hall
Office Hours: TBA

Course Information

Textbook:Jane W. S. Liu, Real-Time Systems, Prentice-Hall, Inc. 2000, ISBN: 0-13-099651-3
Supplementary Reading:Additional reading material may be assigned during the semester. The additional material will be supplied on the web site or put on reserve in the library.
Course URL:http://www.engr.uky.edu/~ee599
Syllabus:http://www.engr.uky.edu/~ee599/syllabus.html
Prerequisites: Equivalent of two 400 level courses in Electrical Engineering, consent of instructor and engineering standing. EE 380 or equivalent and familiarity with C programming.
Location: RGAN 202
Time: MWF 2:00 PM - 2:50 PM

Course Description and Outcomes

From systems as small as a toaster to those as sophisticated as a TiVo or a computer controlling heavy machinery in a factory, computer systems are everywhere. These embedded computer systems often have different constraints on their operation than do their desktop or mainframe counterparts. For example, a word processor on a desktop machine pauses while the user is typing, it is merely annoying. In the case of a heavy machine controller, it could be catastrophic. This class will cover features typically found in real-time and embedded systems with those found in more traditional computer systems. Topics will include scheduling, synchronization, memory management, and architectural features of real-time and embedded systems.

After successfully completing this course, students will be able to:

Announcements

Homework

NumberAssigned Due Problems Solutions Pts
1 1/26/2004 2/2/2004 Homework 1 Solution 1 50
2 2/9/2004 2/18/2004 Homework 2 Solution 2 50
3 3/3/2004 3/12/2004 7.1,7.2,7.4,7.5,7.19 100
4 4/2/2004 4/14/2004 8.3, 8.7, 8.9, 8.15 100

Projects

NumberAssigned Due Description Submission Pts.
1 1/26/2004 2/16/2004 Project 1 click here to turn in project 1 200
2 3/9/2004 3/26/2004 Project 2 click here to turn in project 2 150
3 4/20/2004 4/28/2004 Project 3 click here to turn in project 3 100

Exams

Supplemental Reading

Filsystem/Storage Links
Real-Time Scheduling for Low-Power Systems
File Management on Mars
Sprirt, one of the two rovers currently exploring Mars, recently ran into some software problems. This article in EE Times describes the file management bug that caused the problem, and how it was fixed.
Software Matters for Power Consumption
Embedded software can play a significant role in power consumption of embedded systems. This article discusses four ways to design software to avoid power consumption.
What Really Happend on Mars?
In 1997 NASA used the Mars Rover to explore and perform tests on the planet Mars. Though the mission was mostly trouble free, Mike Jones wrote about a priority inversion problem that occured during the mission. Subsequently, the person leading the software team wrote a more detailed description that fixed a few problems with the original description. These articles show how priority inversion can come about in real systems, as well as how the problem was found and fixed.

Useful Links

Syllabus
The course syllabus is available online.
Mutex and Condition Variable Example
fifo-mutex-example.c shows an example of how to use mutexes and condiiton variables.
RTLinux Documentation
FSM Labs maintains the RTLinux source code which is freely available (meaning you can download and install it on your PC at home). The FSM labs web site has a number of white papers discussing the design of RTLinux and reference material and tutorials on how to use RTLinux. Manual pages for RTLinux are a good reference once you have an idea what it going on.
RTLinux Examples
Here are A PDF of intro to rtlinux lecture, the (non-real-time)hello.c module, and the rthello.c module.
GCC Inline Assembly
We will not do much assembly language programming in this class, if any, but assembly programming is common in embedded and real-time systems. Often it is sufficient to write just a few instructions in assembly. GCC's inline assembly feature makes mixing assembly and C code easy. This introduction to GCC inline assembler was written for DJGPP, the DOS based version of GCC, but applies to all versions of GCC (the examples are all x86 assembly, though).