ECE 49595 - Software for Embedded Systems (Now runs as ECE 40862)

Note:

Activities 1. Get hands on with platform and simple exercise to understand the concept of cross compilation 2. Understanding polling vs. interrupts 3. Designing control loops: sense, compute, actuate 4. Event-driven SW architecture: TinyOS on MSP430F5438 evaluation board 5. Real-time scheduling in Linux on the Beagleboard embedded platform 6. Writing a simple distributed embedded application

Course Details

Lecture Hours: 3 Credits: 3

Counts as:

  • EE Elective

Experimental Course Offered:

Spring 2011, Fall 2012, Fall 2013, Fall 2015

Requisites:

ECE 36200

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

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.