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.