ECE 40862 - Software for Embedded Systems


Compter Engineering students are allowed to count this course OR ECE 56800 Embedded Systems toward CmpE Selective credits. If both are taken, one will count as a CmpE Selective and the other will count as a Complementary Elective.

Course Details

Lecture Hours: 3 Credits: 3

Counts as:

  • EE Elective
  • CMPE Selective

Normally Offered:

Each Fall


On-campus only


ECE 36200, CS 15900

Requisites by Topic:

Digital Logic Design, Basics of Microcontrollers, C Programming

Catalog Description:

This course provides an introduction to software design for embedded computing systems. Major topics covered include the importance of time and timing in embedded systems, embedded software organization (FSM-based program design, polled loop systems, foreground- background systems, event driven architectures, multi-tasking, etc.), real-time scheduling and real-time operating systems, wired/wireless networked embedded systems, debugging techniques for embedded software, and advanced topics such as memory-safe programming, implementing reentrant functions, and minimizing code space, memory usage, and power consumption. The course features a series of integrated assignments using state-of-the-art embedded hardware platforms, embedded software design tools, and real-time operating systems that reinforce the concepts taught in the lectures.

Required Text(s):

  1. An Embedded Software Primer , David E. Simon , Addison-Wesley Professional , 1999 , ISBN No. 13: 978-0201615692

Recommended Text(s):

  1. Introduction to Embedded Systems, A Cyber-Physical Systems Approach , E.A. Lee and S.A. Seshia , 2011 , ISBN No. 978-0-557-70857-4

Learning Outcomes:

A student who successfully fulfills the course requirements will have demonstrated:
  1. an understanding of the embedded software design process and tools used. [None]
  2. an understanding of various software architectures for embedded systems. [1,2]
  3. an ability to apply advanced debugging techniques to embedded software. [1,6]
  4. an ability to analyze and implement real-time embedded applications. [1,2]
  5. an ability to design and implement distributed applications for networked embedded systems. [2,6]

Lecture Outline:

Week(s) Major Topics
1 Introduction to embedded systems and associated tool flow
2 Review of embedded hardware
1 Time and clocks in embedded systems
3 Software architectures for embedded systems
3 Real-time operating systems
2 Software for networked and distributed embedded systems
2 Debugging techniques for embedded software
1 Advanced topics

Engineering Design Content:

  • Establishment of Objectives and Criteria
  • Analysis
  • Construction
  • Testing
  • Evaluation

Engineering Design Consideration(s):

  • Economic
  • Environmental
  • Manufacturability

Assessment Method:

The students will have several opportunities to satisfy the course outcomes including design assignments and a midterm/final exam. A student will satisfy each course outcome when his/her score for the corresponding exam/assignment question(s) equals or exceeds 40%, which represents minimal competency. If the student fails to meet this level of minimal competency on a specific course outcome, the student will have a second chance to do so by appearing for a retest (either written or through an interview, to be chosen by the instructor). While the retest will not affect the student's score on the original test, it will provide him/her a second opportunity to demonstrate competency on the course material, and satisfy the course outcome.