1.

University of California, Irvine

Introduction to Embedded Computer Systems

Professor Rajesh K. Gupta,

Course Overview and Goals:

Increasing integration of communications, multimedia and processing and relentless digitization of data (including even RF data) continues to expand the scope and complexity of embedded systems. To appreciate these advances, and to productively contribute to future advances of these systems, a critical appreciation of the underlying technology underpinning is a must. The goal of this course is to develop a comprehensive understanding of the technologies behind the embedded systems, particularly, those using computing elements (processor, DSP, or ASSPs). The students develop an appreciation of the technology capabilities and limitations of the hardware, software components for building embedded systems, and methods to evaluate design tradeoffs between different technology choices.

Course Rationale and Relationship to ICS Curriculum:

Continuing advances in system software and hardware components now present exciting opportunities in building embedded systems for applications ranging from embedded control, multimedia, networking and information and biomedical appliances. Building these systems, particularly for highly integrated micro-electronic technologies and mobile applications, presents a challenge at every of level abstraction from gate-level designs to complex runtime systems. Even with a detailed technical knowledge in a specific technology area that make up an embedded system, a good system design would require understanding of the design tradeoffs across choice in technologies that make up the system. For instance, is it better to a particular interface as a gate-level logic or build the functionality into device driver software. This course fills this gap by presenting basic characteristics and usage model of the technologies that make up an embedded system and describing their relations.

Text book:

H. Kopetz, "Real-time Systems," Kluwer, 1997

Website:

Course Website

2.

University of Colorado, Boulder

EMBEDDED SYSTEM DESIGN

Dr. Linden H. McClure (Professor Adjunct)

Going through the website for this course, I was able to figure out that there are a lot of microcontrollers used. I was quite impressed with this course as it seemed to have a reasonably good mixture of hardware and software efforts.

P.S.- Coincidentally, one of my friends from my undergrad has been the TA for this course. If you find something interesting in this website, I can certainly contact him for more detailed info.

Website

Course Website

3.

University of California, Santa Cruz

Embedded Software

Instructor: Luca de Alfaro

What is This Course About?

* Program Lego Mindstorm robots in a variety of languages! Make them roam, explore, build ad-hoc communication links, and perform a variety of tasks. The special project this year consists in setting up an ad-hoc network between the robots, so that the robots can communicate and coordinate their tasks.

* Learn how to write concurrent, real-time code, and how to ensure it is correctly scheduled.

* Learn how different real-time operating systems support embedded programming.

* Experiment with high-level languages for embedded systems, developed to make real-time distributed control easy! These languages are based on a completely different set of ideas from the programming languages you are used to.

* Learn what are the main challenges in developing embedded software for complex systems such as cars, cellphones, and satellites, and learn techniques to overcome them.

Textbook

Giorgio C. Buttazzo, Hard Real-Time Computing Systems: Predictable

Scheduling Algorithms & Applications. Kluwer Academic Publishers, 1997.

Website

Course Website

4.

University of South California

Course: Embedded Systems Design

Dr. James P. Davis, Associate Professor

Course Overview

Embedded microprocessor and micro-controller systems are the data analysis and processing technology "backbone" of many 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.) Embedded systems are where "the rubber meets the road", so to speak, in that we are concerned about the level where the higher layers of systems and application software integrate with the underlying hardware on which the software executes--through the Instruction Set Architecture (ISA) layer. In addition, at this level, we need to concern ourselves with the interfacing and integration of disparate systems and devices which would come under the control of the embedded system. Embedded systems interface with humans and with their environment--all of which is done through "peripheral" interfacing.

Many millions of lines of code used in embedded systems are written in low-level assembler languages, and in direct machine code sequences, supported by the microprocessor or micro-controller used in the specific systems. This is in addition to code written in high-level languages such as C/C++. We will take one popular and well-known processor, the Motorola® 68000 and its descendants, and explore its Instruction Set Architecture (ISA) model and hardware architecture, so that we can write efficient, correct and maintainable programs that exploit the capabilities of this processor "workhorse" to specific programming tasks we have in mind.

Textbook

MacKenzie, I. Scott, The 68000 Processor, Prentice-Hall Publishers, Inc., 1995.

MacKenzie, I. Scott, Lab Manual 68KMB, (C) 1994, Scott MacKenzie. (This is the manual for the labs, and is based on using the 68KMB board and lab apparatus)

Website:

Course Website

5.

University of Florida, Gainesville

CIS 6930: Introduction to Embedded Systems

Dr. Prabhat Mishra

Course Overview

Embedded systems run the computing devices hidden inside a vast array of everyday products and appliances such as cell phones, toys, handheld PDAs, cameras, and microwave ovens. Cars are full of them, as are airplanes, satellites, and advanced military and medical equipments. As applications grow increasingly complex, so do the complexities of the embedded computing devices. The goal of this course is to develop a comprehensive understanding of the technologies behind the embedded systems design. The students develop an appreciation of the existing capabilities and limitations of various steps in overall design methodology - modeling/specification, exploration, partitioning, synthesis(hardware/software/interface), and validation/verification of embedded systems.

Note: As mentioned above, this course seems to be more like a high level system design course with more emphasis on the synthesis and the verification aspect, rather than what we are interested in. But such a course could be a good follow-up course.

Textbook:

# P. Marwedel, "Embedded System Design", Kluwer 2003.

# H. Koptez, "Real-time Systems", Kluwer 1997.

Website:

Course Website

6.

University of Texas at Austin

Jonathan W. Valvano

This is the course offered by the text-book's author. He mainly uses the TExaS simulator and is very similar to our course. But it is an interesting link with a lot of information.

Website:

Course Website

7.

Columbia University

Prof. Stephen Edwards

Course Overview

Its goal is to introduce you to issues in hardware/software interfacing, practical microprocessor-based system design issues such as bus protocols and device drivers, and practical digital hardware design using modern logic synthesis tools. You will put all of this to use in the lab where you will be given the opportunity to implement, using a combination of C and the VHDL hardware description langauge, a small embedded system.

The focus of the course will be a lab, which will be in two parts. During the first half of the class, teams will each implement the same "canned" project designed by the instructor and be given substantial guidance. This project is meant as an opportunity for you to learn the development tools and basic concepts. During the second half, each team will design and implement a comparable project of their own with guidance from the instructor and TAs.

The board used in this course is the XSB-300 board (lot of peripherals around Xilinx Spartan XC2S300E FPGA)

Textbook:

Frank Vahid and Tony Givargis. Embedded System Design: A Unified Hardware/Software Introduction. Wiley, 2002.

Website:

Course Website

8.

University of California, Riverside

Frank Vahid

This course deals with the exciting field of designing embedded computing systems -- those computers hidden in all sorts of electronic devices, like digital cameras, MP3 players, video games, automobiles, fax machines, copy machines, printers, pacemakers, hearding aids, hospital equipment, and so on. It introduces the student using a unified view of hardware and software design -- mapping desired functionality to a collection of single-purpose processors (digital hardware and peripherals) and general-purpose processors (microprocessors). Students will gain experience building real digital systems using VHDL, synthesis and FPGAs (Xilinx), and programming embedded microprocessors (Intel 8051 8-bit microcontroller).

Note: This is course by another author of an Embedded System Design book. Uses Intel's 8051 micro-controller for many labs.

Textbook:

Frank Vahid and Tony Givargis. Embedded System Design: A Unified Hardware/Software Introduction. Wiley, 2002.

Website:

Course Website

9.

Stanford University

Pascal Stang

Board: Atmel STK200/500 AVR microcontroller starter kit.

Note: Another board that can be investigated.

Webpage:

Course Website

10.

Cornell University

Bruce Land

Textbooks: Embedded C Programming and the Atmel AVR by Richard Barnett, Larry Cull, and Sarah Cox ISBN 1401812066

The purpose of this course is to enable its students to carry out sophisticated designs of the modern digital systems which now appear in products such as automobiles, appliances and industrial tools. The basis of such systems is the microcontroller, a microcomputer optimized for single-chip system design by possessing many peripheral devices geared to real-time applications. The microcontrollers we will use are the Atmel MEGA series RISC microcontrollers.

Webpage:

Course Website

11.

Lunds University

The main goal of this course is to give a general introduction to embedded system design which can be implemented using System-on-Chip technology. This kind of embedded systems contains both hardware and software components and therefore a hardware/software co-design is emphasized. The course will give a basic knowledge on specification methods, design representations (computational models) as well as related design methods. Special emphasis will be put on interface synthesis and low-power design methods.

Note: Another high level synthesis/validation type of course.

Webpage:

Course Website

12

.

Georgia Tech

Karsten Schwan

This course covers the principles of embedded and real-time systems inherent in many hardware platforms and applications being developed for engineering and science as well as for ubiquitous systems, including robotics and manufacturing, interactive and multimedia, immersive and omnipresent applications. As part of this course, students will learn about quality of service and real-time system principles, understand embedded and real-time operating systems and the resource management issues that arise, and construct sample applications on representative platforms. Platforms range from handheld and mobile computers to media and real-time server systems. Platforms may also include specialized systems used in application-specific contexts, such as autonomous robotics, smart sensors, and others.

Note: This is another software-centric embedded systems course.

Webpage:

Course Website

13.

Case Western

Professor Chris Papachristou

This course is again a synthesis course that uses VHDL, SystemC for modelling embedded systems.

Webpage:

Course Website

14.

Colorado State University

This course uses the Digilent Board which has the peripherals around the Xilinx Spartan2E XC2S200E PQ208 -6C FPGA.

Webpage:

Course Website