Learn FreeRTOS from scratch
What you'll learn
- Understand RTOS Concepts in FreeRTOS context
- Working knowledge of FreeRTOS APIs
- Understand of FreeRTOS Environment and Coding Style
- Use Hardware Peripherals in FreeRTOS Application Development
- Apply for Job in Embedded Industry
- Basic C Programming
- Some familiarity with Embedded Systems
- Hardware: Any STM32 Board
Welcome to this FREE course on FreeRTOS. This Course will help you getting started with FreeRTOS. It includes hands-on practice on STM32. All Software Tools used in this course are freely available. All you need is a STM32 Board!
This course will teach you the best way to work with FreeRTOS. Using STM32CubeMX design interface, we will generate basic code for our Application Project. Then we will use SW4STM32 IDE to write, compile and debug our application code. We will also learn how to visualize the trace output.
Why this Course?
The basic aim of this course was to remove the knowledge-and-practice gap between engineering universities and embedded industry by providing interested students with the opportunity to Learn about RTOS and practice it on some hardware, for FREE!
Course Curriculum explained
The first Section gives you an introduction to the course. Then we will get all required tools, software and hardware in section two and will create and run a Hello World Project to make sure we have everything we need setup.
Next four section, Section 3-6, introduces and explains to you different RTOS concepts in context of FreeRTOS. These section introduces different APIs provided by freeRTOS to implement those concepts. These section include a variety of application to work on those APIs explaining how to actually programming them, showing there output and verifying the result by visualizing the trace output.
Now that we you have a understanding of different APIs provided by freeRTOS, Its time to move forward and start interacting with hardware. For this purpose, following sections will be included shortly:
- Section 7: Interfacing Hardware (INCLUDED!!!)
- Section 8: Serial Communication (coming soon)
- Section 9: I2C Communication (coming soon)
- Section 10: SPI Communication (coming soon)
- Section 11: Using Watchdog timer (coming soon)
Now, we have a good knowledge of RTOS concepts in context of FreeRTOS and writing application for freeRTOS. It time for us to look at "freeRTOS" itself. Following Section will be included to familiarize ourselves with freeRTOS
- Section 12: Writing Code, the "freeRTOS" Style (coming soon)
- Section 13: freeRTOSConfig.h (coming soon)
- Section 14: freeRTOS Scheduling (coming soon)
Now, that we have dealt with the basic stuff one-by-one, let rap this course up by creating a Final Project, that will include all that we have previously learned.
- Section 15: A Practical Problem: Elevator Management System (coming soon)
About Course Content:
Most of the content i.e. Section 1,2, 7-15, of this course is written and produced by me for this course. However, Some of the concepts in Sections 3-6 are taken from different sources specially the from book “Using the FreeRTOS Real Time Kernel - A Practical Guide - Cortex-M3 Edition” by Richard Barry.
To follow along this course all you need is a STM32 Board! I am using STM32F103RbT6. You can use any STM32 board you want. When ever changes are required to be made, it's mentioned explicitly, both in lecture videos and code also.
Who this course is for:
- Any one interested in learning FreeRTOS
- Fresh Graduates looking to join Embedded Industry
- Engineering Students
- Software Development Engineers
- Embedded Engineers
- IoT Developers
I completed my Electrical Engineering from SEECS, NUST. I love programming. I have a lot of experience in IoT. I have some experience in Web Development and Game Development. For last 4 Years, I taught in Many different workshop organized by different societies at my University on Arduino, STM32 and nodeMCU etc.
Most of what I learned, like you, was online. i.e. Mostly Free. I always wanted to give back to the community. Here, I am accomplishing this goal by creating complete courses on what I learned and make this learning process easy for other.
Like all rest of Humanity, I am also imperfect. I am trying my best to present the error-free content to all of my fellow learners but sometimes, there might be some mistake. I am Sorry If something like that happens to you. Please correct me if necessary or at-lest point out whats the error and I will be very thankful to you.