Use of FreeRTOS in Teaching Real-time Embedded Systems Design Course
Nannan He, Han-Way Huang · 2020
Abstract Use of FreeRTOS in Teaching Real-time Embedded Systems Design CourseAbstractThis paper presents our experience on teaching the course of "Real-time Embedded SystemsDesign" using the free, open source Real-time Operating System (RTOS) called FreeRTOS.It introduces the objectives, student outcomes and instruction approach employed in this course.The focus is to describe the details of utilizing FreeRTOS as a case study of RTOS and its usagein the lab sessions from exercises preparation, lab equipment setup and implementation.This real-time embedded systems design course is for senior and graduate electrical andcomputer engineering major students. It focuses on teaching students real-time systems designand applications from the practitioner's point of view, as compared with many graduate-levelreal-time computing courses which target at the research and theoretical topics. This course notonly includes RTOS relevant contents, such as multi-task scheduling, system services, andresource policies; but also covers some application issues for developing real-time systems, suchas microcontroller hardware, requirement analysis, performance analysis and verification. Aftertaking this course, students are expected to demonstrate the ability of correctly defining anddesigning real-time systems, and the ability of basic real-time application development. Activelearning and hands-on learning are the fundamental teaching approaches applied to this real-timesystems design course.FreeRTOS is an open source real-time kernel/scheduler designed to be small enough to run on amicrocontroller. It provides the real time scheduling functionality, inter-task communication,timing analysis and synchronization primitives for teaching RTOS. It also offers the richexample projects as the bases for developing embedded real-time systems. FreeRTOS supports alarge number of underlying microcontroller architectures including advanced ARM CortexTM-Mx series, and has become the standard RTOS for microcontrollers. For instance, Atmel Studio(v6.1), a free embedded development tool from Atmel, has included FreeRTOS into its AtmelSoftware Framework as one of software libraries. The FreeRTOS kernel is responsible for timingand provides the time-related APIs. This allows the structure of the application code to besimpler. As a result, complex embedded real-time applications can be efficiently built to meettheir real-time processing deadlines on top of FreeRTOS. In this course, FreeRTOS is applied toconducting experiments with multitask scheduling algorithms and real-time interfacing withmicrocontrollers for all our lab sessions and course projects. The lab assignment covers fivebasic RTOS components: Task management, Queue management, Interrupt management,Resource management and Memory management. Each component includes three to eightexercises. Our experiences demonstrate that FreeRTOS is a richly featured, cost efficient andeasy to use software platform for teaching real-time systems design and developing themicrocontroller-based embedded real-time applications.