We may earn an affiliate commission when you visit our partners.
Course image
FastBit Embedded Brain Academy and Kiran Nayak

>> The Complete FreeRTOS Course with Programming and Debugging <<

Latest update: RTOS debugging using SEGGER SystemView Trace tools, STM32 hal. Peripheral APIs and More examples are added.

Read more

>> The Complete FreeRTOS Course with Programming and Debugging <<

Latest update: RTOS debugging using SEGGER SystemView Trace tools, STM32 hal. Peripheral APIs and More examples are added.

Subtitles(CCs) and transcripts are available for this course.

Dedicated Support team to answer Q/A

The course is designed for Beginners to Advanced audience.

Short Description:

"The Biggest objective of this course is to demystifying RTOS practically using FreeRTOS and

Development board used in this course:

If you already have an STM32 Based development board, then please continue using the same. The course uses please watch the preview videos.

Embedded Debugging and Quizzes

Debugging embedded code is really interesting and learning various debugging techniques and features are very much essential to have a good grip on embedded debugging.

Also, the course consists of various interview questions which will test your knowledge gained . .

My promise.

I will personally answer your questions about this material, either privately or in a group discussion. If you are in any way not satisfied, for any reason, you can get, No questions asked a full refund from Udemy within 30 days. But I am confident you won't need to. I stand behind this course 100% and am committed to helping you.

Learning order of FastBit Embedded Brain Academy Courses,

If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order. This is just a recommendation from the instructor for beginners.

1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)

2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(ARM Cortex M4 Processor specific)

3) Mastering Microcontroller with Embedded Driver Development(MCU1)

4) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)

5) Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL(MCU3)

6) Embedded System Design using UML State Machines(State machine)

7) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)

8) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)

9) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

10) Embedded Linux Step by Step using Beaglebone Black(Linux)

11) Linux device driver programming using Beaglebone Black(LDD1)

Enroll now

What's inside

Learning objectives

  • Understanding various rtos concepts with freertos programming and debugging
  • Learn complete step by step method to run freertos on stm32 mcus using openstm32 system workbench
  • Using stm32 standard peripheral driver apis to configure peripherals
  • Freertos task creation , deletion, scheduling using with code examples
  • Important scheduling policies of freertos scheduler
  • Freertos stack and heap management
  • Right ways of synchronizing between tasks using semaphores.
  • Right ways of synchronizing between a task and an interrupt using semaphores
  • Synchronization between multiple events and a task
  • Freertos queue management like creation, sending, receiving, blocking, etc
  • Implementing mutual exclusion between tasks using mutex services and semaphores
  • Understanding context switching with in detail code explanation
  • Understanding architecture specific codes like svc_handler, pendsv_handler, systick handler line by line
  • You will learn about kernel tick timer, its importance, the kernel tick frequency and its configuration details.
  • Understanding complete arm cortex m and freertos priority model and its configuration related informations
  • Freertos debugging using segger systemview software
  • Lots of articles which explains line by line the arm cortex m related freertos architecture specific codes
  • Low power instructions use case in freertos scenario
  • Lots of coding exercises
  • Debugging with segger software toolkit by taking snapshot and continuous mode recording
  • Show more
  • Show less

Syllabus

Overview of the course
About the instructor
Important Note
What is this course all about ??
Read more
Download Course Slides
FAQ
Note for the Students
RTOS Introduction

This lecture explains you about what exactly are RTAs , What are the myths and truths related to Real time computing and also difference between NRTAs and RTAs. 

This lecture explains about , what are Real time Operating Systems, How exactly it is different from GPOS ?

What are the trending RTOSes in the market, etc. Gives head start in to the world of RTOS. 

In this lecture we will learn the difference between RTOS and GPOS in terms of of Task Scheduling. You will come know why Task scheduling in RTOS is not like that of a GPOS. 

This lecture thoroughly explains the difference between RTOS and GPOS in terms of task switching latency and interrupt latency. you will come to know how RTOS and GPOS differ when it comes to latency. 

This lecture with cool animations explains what exactly is priority inversion and how does it matter in RTOS. 

once you watch this lecture, you will never forget what exactly is priority inversion !

This lecture gives a good head start to the world of multitasking. Understanding what exactly multitasking is a key in the world of operating system. 

IDE installation and development board
About the IDE
IDE installation(Windows)
IDE installation(Linux)
Development board used in this course
Downloading documents
Downloading and Installing FreeRTOS
Downloading FreeRTOS kernel source
Creating FreeRTOS based project for STM32 MCUs
Creating new STM32 project
Adding FreeRTOS kernel source to project
Include path settings
FreeRTOSConfig.h and other settings
Time base selection for STM32+FreeRTOS project
FreeRTOS Task Creation

In this lecture you will understand what exactly is stack, How to implement the task Handler, etc. Also you will understand the rules to write the FreeRTOS Task handler. 

FreeRTOS task creation API
Task priorities in FreeRTOS
Exercise 001 coding
Scheduling policies
Exercise 001 coding contd.
Exercise 001 testing
Behind the scene task creation

There are couple of questions to follow , please try to attempt each one of them. If you think some thing is outside the scope of what you have learnt so far. You can do a search and try to answer them or you can apply reductionist approach by eliminating other options by logical reasoning. Its fun try it !

Trace tool integration
Trace tool download
What is segger systemview software ?
Segger systemview recording modes
Segger systemview overview
Segger systemview target integration
Analyzing exercise 001 using segger trace
Analyzing cooperative scheduling trace
IDLE Task and Timer Svc Task of FreerRTOS
Idle and timer services task
FreeRTOS Scheduler
FreeRTOS scheduler
Understanding implementation of xPortStartScheduler() of port.c
FreeRTOS and ARM Cortex Mx Arch. Specific details
FreeRTOS Kernel interrupts
RTOS Tick and SysTick Timer explanation
Who configures the RTOS Tick Timer ?
What RTOS Tick ISR (SysTick ISR) does ? summary
Context switching
Introduction to context switching
Context Switching : understanding "State" of a Task
Context Switching : Task Switching out procedure with animation
Context switching : understanding pendSV handler code
Test Drive
SEGGER system view UART based recording
Segger system view continuous recording over UART
Exercise-2 LEDs and Tasks
Exercise 002
Exercise 002 implementation
Exercise 002 implementation contd.
Testing
Task states
Blocked and suspended state
FreeRTOS task delay APIs
Exercise 003
Exercise 004
FreeRTOS Task Notification
Task to task direct notification APIs
FreeRTOS Licensing model and API interface

You will Learn :

about the licensing method employed by the freertos.org. 

In this lecture lets see how exactly the freeRTOS kernel fits in , in to your project . 

Overview of FreeRTOS Memory manage, STACK and Synchronization services

In this lecture you will get a overview about the freeRTOS Memory Management. More about Memory management will be covered later in this course. This lecture just an overview. 

In this lecture you will get a overview about the freeRTOS Heap and Stack management. Also you will learn the concept of stack and heap in embedded systems with examples. 

In this lecture you will get a overview about the freeRTOS Synchronization and mutual exclusion Services. More about Synchronization and mutual exclusion Services will be covered later in this course. This lecture just an overview. 

FreeRTOS Task Deletion

A Task can be deleted. lets see how ?. You will also learn how it affects the memory consumption. 

Exercise 005
Exercise 005 implementation and testing
ARM Cortex M Interrupt Priority and FreeRTOS Task Priority
Task priority Vs hardware priority
FreeRTOS Hardware interrupt configurable items
FreeRTOS Hardware interrupt configurable items contd.
Exercise 006
Exrecise 006 contd
Exercise 006 analyzing trace
Exercise 007
Exercise 007 code explanation

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides an overview of RTOS concepts and explores its practical implementation using FreeRTOS, which is widely used in embedded systems
Covers a range of topics, from basic RTOS concepts to advanced topics like FreeRTOS task creation, deletion, and scheduling
Utilizes the STM32 microcontroller development board, which is a popular choice for embedded systems development
Provides hands-on exercises and quizzes to reinforce learning and test understanding
Taught by instructors with a proven track record in embedded systems, who bring real-world experience to the course
Covers debugging techniques using SEGGER SystemView, which is a valuable tool for embedded systems development

Save this course

Save Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging to your list so you can find it easily later:
Save

Reviews summary

Well-received hands-on freertos course

Learners say this well-received course features engaging assignments. The hands-on nature of the course featuring practical examples helps learners understand the material.
Learners felt assignments were effective.
Course material clarified with hands-on examples.
"Well explained with lots of hands-on examples..."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging with these activities:
Review and Organize Course Materials
Strengthen your understanding by reviewing and organizing your notes and course materials.
Browse courses on Note-Taking
Show steps
  • Gather all relevant notes, assignments, and quizzes.
  • Review and highlight key concepts.
  • Organize the materials into a logical structure for easy reference.
Read 'Mastering Embedded Linux Programming' by Chris Simmonds
Expand your knowledge of embedded systems by reading a comprehensive book on Embedded Linux programming.
Show steps
  • Acquire a copy of 'Mastering Embedded Linux Programming'.
  • Read through the chapters, focusing on topics relevant to the course.
  • Take notes and highlight important concepts.
Join a Study Group or Discussion Forum
Engage with fellow students in a study group or discussion forum to exchange knowledge and insights.
Show steps
  • Join or create a study group or discussion forum related to the course topic.
  • Participate actively in discussions, sharing your perspectives and asking questions.
  • Collaborate with others on projects or assignments.
Six other activities
Expand to see all activities and additional details
Show all nine activities
Practice RTOS Concepts with Code Exercises
Reinforce your understanding of RTOS concepts by attempting various code exercises.
Show steps
  • Review the provided code exercises.
  • Attempt to solve the exercises independently.
  • Compare your solutions with the provided answer key.
Explore RTOS debugging techniques
Enhance your understanding of RTOS debugging tools and techniques to effectively troubleshoot and resolve issues in embedded systems.
Show steps
  • Familiarize with the features and capabilities of SEGGER SystemView
  • Practice using SEGGER SystemView for tracing and visualizing task execution
  • Analyze system behavior, identify bottlenecks, and optimize code efficiency
Practice scheduling techniques
Reinforce knowledge on task management algorithms by testing your skills through various exercises and simulations.
Browse courses on Task Scheduling
Show steps
  • Create a series of scenarios involving multiple tasks with different priorities and dependencies
  • Simulate scheduling algorithms, such as Round-Robin, Priority-Based Preemptive Scheduling, and more
  • Analyze the execution order and task completion times under various conditions
Design and implement an RTOS-based project
Apply your knowledge of RTOS concepts and FreeRTOS by designing and implementing a project that showcases your skills in embedded system development.
Browse courses on Embedded Systems
Show steps
  • Identify a problem or application that can benefit from an RTOS
  • Design the system architecture, including task structure, communication mechanisms, and resource allocation
  • Implement the project using FreeRTOS and STM32 hardware
  • Test and debug the system to ensure proper functionality
  • Document the project, including design decisions and implementation details
Develop a Custom RTOS-Based Project
Solidify your understanding of RTOS by designing and implementing a custom project using the knowledge gained in the course.
Show steps
  • Identify a practical RTOS-based project idea.
  • Plan and design the project architecture and implementation.
  • Implement the project using the FreeRTOS or another suitable RTOS.
  • Test and debug the project to ensure its functionality.
  • Document the project and present your findings.
Mentor a Junior Student or Colleague
Strengthen your understanding of RTOS concepts by explaining them to others.
Browse courses on Mentoring
Show steps
  • Identify a junior student or colleague who needs support in understanding RTOS.
  • Share your knowledge and guide them through the concepts.
  • Provide hands-on assistance with code exercises or projects.

Career center

Learners who complete Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging will develop knowledge and skills that may be useful to these careers:
Firmware Engineer
A Firmware Engineer designs, develops, and tests firmware, which is the software that is embedded in hardware devices. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Firmware Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Computer Hardware Engineer
A Computer Hardware Engineer designs, develops, and tests computer hardware and its components, including circuit boards, microprocessors, and other electronic devices. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Computer Hardware Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Embedded Systems Engineer
An Embedded Systems Engineer designs, develops, and tests embedded systems, which are computer systems that are designed to perform a specific function within a larger system. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as an Embedded Systems Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Robotics Engineer
A Robotics Engineer designs, develops, and tests robots, which are machines that are capable of carrying out a complex series of actions autonomously or semi-autonomously. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Robotics Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Software Engineer
A Software Engineer designs, develops, and tests software applications. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Software Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Test Engineer
A Test Engineer designs, develops, and executes tests to ensure that hardware and software systems meet specifications. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Test Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Systems Engineer
A Systems Engineer designs, develops, and tests complex systems, which are composed of multiple hardware and software components. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Systems Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Technical Writer
A Technical Writer creates and maintains technical documentation, such as user manuals, white papers, and online help. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Technical Writer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Product Manager
A Product Manager plans, develops, and markets products. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Product Manager by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Quality Assurance Engineer
A Quality Assurance Engineer ensures that hardware and software systems meet quality standards. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Quality Assurance Engineer by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Project Manager
A Project Manager plans, executes, and controls projects. They may also work on the integration of hardware and software systems. This course can help build a foundation for a career as a Project Manager by providing a deep understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Sales Engineer
A Sales Engineer sells hardware and software systems. They may also work on the integration of hardware and software systems. This course may be useful for building a foundation for a career as a Sales Engineer by providing a basic understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Consultant
A Consultant provides expert advice to clients. They may also work on the integration of hardware and software systems. This course may be useful for building a foundation for a career as a Consultant by providing a basic understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Business Analyst
A Business Analyst analyzes business needs and develops solutions. They may also work on the integration of hardware and software systems. This course may be useful for building a foundation for a career as a Business Analyst by providing a basic understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.
Marketing Manager
A Marketing Manager plans and executes marketing campaigns. They may also work on the integration of hardware and software systems. This course may be useful for building a foundation for a career as a Marketing Manager by providing a basic understanding of embedded systems, real-time operating systems (RTOS), and microcontrollers.

Reading list

We've selected nine books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging.
Provides a comprehensive treatment of real-time systems design and analysis, which will be helpful for understanding the theoretical foundations of RTOS.
Offers practical recipes for using FreeRTOS, which will be helpful for applying the concepts learned in the course.
Focuses on real-time systems programming, providing a solid foundation for understanding RTOS concepts.
Provides a comprehensive introduction to embedded systems programming, covering both hardware and software aspects.
Covers the design and implementation of embedded systems, providing a good overview of the field.
Introduces embedded Linux, which popular operating system for embedded systems.
Provides a broad overview of embedded systems architecture, which will be helpful for understanding the context of RTOS in embedded systems.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging.
Microcontroller Embedded C Programming: Absolute Beginners
Most relevant
STM32Fx Microcontroller Custom Bootloader Development
Most relevant
Embedded Systems Programming on ARM Cortex-M3/M4 Processor
Most relevant
Mastering Microcontroller and Embedded Driver Development
Most relevant
ARM Cortex (STM32) Fundamentals: Building Embedded Systems
Most relevant
ARM Cortex (STM32) Deep Dive: Mastering Embedded Systems
Most relevant
Embedded Systems Essentials with Arm: Get Practical with...
Most relevant
Building Applications with RISC-V and FreeRTOS
Most relevant
Embedded Software and Hardware Architecture
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser