ECE 40862 - Software for Embedded Systems
Note:
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
Campus/Online:
On-campus only
Requisites:
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):
- An Embedded Software Primer , David E. Simon , Addison-Wesley Professional , 1999 , ISBN No. 13: 978-0201615692
Recommended Text(s):
- 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:
- an understanding of the embedded software design process and tools used. [None]
- an understanding of various software architectures for embedded systems. [1,2]
- an ability to apply advanced debugging techniques to embedded software. [1,6]
- an ability to analyze and implement real-time embedded applications. [1,2]
- 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.