can't find the right course?
contact us for customized training

see our course feedback

    Developing Embedded Systems with FreeRTOS (PC359)

    SynopsisAs consumer electronic devices continue to flood the market, their applications are moving from single function to multi-function smart devices. As a result, simple hard-coded embedded software is no longer sufficient to cater to market demand and the use of a Real-Time Operating System (RTOS) for even simple applications is becoming prevalent.

    What You Will LearnBy attending this course, you will learn the basics of an RTOS, how it works and how to apply it to an application. The case study RTOS is a market-leading product called FreeRTOS that supports 27 popular embedded architectures.

    Who Should AttendBoth hardware and software engineers who are working closely in the embedded space. Anyone who is interested to learn more about Real-Time Operating Systems.

    PrerequisiteC knowledge, general computer architecture, some embedded-systems experience, basic assembly.

    Course MethodologyThis course is presented classroom style, with lab exercises/demonstrations.

    Course Duration3 days, 9am - 5pm

    Course StructureDay1
    What is a Real-Time Operating System (RTOS)?

    • Operating System: overview.
    • Real-Time: overview and justifications.
    • Hard vs Soft: overview and applications.
    What is a task?
    • Tasks: overview, states, transitions, priorities etc.
    • Kernel: Cyclic-executive and multi-tasking.
    What is an interrupt?
    • Interrupt response: overview of each stage of an interrupt response.
    • Interrupt handling: how to handle interrupts, multiple interrupts, etc.
    What is context switching?
    • Machine context: what is it?
    • Context-switching: how does it work?
    • Kernel classifications: Co-operative/Pre-emptive.
    How do we perform scheduling?
    • Priorities: static vs dynamic.
    • Scheduling: static vs dynamic.
    • Determinism: deterministic and non-deterministic.
    Lab #1
    • Installing and setting up the tool-chain.
    • Overview of the FreeRTOS files and directory structure.
    • Building FreeRTOS demo.

    Day 2
    What is FreeRTOS?
    • FreeRTOS: overview, architecture and features.
    • Licensing: GPL vs FreeRTOS licensing.
    Inter-task communication
    • Queues: overview, how to use.
    • Semaphores: overview, how to write and use.
    • Mutexes: as a binary semaphore.
    Cooperative Kernel
    • Overview: what it is and applications.
    • FreeRTOS as a cooperative kernel.
    Lab #2
    • Building FreeRTOS cooperative kernel.
    • Running multiple tasks – transmit/receive tasks.
    • Inter-task communication – sizing the producer-consumer problem.

    Day 3
    Resource sharing
    • Critial section: identification and demarkation.
    • Using mutexes: locking/releasing resources.
    • Deadlocks: avoidance strategies.
    • Priority inversion: avoidance strategies.
    Memory management
    • Overview: understanding how the OS handles memory.
    • FreeRTOS memory allocation schemes.
    Preemptive Kernel
    • Overview: what it is and applications.
    • FreeRTOS as a preemptive kernel.
    Lab #3
    • Building the FreeRTOS pre-emptive kernel.
    • Resource sharing – I/O devices and memory.
    • Mini-project – Web-server example.
    Advance topics/discussion.
    • FreeRTOS memory foot-print.
    • FreeRTOS-MPU
    • FreeRTOS simulator

    Upcoming Program Registration

    Upcoming Program Registration

      No public course is currently scheduled.


    Can't find the course in your country? Why not fly to our locations for training? It's more affordable than you think.. details