Iowa State University

CprE 288 - Embedded Systems

Department of Electrical & Computer Engineering
Iowa State University

Public Health

If you are not feeling well, you should stay home and focus on your health. Should you miss class due to illness, it is your responsibility to work with your instructor to arrange for accommodations and to make up coursework, as consistent with the instructor’s attendance policy.

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.

Course Learning Objectives:

  • Learn to interface microcontrollers with the real world
  • Learn to enable others to interface microcontrollers with the real world
  • Learn system-level debugging
  • Learn the computing and data storage structure of microcontrollers
  • Improve systematic learning
  • Become familiar with professional roles and responsibilities within embedded systems careers
  • Understand how societal and human factors affect their engineering work and solutions
  • Gain an awareness of design thinking methods and understand how they relate to engineering work
Students will be able to:
  • Program and design applications for embedded systems
  • Read datasheets/manuals in order to develop practical applications
  • Perform basic hardware and software debugging
  • Program in C for the ARM Cortex M4 based Microcontroller
  • Understand basic computing concepts such as interrupts, interrupt service routines (ISR), Memeory Mapped Input/Output (I/O), simplified processor architecture, registers, program & data memory structure.
  • Generate and Interpret signals to interact with the world
    • UART base serial communication
    • Analog to Digital Conversion (ADC)
    • Input capture
    • Pulse Width Modulation (PWM)
  • Convert C code into Assembly and Binary code
  • Better identify the degree to which the Embedded Systems field aligns with their career interests

Prerequisites: CprE 281, and ComS 207 or ComS 227 or EE285.


Meeting Times and Places:

    Lecture: Tuesday/Thursday, Morning Section: 9:30am - 10:45am, Afternoon Section: 2:10pm - 3:25pm
  • Morning Section: Sukup 0022
  • Afternoon Section: Sweeney 1134
    Labortary: Coover 2041

Required Textbook (PDF version available freely through the ISU Library, so no need to purchase): Practical Microcontroller Engineering with ARM Technology, by Ying Bai .

Related Textbooks: (not required)

  • Computer Organization & Design, Patterson & Hennessy, Morgan Kaufmann, 1998. (MIPS)

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).
  • 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.

Why C?This course covers low-level features in computers and programming, so we use a low-level programming language to emphasize this. 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 others can understand it, and this requires extensive documentation.

General Course Expectations 

  • Read all assigned material.
  • Actively participate in class discussions.
  • Participate fully in group discussions.
  • Treat all classmates in a respectful manner.
  • Complete all work in a timely manner.
  • Follow University policy on academic integrity.
  • If you have special learning needs, please contact the instructor to make suitable arrangements.


  • You are required to access the course home page AND Canvas for relevant and timely information throughout the term.
  • Lab attendance is (MANDATORY)
  • Be aware of the laboratory and homeowork policies (see below).
  • Email is an effective way to communicate with the instructors and lab TAs.
  • Absences approved by the University must be brought to the instructors attention and documentation provided at least 10 days before the event. All other absences will be determined by the instructor to be excusable or non-excusable. Students MUST provide proof of absence.


  • Academic dishonesty on course work will be dealt with harshly, and will at a minimum result in a 0 on an assignment, and may result in a 0.0 for the course. (See section below on Scholastic Integrity)
  • The following grading scheme will be used:
    • Exams: 35%
      • Exam 1: Thursday, 10/5 : 10%
      • Exam 2: Tuesday, 11/14 : 15%
      • Exam 3 (Final Exam): Morning Lec: Tuesday 12/12 at 9:45am, Afternoon Lec: Thursday 12/14 at Noon. (See Registra) : 10%
    • Quizzes (In-class): 10%
    • Homework: 10%
    • Class participation: 5%
      • In-class exercises
      • Reflections
    • Regular Laboratory Exercises: 25%
    • Laboratory Project: 15%
    • TOTAL: 100%
  • Homework: Homework must be typed and uploaded through Canvas in PDF or WORD format (other formats are NOT accepted). It is due on Canvas by the due date. We would like you to complete all homeworks even if they are turned in late. Thus, you can submit homework up to 2 days late at a penalty of 10% per day (Note: No late submission allowed when HW is due the week of an Exam). Answers will be published 2 days after the due date.
  • Regular Labs: There will be a weekly lab throughout the semester. Lab attendance is (MANDATORY). Not attending a lab will result in a 0 for that lab.
  • Exams: There will be three exams, Exam 1 worth 10%, Exam 2 worth 15%, and Exam 3 worth 10% of the final grade.

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 before the absence for it to be decided if it is an excused absence. Unexcused absences will result in a zero for the corresponding lab(s) and missing several labs is sufficient cause for a zero lab score for the semester, and in turn, a 0.0 (Failing grade) grade for the course.
  • Students work with partners or groups on lab work. Lab partners roles will be rotated during the term to give students different learning experiences. The same score will be awarded on group work unless there is evidence to support different scores between partners.
  • A lab should be worked on during its corresponding lab period. If the lab is not completed during the lab period, should be finished during any other unscheduled/open lab time before the next regular lab. The lab must be demonstrated to your lab instructor no later than the beginning of the next regular scheduled lab. (it must be ready to demonstrate - students may not work on Lab i during the period for Lab (i+1).
  • While it is highly discouraged, a lab may be demoed up to 1 lab session late for late-penalty of 20%.
  • All code must be commented.

Homework Policies

  • Submission: Homework must be typed and uploaded through Canvas in PDF or WORD format (other formats are NOT accepted). It is due on Canvas by the due date.
  • Late submission:We would like you to complete all homeworks even if they are turned in late. Thus, you can submit homework up to 2 days (1 day during exam weeks) late at a penalty of 10% per day. Answers will be published 2 days after the due date. (Note: No late submission allowed when HW is due the week of an Exam)
  • Collaboration: Collaboration is encouraged for the purpose of better learning course material. If you form a study group for working on a homework assignment, then you must indicate on your homework (ALL of) your collaborators, and specifically how you collaborated with each
    • Not indicating your collaborators and specifically how you collaborated with each is considered a violation of academic conduct, and will be treated as such.
    • Collaborating with others does not mean copying others. If you are found copying others work (from this semester or previous semesters), as opposed to working with them to better understand the material, this is also considered a violation of academic conduct
    • To help avoid infractions of academic conduct, it is highly recommended that you first work through each problem on your own, before collaborating with a study group
    • It is highly encouraged to attend TA and Professor office hours and to communicate with them via email for help with understanding course material.

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. (available here). Cheating in course work is unacceptable. Students found cheating in CPRE 288 will receive failing grade and further disciplinary action will be determined by the Dean's Office.

Code of Classroom Conduct: As indicated earlier, students are to treat all their classmates in a respectful manner. The following code of classroom conduct, explains what this means in further detail. (Note:An official ECpE version of this ABE code of classroom conduct is in development) Code of Classroom Conduct

Student Accommodations:If you have a disability and/or require accommodations, please contact the instructor early in the semester so that your learning needs may be appropriately met. You will need to provide documentation of your disability to the Disability Resources (DR) office, located on the main floor of the Student Services Building, Room 1076, 515-294-7220.

Free Expression: Iowa State University supports and upholds the First Amendment protection of freedom of speech and the principle of academic freedom in order to foster a learning environment where open inquiry and the vigorous debate of a diversity of ideas are encouraged. Students will not be penalized for the content or viewpoints of their speech as long as student expression in a class context is germane to the subject matter of the class and conveyed in an appropriate manner.

The instructor reserves the right to change any and all aspects of CPRE 288 class/course contents if and when needed.