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

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, 2
    2 System software Marwedel:
    "Embedded System Design",
    Chapter 4
    3 Real-time scheduling Marwedel:
    "Embedded System Design",
    Chapter 6
    4 SoC software specification Gerstlauer, Doemer, Peng, Gajski:
    "System Design: A Practical Guide with SpecC",
    Chapter 1
    5 Embedded software design flow Gerstlauer, Doemer, Peng, Gajski:
    "System Design: A Practical Guide with SpecC",
    Chapter 2
    6 Software synthesis Gerstlauer, Doemer, Peng, Gajski:
    "System Design: A Practical Guide with SpecC",
    Chapter 2
    7 RTOS targeting and mapping Marwedel:
    "Embedded System Design",
    Chapter 6
    8 Target processors Marwedel:
    "Embedded System Design",
    Chapter 7
    9 Code generation and compilation Marwedel:
    "Embedded System Design",
    Chapter 7
    10 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 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 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