ESE 350: Introduction to Embedded Systems, Spring 2010


Instructor: Rahul Mangharam ()


 

Introduction

Embedded computing applications far outnumber desktop computers, with billions of microcontrollers produced worldwide each year. Embedded systems vary tremendously, from the single 8-bit processor in a thermostat, to high performance processors in a digital camera, to dozens of networked processors in an automobile. Despite this diversity of applications, there are core technology and system-level skills needed by any embedded system designer that form the content of this course. The emphasis of this course will be at the system layer where hardware meets software, with plenty of hands-on experience at "bare metal" programming. Topics typically covered include embedded computing platforms (hardware, microcontroller instruction sets, software in both assembly language and C); interacting with the external world (analog I/O, serial ports, control); system-level engineering (design cycle, architectural patterns); real-time operation (timers, interrupts, concurrency); constraints and optimization (time, space, power, performance); and a survey of techniques important for building systems that work in the real world (debug, test, robust design, dependability). Weekly hands-on hardware and software experiences with a 16-bit microcontroller module will tie directly to lectures to reinforce core skills.

This course focuses heavily on learning by doing. Readings, lectures, and discussions serve to support the main concepts of the laboratory exercises while pre-lab quizzes, laboratory reports, and exams ensure that the concepts are well understood. Labs are performed in groups with each group consisting of at least one EE/CTE major and one Systems major. Each member of a group must participate in the labs, be present during demonstrations, and submit a separate written lab report with only code listings and circuit diagrams allowed to be shared.

Required Hardware

You will be loaned a microcontroller board for the course based on the Freescale MC9S12C128 processor and a prototype board (one per team). You must return these boards at the end of the semester. The boards will be freely available to you if you have any project in mind after the semester.


What are some reasons to take this course?


Prerequisites

Basic knowledge of electronics and programming in C.

Topics


Grading

There will be several homework assignments, an exam, and a term project. A significant component of the evaluation will be based on the design and implementation of the term project.

Last updated on 02/02/09. Maintained by Rahul Mangharam