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:
- Restate the key concepts and characteristics of Embedded Systems;
- Identify the pros and cons of different architectures for embedded systems;
- Summarize the POSIX RTOS extensions, and develop POSIX-compliant real time applications;
- Use real time UML to document system designs with timing constraints;
- Use state diagrams to analyze and design complex real-time tasks;
- Apply timer interrupt for real-time tasks handling;
- Describe the challenges and concepts related to cross-development;
- Analyze different inter-task communication techniques (message queues, semaphores);
- Use kernel objects (e.g. Semaphores, Mutex, Condition variables) to address resource sharing issues in RTOS applications;
- Express the philosophy underpinning the notion of “resource manager” and how to implement a virtual file system using a resource manager.
- Examine the principles of real-time scheduling and several key algorithms
- Develop a timer server (timing wheel) for scheduling periodic tasks
- 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.
- Textbook:
-
Real-Time Embedded Systems (1st Edition) by Xiaocong Fan (ISBN: 9780128015070)
-
- Module/Lesson Content
- Read each module/lesson in Canvas.
Technical Specifications –VIP
-
- Please note that without meeting the required Tech Requirements, you may not be able to complete your lab assignments from the very beginning and will end up having to drop the course. Please see the required techs below:
During this course, you will learn how to create and use a cross-platform development environment for the Raspberry Pi 4B. In order to do this, you will need a hardware kit and a desktop or laptop computer (PC or MAC). Several sections are listed on this page, starting with common resources most of you already own or have access to. Depending on the equipment you already own, you may not need everything listed on this page. Each section contains a small description to guide you in purchasing equipment for a complete hardware kit and development environment for this course. Please read each section and email the instructor if you are unsure of anything.
*NOTE: Your computer must be capable of running a Debian (Linux) virtual machine. A tablet or mobile device will not be sufficient to do this.
Resources most of you probably own:
Please note, if you do not have access to these resources, you will need to acquire them for this course.
Item #1: An HDMI or VGA Monitor
Item #2: A USB mouse and keyboard
Item #3: Wired or Wireless internet access in your development environment – your development computer and the Raspberry Pi 4B must be on the same subnet within your development environment. You can research “setting up a local subnet” to ensure your development environment satisfies this constraint. *For wired networks, you will need an ethernet cable to connect the Raspberry Pi 4B to your network.
Item #4: (*OPTIONAL) A USB Thumb Drive – this enables convenient file transfer between your development computer and the Raspberry Pi 4B
Raspberry Pi 4B:
In addition to the Raspberry Pi 4B, you will need a power adapter and a Micro SD card with a USB adapter. You may purchase the hardware listed here at any vendor you prefer, but many of these items are available at vilros.com.
Item #5: Raspberry Pi 4 with 4GB memory (target embedded device):
https://vilros.com/products/raspberry-pi-4-4gb-ram?src=raspberrypi
-
Item #6: 5V / 3A Power Adapter for the Raspberry Pi 4B:
-
Item #7: 32 GB SanDisk Micro SD Card with Micro SD-SD Adapter:
*NOTE: The description says that 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:
SanDisk Other for Micro USB Compatible Phones:
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.
Item #8: 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
Item #9: 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):
Cable: 5 FT SVGA VGA Monitor Male to Male Extension Cable:
https://www.amazon.com/SVGA-Monitor-Male-Extension-Cable/dp/B00CMM5WHU
- Please visit the Canvas Technical Requirements site to make sure your system meets the minimum specifications required.
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.