SWENG 452W: Real-Time Embedded Systems

Textbook Information

Real-Time Embedded Systems (1st Edition) by Xiaocong Fan (ISBN: 9780128015070) item 2011008

Published Remarks

None

Hardware Requirements

HDMI or VGA Monitor, USB mouse and keyboard, Internet access, USB Thumb Drive,

Raspberry Pi 4 with 4GB memory (target embedded device) (https://vilros.com/products/raspberry-pi-4-4gb-ram?src=raspberrypi), 

5V / 3A Power Adapter for the Raspberry Pi 4B (https://vilros.com/collections/official-raspberry-pi-accessories/products/official-raspberry-pi-foundation-power-supply-for-raspberry-pi-4-us-white-ul?src=raspberrypi)

32 GB SanDisk Micro SD Card with Micro SD-SD Adapter.  Note: The description says a MicroSD-SD adapter is included, but it is actually a MicroSD-USB adapter.  (https://www.amazon.com/SanDisk-Ultra-microSDXC-Memory-Adapter/dp/B073JWXGNT?th=1)

If you already have a micro SD card but do not have a micro SD reader for your computer, then you can order a MicroSD-USB adapter: (https://www.amazon.com/SanDisk-Other-Micro-Compatible-Phones/dp/B01GOSW3EC/ref=sr_1_13?keywords=sandisk+usb+reader+writer&qid=1578405245&s=electronics&sr=1-13)

Video Adapter

In order to view video output from the Raspberry Pi 4B, a video adapter is required. Each adapter listed in this section will require an extension cable to connect to the adapter on one end and connect to your monitor on the other end. Depending on what type of monitor you have, you will need to select ONE ITEM (adapter AND cable) listed in this section.

*Note: each item contains two links: an adapter and an extension cable.

For an HDMI monitor:

Adapter: Micro-HDMI to HDMI – https://vilros.com/products/vilros-micro-hdmi-female-to-micro-hdmi-male-adapter-for-pi-4

Cable: 6-feet HDMI Male to Male Cable – https://www.amazon.com/Cables-Unlimited-6-feet-Cable-PCM-2295-06/dp/B0007MWE2S

For a VGA monitor:

*Note: the micro-HDMI output of the Raspberry Pi 4B does not supply enough power for a VGA signal, the adapter MUST SUPPORT EXTERNAL POWER:

Adapter: Micro-HDMI to VGA adapter (powered by USB, will use one of the four USB ports on the Raspberry Pi 4B): https://www.amazon.com/dp/B01ALGJS32/ref=sspa_dk_detail_0?psc=1&pd_rd_i=B01ALGJS32&pd_rd_w=ItRBW&pf_rd_p=21517efd-b385-405b-a405-9a37af61b5b4&pd_rd_wg=OpzHA&pf_rd_r=XDFED2FKMVFBNY5AV3WP&pd_rd_r=fd2e09fb-2651-11e9-ad19-fb6cb727d522

Cable: 5 FT SVGA VGA Monitor Male to Male Extension Cable: https://www.amazon.com/SVGA-Monitor-Male-Extension-Cable/dp/B00CMM5WHU

Software Requirements

Proctored Exams

Course Description

The design and implementation of real time systems. SWENG 452W Embedded Real Time Systems (3) Real time operating systems is the study of hardware/software systems in which timing constraints must be met for correctness. Real time systems are embedded in applications ranging from the antilock brakes in cars to the flight control systems for jetliners. Students are first introduced to the concept of systems with real time constraints by examining case studies. The unified modeling languages (UML) with real time extension is introduced allowing students to capture the constraints present in the systems in a variety of models allowing the problem to be described at several levels of abstraction. Tasks and messages are introduced as programming structures which can satisfy the constraints described by the UML models. With a basic understanding of real time systems and how to implement them, the focus of the course shifts away from these technical concerns towards understanding the documentation of the requirements using the Volere Requirements Specification template. All the writing assignments in the class will revolve around Volere in one way or another. Increasingly complex case studies will give the class the opportunity to explore more sophisticated inter-task communications mechanisms as well as common pitfalls present in RTOS applications. Students will learn how to verify the correctness of their applications in order to guarantee that the real time constraints can be met when the system is deployed. Discussion will turn to application programmer interfaces used by hardware vendors to port hardware into a RTOS. The class will end by designing and building a complex RTOS by a team of students using the techniques learned in the class. The project will outline the needs of the RTOS application in a project proposal using the Volere template. The proposal will be developed iteratively with the faculty member until its scope and definition are clear. This proposal will be developed into a complete requirement specification including a time-line and identification of development benchmarks. This system resulting from the development will be documented in the final report write-up.

 

Course Overview

Real-time systems are embedded in applications ranging from the antilock brakes in cars to the flight control systems for jetliners, where domain-specific timing constraints must be met for correctness. Being software-oriented, this course will introduce the concepts and principles of embedded real-time systems, covering embedded software development, real-time operating systems, and techniques for the engineering of real-time embedded software applications. The Unified Modeling Language (UML) with real-time extension and POSIX real-time extension is introduced. In addition, this course emphasizes UML for documenting the requirements and design of embedded real-time software systems. A major component of this course will be a project, which requires students to analyze, design, document, and implement a medium-sized application. Lab activities will be centered on hands-on experiences with Linux-based operating systems.

Prerequisites

Students must have previously taken and passed either CMPSC 472 or CMPSC 473 or CMPEN 441.

Students not meeting the prerequisites will need to drop this course.

Objectives

Upon completion of the course, students will be able to:

  1.  Restate the key concepts and characteristics of Embedded Systems;
  2. Identify the pros and cons of different architectures for embedded systems;
  3. Summarize the POSIX RTOS extensions, and develop POSIX-compliant real time applications;
  4. Use real time UML to document system designs with timing constraints;
  5. Use state diagrams to analyze and design complex real-time tasks;
  6. Apply timer interrupt for real-time tasks handling;
  7. Describe the challenges and concepts related to cross-development;
  8. Analyze different inter-task communication techniques (message queues, semaphores);
  9. Use kernel objects (e.g. Semaphores, Mutex, Condition variables) to address resource sharing issues in RTOS applications;
  10. Express the philosophy underpinning the notion of “resource manager” and how to implement a virtual file system using a resource manager.
  11. Examine the principles of real-time scheduling and several key algorithms
  12. Develop a timer server (timing wheel) for scheduling periodic tasks
  13. Summarize a few design patterns for inter-task synchronization;

Topics Covered:

This course will cover Embedded Software Development, Real-Time Operating System, and techniques for the engineering of Real Time Embedded Software. A list of major topics includes:

  • Characteristics of embedded systems
  • Embedded Software Architectures
  • POSIX real-time extension
  • Real-time UML
  • Exceptions and Interrupts
  • Cross-development Basics
  • Tasks and inter-task Communication
  • Resource Management
  • Timers and clocks
  • Real-Time Scheduling
  • Memory Management
  • Common Design patterns
  • Designing for multi-tasking and Common Design problems

Materials

All instructional materials needed for this course are presented online.

  1. Textbook:
    • Real-Time Embedded Systems (1st Edition) by Xiaocong Fan (ISBN: 9780128015070)

  2. Module/Lesson Content
    • Read each module/lesson in Canvas.

Technical Specifications –VIP

ABET Outcomes

Relationship of course to SE program outcomes:

  • (1) an ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics
    • This course requires students to use various integrated development environments for Linux-based operating systems (e.g., Eclipse) and cross-platform development techniques.
  • (3) an ability to communicate effectively with a range of audiences
    • This course requires students to present project ideas orally and in writing
  • (7) an ability to acquire and apply new knowledge as needed, using appropriate learning strategies
    • This course requires students to learn Linux-based operating systems

Relationship of course to CS program outcomes:

  • (1) Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
  • (2) Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.

Course Requirements and Grading

Grading Distribution

Category Percentage
Quizzes 15%
Labs 20%
Homework 10%
Exams 15%
Final Project 25%
Final Exam 15%

Grading Scale

Semester Average Course Grade
93 – 100 A
90 – 92 (< 93) A-
87 – 89 (< 90) B+
83 – 86 (< 87) B
80 – 82 (< 83) B-
77 – 79 (< 80) C+
70 – 76 (< 77) C
60 – 69 (< 70) D
<60 F

 

Quizzes

Quizzes will be given every week to encourage your ongoing attention to course material. Covered topics will be drawn largely from the textbooks, lectures, and labs.

Exams

Several exams will be given throughout the semester. Exams are posted on Canvas. Covered topics will be drawn largely from the textbooks, lectures, and assigned work.

Labs

Laboratory exercises are aimed at illustrating several RTOS concepts including threads, task scheduling, task synchronization, and preparing the students for designing and implementing the course project. Labs are assigned on a weekly basis and are due by midnight (11:59pm) on Sunday. You have to submit your lab reports through Canvas. Each lab will include clear submission instructions.

Final Project

The main course project will consist of the design and development of an embedded software applications. A schedule of deliverables for the final project will be posted on Canvas toward the middle of the semester. The purpose of this project is to help you gain in-depth experience with the development of embedded software systems.

Communication Expectations

As part of this online course, you will be using e-mail and discussion forums to interact with a diverse group of faculty and students. All online communications should follow the rules of “Netiquette” that govern the Internet. Here are a few ground rules to get you started.

  • Subject Lines. Whenever you post a message in a forum or send course mail, use a short yet descriptive subject line.
  • Stay on topic. When in a discussion forum, stay on topic. Start a new discussion when appropriate.
  • Proofread. Email and discussion posts are written communication (not spoken) and should contain correct grammar, punctuation, and spelling.
  • Never use all CAPS. Using all CAPS is equivalent to shouting.
  • Language. Use professional language. Avoid slang and text acronyms and never use vulgar or inappropriate language.
  • Basic Courtesy. Be courteous and respectful in all of your course communications.
  • Consider your tone. A poorly worded note can easily be misunderstood or misconstrued. Remember, recipients can’t see your body language or the expression on your face, nor can they hear the intonation in your voice. If you have a suspicion that something you wrote might be taken the wrong way, it probably will.
  • Remember your audience. Your classmates come from all over the country and the world. Remember that language, humor, and idioms are not universal. Be especially careful with sarcasm.
  • When reacting to someone else’s message, address the ideas, not the person.

The course schedule provides a week-by-week schedule of topics and assignments. Please visit the course schedule regularly to determine what is expected of you each week.