Course Syllabus
Home | Syllabus | Schedule | Project | Resources
Course Description
EECS 226: Embedded System Software (4)
Embedded system software concepts, requirements, examples, for engineering applications such as multi-media and automotive. Software generation methodology. Algorithmic specification, design constraints. Embedded operating systems. Static, dynamic, real-time scheduling. Input/output, interrupt handling. Code generation, compilation, instruction set simulation.
Course Objectives and Outcomes
Course objectives represent what the course strives to accomplish.
Course outcomes represent what will be measured to determine if the course met it's objectives.
-
Course Objectives:
- To learn software concepts in embedded system design.
- To be able to design, develop and debug software in embedded system models.
- To understand software code generation for embedded systems from system-level description languages (SLDL).
-
Course Outcomes:
- Students understand the special requirements of software for embedded systems.
- Students understand the process of code generation and integration.
- Students are able to develop application software for embedded systems with or without operating system support.
- Students are able to implement, test and debug a software application for an embedded system.
Course Resources
- Recommended text books:
- P. Marwedel:
"Embedded System Design: Embedded Systems Foundations of Cyber-Physical Systems, and the Internet of Things" Links to an external site.,
4th Edition, Springer, Heidelberg, 2021.
ISBN 978-3-030-60909-2
("Red book")
- A. Gerstlauer, R. Doemer, J. Peng, D. Gajski:
"System Design: A Practical Guide with SpecC" Links to an external site.,
Kluwer Academic Publishers, Boston, June 2001.
ISBN 0-7923-7387-1
("Yellow book")
- D. Black, J. Donovan, B. Bunton, A. Keist:
"SystemC: From the Ground Up, Second Edition" Links to an external site.,
Springer, 2010.
ISBN 978-0-387-69958-5
("Blue-Red book")
- D. Gajski, S. Abdi, A. Gerstlauer, G. Schirner:
"Embedded System Design: Modeling, Synthesis, Verification" Links to an external site.,
Springer, July 2009.
ISBN 978-1-4419-0503-1
("Orange book")
- P. Marwedel:
- Course web site
online at https://canvas.eee.uci.edu/courses/35025
Course Contents
- The class meets for 3 hours of lecture each week for 10 weeks.
Topic Reading 1 Embedded software concepts and requirements Marwedel:
"Embedded System Design",
Chapter 1, 22 System software Marwedel:
"Embedded System Design",
Chapter 43 Real-time scheduling Marwedel:
"Embedded System Design",
Chapter 64 SoC software specification Gerstlauer, Doemer, Peng, Gajski:
"System Design: A Practical Guide with SpecC",
Chapter 15 Embedded software design flow Gerstlauer, Doemer, Peng, Gajski:
"System Design: A Practical Guide with SpecC",
Chapter 26 Software synthesis Gerstlauer, Doemer, Peng, Gajski:
"System Design: A Practical Guide with SpecC",
Chapter 27 RTOS targeting and mapping Marwedel:
"Embedded System Design",
Chapter 68 Target processors Marwedel:
"Embedded System Design",
Chapter 79 Code generation and compilation Marwedel:
"Embedded System Design",
Chapter 710 Instruction-set simulation Schirner, Sachdeva, Gerstlauer, Doemer:
"Modeling, Simulation and Synthesis in an Embedded Software Design Flow...",
CECS TR 06-06 - Note that the ordering of topics is tentative and may change!
- Please see the Schedule page for up-to-date scheduling information.
Course Policies
-
In-Person Course:
This course meets the requirements of an "in-person course" as defined by UCI leadership. Instruction takes place in hybrid/dual-delivery fashion where some course elements are in-person and some are online/remote. For instance, the lectures can be followed remotely and/or online, while the modeling of the chosen application example in the lab session is required as an in-person engagement.
Note that the place of the course lectures and lab sessions is marked as "TBA" in WebSOC while department schedulers work towards physical room assignment with the registrars office. This is standard procedure on UCI campus. -
COVID-19 Health Guidelines:
This course follows all health guidelines defined by the UCI campus, which are available online here. Alternatively, a local document is available here Download here as well. -
COVID-19 Reporting:
This course follows the reporting guidelines defined by the UCI campus, which are available online here. Alternatively, a local document is available here Download here as well. -
Attendance Policy:
Attendance and active participation in class is required. Attendance is taken with a sign-in sheet for all in-person meetings (for COVID-19 contact tracing purposes, if/when needed).
It is the student's responsibility to make up for any missed instruction or assignments. Substitute assignments or exams will only be arranged for absence due to documented medical (or similar) reasons. Proper documentation is required. -
Computing server:
Linux is the standard computing platform used for this course. A central computer infrastructure is provided and students may remote login to the server at any time (24/7). All processes run on the EECS Linux servers, such as crystalcove.eecs.uci.edu and other beaches. SSH protocol and a suitable SSH client is needed to login to the server. -
Project assignments:
A selected embedded application will serve as a continuous example for a sequence of modeling and simulation tasks. Assignments are listed on the Project web page and may be assigned on a weekly or bi-weekly basis. Detailed submission instructions and due dates will be listed with each assignment. Assignments are generally due on Wednesday at 6pm, unless indicated otherwise on the project web page.
The submission deadline is hard. The server clock is used as reference clock. Work turned in late will not be graded and receive no credit. -
Exams:
The course includes one final examination. Final examinations are administered during examination week as announced in the UCI Schedule of Classes. -
Grading Policy:
The final grade for the course will be determined based on the scores achieved in the assignments and the final examination, as follows:- 50% Project assignments
- 50% Final examination
-
Academic Honesty:
Academic integrity, as published by the Office of Academic Integrity and Student Conduct (AISC), is a requirement for passing this class. Any student who compromises the academic integrity of this course is subject to a failing grade. Submitted work must be the own original work of the student.
Academic dishonesty includes, but is not limited to copying answers from another student, allowing another student to copy your answers, communicating exam answers to other students during an exam, attempting to use notes or other aids during an exam, or tampering with an exam after it has been corrected and then returning it for more credit.
Do not copy any code from or share code with other students! If you do so, you will be in violation of the UCI Policies on Academic Honesty. It is your responsibility to read and understand these policies. Note that any instance of academic dishonesty will be reported to AISC for disciplinary action and is cause for a failing grade in the course. -
Course Material:
All course material is for use in the context of this course only. Selling, preparing, or distributing for any commercial purpose course lecture notes or video or audio recordings of any course unless authorized by the University in advance and explicitly permitted by the course instructor in writing. The unauthorized sale or commercial distribution of course notes or recordings by a student is a violation of these Policies whether or not it was the student or someone else who prepared the notes or recordings.
Course Summary:
Date | Details | Due |
---|---|---|
Wed Apr 7, 2021 | Assignment Assignment 1 | due by 6pm |
Wed Apr 21, 2021 | Assignment Assignment 2 | due by 6pm |
Wed Apr 28, 2021 | Assignment Assignment 3 | due by 6pm |
Wed May 5, 2021 | Assignment Assignment 4 | due by 6pm |
Wed May 12, 2021 | Assignment Assignment 5 | due by 6pm |
Wed May 19, 2021 | Assignment Assignment 6 | due by 6pm |
Wed May 26, 2021 | Assignment Assignment 7 | due by 6pm |
Wed Jun 2, 2021 | Assignment Assignment 8 | due by 6pm |
Thu Jun 10, 2021 | Assignment Final Assignment | due by 10:30am |