CPR
E 288
INTRODUCTION TO EMBEDDED SYSTEMS
Department of Electrical & Computer
Engineering
Iowa State
University
Fall
2009
Course
Information
CPRE 288 - Introduction
to Embedded Systems
Course Description: (3-2) Cr. 4. F.S.
Embedded C programming. Interrupt handling. Memory mapped I/O in the context of
an application. Elementary embedded design flow/methodology. Timers, scheduling,
resource allocation, optimization, state machine based controllers, real time
constraints within the context of an application. Applications laboratory
exercises with embedded devices.
Prerequisite: CprE 281, Com S 207 or Com S
227.
Textbook: none
Related Textbooks: (will not need to use)
Barnett, Cox, O'Cull, "Embedded C Programming and
the Atmel AVR", 2nd edition, Thompson, 2007.
Computer Organization & Design, Patterson & Hennessy, Morgan
Kaufmann, 1998. (MIPS)
A Programmer's View of Computer Architecture, Goodman & Miller, Oxford University
Press, 1993. (MIPS)
Introduction to Computer Systems: A Programmer's Perspective, Bryant
& O'Hallaron, Prentice Hall, 2002. (Intel)
Fundamentals of Embedded Software, Lewis, Prentice Hall, 2002. (Intel)
C Programming Books: (may find these or similar books
useful)
The C Programming Language, Brian W.
Kernighan and Dennis M. Ritchie, 2nd edition, Prentice Hall, 1988.
This is a famous book (the second author is the original designer of the C
language); better for programmers in another language.
C: A Reference Manual, Harbison and Steele,
Morgan Kaufmann, 1998. This is a standard reference; better as a reference than
as an expository text.
Expert C Programming: Deep C Secrets, Peter Van Der Linden, Prentice Hall, 1994. This explains
many of the more confusing aspects of C; helpful for even experienced C
programmers.
Website: http://class.ee.iastate.edu/cpre288/
Class Schedule: The class meets twice weekly for 75
minutes. The laboratory meets once a week. No lab in the first week.
Meeting Times and Places:
Lecture Session
TR 9:30-10:45, HOOVER 1213, with Dr. Akhilesh Tyagi
Lab Times
|
Section
|
A
|
B
|
C |
|
Time
|
Tu 12:00 noon-2:00PM
|
Tu 6:00PM-8:00PM |
We 10:00AM-12:00 noon
|
Note: All labs are in 2041 Coover. Labs do not
meet during the first week of class. Labs start the second week.
The lab is open and available on Mondays. Check the lab schedule for
availability on other days and times.
Instructional Staff:
Instructor
Akhilesh Tyagi, 391B Durham,
294-4396, tyagi@iastate.edu
Office hours: M: 10-11AM; F: 10-11AM
Teaching Assistants
Tushar George,
tushar@iastate.edu
Office hours: TBA
Seth Stanley, seths@iastate.edu
Office hours: By appointment
Suhas Shetty,
suhas@iastate.edu
Office hours: TBA
Why C, and why only C?
Why C?
·
This course is about low-level features in
computers and programming, so we use a low-level programming language to
emphasize that. Everything in C can be implemented on typical processors in a
fairly straightforward manner, and it is thus often considered a high-level
assembly language. Similarly, it exposes some details of the underlying
machine, e.g., how data is stored in memory.
·
It is important to get experience in a variety
of programming paradigms and languages.
·
To emphasize the importance of code
documentation. Good code must be written so that others can understand it, and
this requires extensive documentation. In higher-level languages, code is
usually easier to understand.
Course
Syllabus
|
10 lectures
|
Embedded and
C programming
|
|
10 lectures
|
Three case studies
|
|
10 lectures
|
Atmel Mega128 architecture, Interrupt handling, various
embedded components
|
Policies
and Procedures
Minimum Requirements
- Read all assigned
material.
- Actively participate in class
discussions.
- Satisfactorily complete all
exams and other graded work.
- Participate fully in group
projects (do your fair share of the work).
- Complete all work with an
acceptable level of quality.
- Complete and submit a course
evaluation.
- Follow University policy on
integrity of scholarship and grades.
- If you have special learning
needs, please contact the instructor to make suitable arrangements.
General
- You are required to access
the course home page for relevant and timely information throughout the
term.
- Class attendance is required.
Please make sure that you do not indulge in disruptive behavior such as
newspaper reading and chatting.
- Be aware of the laboratory
policies (see below).
- Email is an effective way to
communicate with the instructors and TAs.
Grading
- Some of your work is done in
groups and some individually. An example of group work is regular
laboratory exercises, and an example of individual work is homework.
You are allowed to work together on homework and laboratory exercises, but
you are not allowed to submit duplicate work. Exams must be
exclusively your work; cheating will be dealt with per University
regulations. Academic dishonesty on class or laboratory work will be dealt
with harshly and may result in a 0.0 for the course.
- The following grading scheme
will be used (* denotes group work):
- Homework: 15%
- Regular Laboratory Exercises: 25%
- Laboratory Project*: 15%
- Exam 1: (Oct 8, 2009), 15%
- Exam 2: (Nov 12, 2009), 15%
- Exam 3: (Dec 10, 2009), 15%
- TOTAL: 100%
- Homework grading: Each
homework will have a due date. It is due in the class on the due date. We
will like you to finish the homework even if you are late. You can turn in
a homework late with a 10% per day (week day or weekend) until the
solutions are published. You have a one time exemption all owing you to
turn in your homework late by up to 2 days penalty-free.
- The grading is not on a fixed
scale. It would be based on class distributions and our expectations based
on prior class offerings.
Lab Policies
Pay special attention to the items in bold.
- Lab attendance is
mandatory. If you will be absent, you must notify the lab instructor
by email or phone before the absence for it to be an excused
absence. Unexcused absences may result in a zero for the corresponding
lab(s) and is sufficient cause for a zero lab score for the semester, and
in turn, a 0.0 grade for the course.
- The lab period may begin with
a timed skill-building exercise to be completed before the scheduled
laboratory activity. Students should be in the lab and ready to begin
promptly.
- Students will typically work
with partners or groups on lab work. Lab partners and roles may be rotated
during the term to give students different learning experiences. A single prelab may be submitted by lab partners. The same
score will be awarded on group work unless there is evidence to support
different scores.
- The lab should be worked on
during its corresponding lab period. If the lab is not completed during
the lab period, it may be finished during any other unscheduled/open lab
time. The lab must be demonstrated to your lab instructor no later than
the beginning of the next regular scheduled lab time, otherwise it is considered
late (it must be ready to demonstrate - students may not work on Lab
i during the period for Lab (i+1). Late
credit for a lab is calculated by deducting 10% per day from the maximum
possible score for the lab. The first 10% is taken as soon as the lab is
late.
-
From lab 4: The late penalty is 20% for a lab if it is turned in
at any time within one week after its due. After one week it will not be
accepted.
- Work can be done outside
formal lab times to verify and test hardware and software designs. Software
design tools are available in the lab.
- No handwritten reports or
code will be accepted. All schematics, tables, text, figures, etc., must
be printed using a word processor. Microsoft Word is available on the PCs
in the lab. Access to printing is also available in the lab.
- All code must be commented.
Integrity of Scholarship and Grades
All students are to adhere to the University's policy relating to
integrity of scholarship and grades as presented in the Student Information
Handbook.