UCR CS122B: Embedded System Design, Winter 2001

CS122B deals with the exciting and rapidly-growing field of embedded computing systems.

Why embedded systems?

Embedded computing systems are found everywhere, including in cellular telephones, pagers, VCRs, camcorders, thermostats, curbside rental-car check-in devices, automated supermarket stockers, computerized inventory control devices, digital thermometers, telephone answering machines, printers, portable video games, TV set-top boxes -- the list goes on. In 1997, the average U.S. household had over 10 embedded computers, not to mention the automobile, which will have 35 or more by the year 2000. Demand for embedded system designers is large, and is growing rapidly.

CS122A covered the basic ideas of embedded systems, and the labs emphasized the design of single process microcontroller/FPGA-based systems. In CS122B, we'll focus on a particular class of embedded systems, known as real-time systems, and the labs will focus on learning one of the most popular design tools for real-time systems, namely WindRiver's tool set. A real-time system is an embedded systems that consists of multiple processes, each of which must execute such that certain timing deadlines are met. Real-time systems are typically higher-end embedded systems, running on fast 32-bit processors. Graduate students are welcome to take the course. While 122A is a desirable pre-requisite, it is not essential.

Course information

Instructors Tony Givargis (givargis@cs.ucr.edu). Office hours T,R 1:30-2:30, Bourns B256
Frank Vahid (vahid@cs.ucr.edu).
Lecture HMNSS 1403, TR 9:40-11:00
Lab Bourns B252, M 6:10-9:00PM
Textbooks Real-Time Systems and their Programming Languages, by Alan Burns and Andy Wellings, Addison Wesley, 1997, ISBN 0-201-40365-X.

Embedded System Design: A Unified Hardware/Software Approach, Vahid and Givargis, Wiley & Sons, Draft copy to be available at the beginning of the quarter from UCR Printing and Reprographics. Accompanying Web page

All students should have a basic C programming book. A good C book is The C Programming Language, Kernighan and Ritchie, Prentice Hall, ISBN 0-13-110362-8.

Software We'll be using WindRiver's tools for real-time systems development, in particular, the Tornado development environment, and the VxWorks real-time operating system. In a recent study by the magazine Embedded Systems Programming, WindRiver was one of the most commonly-used tools by industry developers. Their web site is: www.windriver.com. We are not aware of a student edition of this software.

TA TBA
Prerequisite CS/EE120B (Digital systems)
Final exam 3/20/01 8-11a.m.
Call # and units 16635, 5 units.
Grade Labs 30%, Homeworks 15%, Midterm/Quizzes 30%, Final 25%

Lecture topics

  • Introduction to embedded real-time systems
  • Designing real-time systems
  • Concurrent programming
  • Shared variable-based synchronization and communication
  • Message-based synchronization and communication
  • Reliability and fault-tolerance
  • Exceptions and exception handling
  • Hierarchical/concurrent state machines
  • Control systems
  • Atomic actions, concurrent processes and reliability, resource control
  • Real-time facilities
  • Scheduling
  • Miscellaneous
  • Homeworks

  • Homework 1
  • Homework 2
  • Homework 3
  • Homework 4     PID web demos found by the students as part of Homework 4
  • Lab

    You will have several assigned labs dealing with writing programs using the WindRiver tools and OS. You may work with one partner. You should plan to be in the lab for the full 3 hours of the scheduled lab time. You should also plan to work on labs outside of scheduled lab time.

    While lecture and lab material obviously overlap, the two aspects of the course are quite independent, with lectures dealing with general theory and principles, and lab dealing specifically with WindRiver. Exams will focus on lecture material, but may include some amount of lab material.

    Lab Report Format
    Lab 1 -- Introduction to Tornado and VxWorks
    Lab 2 -- Introduction to Concurrency
    Lab 3 -- Producer/Consumer Problem
    Lab 4 -- Dining Philosophers
    Lab 5 -- Vehicle Navigation System
    Lab 6 -- Temperature Sensor Network
    Lab 7 -- Trimedia Lab (Median Filter)

    Other links

    Embedded Systems Programming magazine
    Alliance free Linux-based VHDL tools
    Back to Tony Givargis' home page
    Back to Frank Vahid's home page