Instructor

Mojtaba Bagherzadeh, Goodwin Hall 624, mojtaba at cs dot queensu dot ca

Time and place

Day Start Time End Time Component Building Room
Monday 9:00 9:50 Classroom Sawyer Module 4 3411
Tuesday 13:40 14:30 Classroom Sawyer Module 4 3411
Tuesday 14:40 16:30 Lab Sawyer Module 1 4126
Friday 14:40 15:30 Classroom Sawyer Module 4 3412

General Description

The main objectives of the course are to provide for the students:

  • an introduction to specifications, analysis, design, and development techniques for real-time software;
  • a base foundation for the real-time operating system specifically FreeRTOS
  • a base foundation for modeling and development real-time systems using the UML-RT modeling language;
  • practical experience with a Papyrus-RT, Arduino boards, FreeRTOS; and
  • an introduction to the theory of scheduling for multitasking systems in a single processor environment.

By the end of the course, the students will be able to analyze the requirements for a basic real-time system and design and implement a solution using FreeRTOS or UML-RT. They should also be able to determine the schedulability of a simple multitasking system.

Teaching Method

Course content will be presented to the students during class delivered lectures augmented by exercises and laboratories.

Course notes and presentations be published in advance. The goal is to minimize as much as possible the taking of notes in order for the students to concentrate on understanding the content that is being taught. Note however that the documentation provides support to the theory being instructed and does not replace the lectures, you are therefore expected to supplement the material you are provided with your own note taking.

I expect that you will activly participate, which means that you arrive in class with your notes, something to write with and your course text during lab period.

Attendance

As indicated in the CadWins, attendance to classes is compulsory for all officer-cadets. Civilian students and grad students are encouraged to attend classes and must be present to labs. If you must absent yourself for a medical or other kind of appointment, you are required to ask and obtain permission from the instructor prior to the appointment. If you happen to get sick, do your utmost to inform the instructor in the briefest of delays.

Academic Integrity

Infractions to academic integrity; including cheating, plagiarism and any other kinds of university ethics violations can lead to sanctions from a written warning to expulsion from RMC. The RMC rules concerning studies, section 4, define plagiarism as follows: “Using the work of others and attempting to present it as original thought, prose or work. This includes allegations that are false concerning data or references, and the abusive use of quotation marks or the mention of a source” and it also includes: “the omission to recognize adequately the collaboration or outside help”. You should familiarize yourself with the rules with respect to academic misconduct available in section 4 of the Academic Policy Directive No. 1 on Academic Integrity.

Evaluation

Item Weight
Laboratories 25%
Midterm 20%
Quizzes 10%
Final Exam 45%

Note: If you have not completed all the laboratory work, you will not be allowed to write the final exam.

Laboratories

Laboratories must be completed by teams of two people. Each team must hand-in a quality lab report. The report will be presented in a prescribed format. It will include a description of the configuration/establishment of the laboratory, the code and/or data, as well as a general discussion of the conduct of the laboratory and observations, and any other pertinent discussion. Each diagram or elaboration of code will be well presented.

Material and Refrences

Programming and Design of Real-Time Embedded systems

Burns, A., & Wellings, A. (2009). Real-Time Systems and Programming Languages: Ada, Real-Time Java and C/Real-Time POSIX. Addison-Wesley Educational Publishers Inc.

Harder, D. W., Zarnett, J., Montaghami V., & Giannikouris A. (2016). A practical introduction to real-time systems for undergraduate engineering. University of Waterloo.

Marwedel, P. (2011). Embedded System Foundations of Cyber-Physical Systems.

Modeling of Real-Time Embedded systems

Rivet, C, Posse, E, & Toolan, D. (2017). Papyrus-RT/User/User Guide/Tutorials. Eclipse Foundation.

Selic, B., Gullekson, G., & Ward, P. (1994). Real-time object oriented modeling and design.

Douglass, B. P. (1999). Doing hard time: developing real-time systems with UML, objects, frameworks, and patterns (Vol. 1). Addison-Wesley Professional.

DDouglass, B. P. (2003). Real-time design patterns: robust scalable architecture for real-time systems (Vol. 1). Addison-Wesley Professional.

FreeRTOS

Barry, R. (2016). Mastering the FreeRTOS Real Time Kernel. Real Time Engineers ltd.

Barry, R. (2016). FreeRTOS V9.0.0 Reference Manual. Real Time Engineers ltd.

Thanks to

This course has evolved throughout the years and is the result of work from many people three of whom deserving special recognition:

Alain Beaulieu, PhD
M. Ron Smith, PhD
LCdr (ret) Dean Morrissey