Build Your Own RealTime OS (RTOS) From Ground Up™ on ARM 1 (Udemy.com)
Build Your Own RealTime Operating Systems from first principles . Practice on STM32 and TIVA C boards
Created by: Israel Gbati
Last updated July 2023
What you will learn
- Build a Real-Time Operating System from Scratch
- Build Round-Robin Schedulers
- Build Cooperative Schedulers
- Build Periodic Schedulers
- Build First Come First Served Scheduler
- Build Rate Monotonic Schedulers
- Build a board support package from scratch
- Calculate the CPU Utilization of an RTOS
- Write Bare-Metal Embedded-C Code
- Write Assembly code
- Understand the OS Support Features of the Cortex-M Architecture
- Understand the Internals of an RTOS Kernel
- Be Implement to implement and explain popular scheduling algorithms
- Be able to explain the Cortex-M Architecture
- Be able to give a lecture on Real-Time Operating Systems
How it compares
Against the other 295 rated Udemy courses in Arduino on CourseDuck:
- Rating4.3 out of 5higher than 36% of them
- Reviews1,180#28 of 296 by number of reviews
- Length9.3 hourslonger than 73% of them
- Last updatedJuly 2023more recently than 51% of them
Course Description
This course teaches you how to build a Real-Time Operating Systems through intensive practice and theory. It starts by getting you excited through an introduction to the internals of a Real-Time Kernel on ARM Processors, which you shall implement yourself in code.Then we move on to learn all there is about Real-Time Operating Systems, their various parts, how they work and then we finally build our own Real-Time Operating System exploring different scheduling algorithms and Inter-Thread communication tools.
At the end of this course you should be able to build your own Real-Time Operating System from scratch, give your own lecture on Real-Time Operating Systems, be able to build a Round-Robin Scheduler, be able to build a Periodic Scheduler, be able to calculate the CPU utilization of your RTOS, be able to build an OS Kernel etc. Please see the course curriculum section to find out all the amazing content awaiting you.
Instructor Details
- 4.3 Rating
1,180 Reviews
Israel Gbati
Author of Bare-Metal Embedded C Programming: Develop High-Performance Embedded Systems with C for Arm Microcontrollers.
With extensive experience in embedded firmware development, I specialize in real-time systems, low-level programming, medical device architecture, embedded signal processing, and embedded AI. My professional journey has been centered around Arm Cortex-Microcontrollers, delivering robust solutions used in cutting-edge industries.
Passionate about simplifying complex concepts.
More courses by Israel Gbati
Embedded Systems Bare-Metal Programming Ground Up™ (STM32) (2023)
4.6 (3,916 Reviews)
Provider: Udemy
Time: 24.6h
$99.99
x86 Assembly Language Programming From Ground Up™ (2025)
4.6 (1,715 Reviews)
Provider: Udemy
Time: 14.1h
$10.99
FreeRTOS From Ground Up™ on ARM Processors (REVISED) (2023)
4.4 (994 Reviews)
Provider: Udemy
Time: 23.5h
$69.99
Introduction to ARM Cortex-M Assembly Programming (FREE) (2020)
4.4 (967 Reviews)
Provider: Udemy
Time: 4.2h
Free
ARM Cortex-M : Modular Embedded Systems Design (FREE!) (2019)
4.5 (935 Reviews)
Provider: Udemy
Time: 7.6h
Free
Bluetooth Low Energy (BLE) From Ground Up™ (2023)
4.3 (891 Reviews)
Provider: Udemy
Time: 15.5h
$74.99
More Arduino courses
Learn to Build a Computer (PC) in 2026 - all types!
4.9 (245 Reviews)
Provider: Udemy
Time: 6.1h
$74.99
Raspberry Pi For Beginners - 2026 Complete Course
4.8 (3,105 Reviews)
Provider: Udemy
Time: 10.6h
$89.99
Ultimate Guide to Raspberry Pi : Tips, Tricks and Hacks (2023)
4.8 (2,363 Reviews)
Provider: Udemy
Time: 5.2h
$69.99
Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL (MCU3) (2026)
4.8 (487 Reviews)
Provider: Udemy
Time: 8.1h
$79.99
Arduino Step by Step: Getting Started (2024)
4.7 (8,714 Reviews)
Provider: Udemy
Time: 21.4h
$159.99
Reviews
By Sanjeet Malawade on 4/15/2026
I appreciate the effort that has gone into creating this course, but the explanations feel unclear and the overall structure isn’t always easy to follow, especially in terms of understanding the sequence of steps and the reasoning behind them. Some sections seem to move quickly over important code concepts, while spending more time on simpler details. It might be helpful to include more in-depth explanations of the code, possibly supported by diagrams or flowcharts, to make the learning process smoother.
By Ha Viet Hung on 11/23/2025
From zero to (nearly) hero in understanding basic concept of a Real Time system on MCU like how stack saved and restore, how context switching, how semaphore lock the system resources for current task. Excellent course!
By Charles Lowe on 4/25/2025
I really liked the course and I thought that most of the content was covered pretty thoroughly. The only issue I ran into was the implementation portion of the code in assembly. Not that I did not understand the assembly instructions, but I did not think there was enough detail as to why certain instructions were used. Otherwise, the course was easy enough to keep up with and I was able to complete all the assignments.
By Aleks Vinogradov on 11/21/2023
Great content Now I have a base for experiments and understanding how it works. Well...not fully, but it has just begun. I need to understand the memory management and a lot of other things. Hopefully Israel has this explained in the other courses :)
By George Calin on 6/28/2023
Sure thing, Israel Gbati is one of the best authors on Udemy when it comes to bare-metal training. The concepts presented in this course are well structured, although it has to be mentioned that one needs an appropriate level of command in assembly language for ARM to get complete use out of it. So, while the concepts of Task schedulers are well introduced up to some point, I would rather recommend going through assembly language beforehand. Otherwise, it gets you typing blindly. As a suggestion to the author, I would add a learning plan in the description of each course from his bare-metal series to provide context. Something like a Learning Path through all the available courses in the series, so that the student does not get lost along the way.
By Tsung-Han Wu on 2/16/2019
To be clear, before taking this course, I already have some experience of bare-metal C programming on some embedded development board. therefore the assembly part is useless for me. I use GNU GCC toolchain, in this course the instructor used ARM Keil uVision, which can only run on Windows OS and uVision applies ARM compiler (armcc). I prefer GNU GCC toolchain, the assembly coding style on ARM Compiler is somehow different from GNU GCC Compiler. I also think GNU GCC Compiler is more appropriate than ARM Compiler in terms of self-learning because you can find out more discussion on the internet related to GNU GCC usage and the corresponding assembly samples. the other downside for me is that the instructor is NOT responsive in the questions most of students asked, also there are only a few people asked questions in the forum, almost no discussion among students, that is pity . The most important part : the TCB / scheduler / semaphore part are well-explained, It is a good way to start with for the people who hasn't implemented their own real-time application. This course could be better if more sophisticated / complicated real-world applications can be introduced (e.g. home automation, weather station ..... etc ) , that will also be great for student thinking their next steps if they are targeting embedded software jobs .
By Stanislav Pankevich on 2/6/2019
I found this course very useful and I managed to fill some of the gaps in my knowledge of how the internals of RTOS work. I was using the STM32F407G-DISC1 board and I have learned a lot of things by writing every exercise myself as I followed through the course. My system is macOS and I didn't use the Keil µVision IDE as was recommended by the author. Instead, I managed to do everything using command line and embedded GCC / GDB. I have tried to contribute what I learned back by asking questions and posting useful findings on the forums, including sharing the exercises written in GCC assembly syntax as opposed to the ARM syntax which is used in the videos. One thing that surprised me a little bit was that closer to the end of the course the author started using an oscilloscope and an LED screen device which was confusing given that before that all of the exercises were perfectly doable without these devices. Without these devices at hand, I had to create simplified or slightly alternative versions of the exercises shown by the author, and most of the time I proved that my code worked as expected by stepping over it with GDB or using a 'bkpt' instruction. Another issue that affects all of the videos in this course is an inconsistent coding style. Examples: writing every line with a different, often random, indentation or writing code with spaces on one line, and writing code without spaces on the next line. I think this can turn away more experienced programmers who are used to clean coding guidelines and also teach less experienced programmers some bad practices. This course, however, was about RTOS systems so I simply ignored all of these issues. I am going to publish my course work on GitHub in a few days here: github/stanislaw/CourseWork-Build-Your-Own-RTOS-on-ARM. I can recommend this course and I am definitely going to attend the second part of this course here on Udemy.
By Cassiano Campes on 12/7/2018
This course is what I really expected in terms of MCU and RTOS development. 1 - The course gives good insights into MCU development 2 - The explanations give a great overview of how RTOS are developed 3 - Instructor has a really deep knowledge in the subject PROS: Some may think that the video is not fancy, with beautiful animations. However, the instructor goes directly to the point. Spending time with fancy video animations is not what I am looking for, I am looking for the contents that are relevant, and this course provides what I really need. As the course is presented, we can feel that the instructor has strong experience in the embedded systems development. The instructor's accent is British, I do not see a problem in understanding it, although other reviews may have complained in others review, I do not see any problem. The course is for beginners to advanced users I would say. It is important to have one of the development boards to learn in deeper details. CONS: I just disagree a bit with the course flow, in the beginning, parts (introductory) there are some video sections that do not connect well. This is not a problem, but, I just got a little uncomfortable during some introductory videos. TAKE AWAY MESSAGE: This course is a good reference for a lifetime. I have gone back several times to watch again some specific parts that I needed, and still, it is very helpful.
By Stonamuer on 12/4/2018
This is a very ambitious course. There is so much content packed in this course. It is straight to the point , no time is wasted trying to prolong the length of the course. I was able to successfully compile and test all the real time kernels we developed in the course. The part about writing board support packages was also very helpful . Personally, I will say it is one of the best courses I have bought on the udemy platform. Good work teacher.
By Kronos on 12/4/2018
I am familiar with RTOS but never knew the inner workings of operating systems. This course taught me how to build my own realtime operating system for my final year thesis. I highly recommend this course if you have any interest in operating systems at all. Udemy is changing the world with courses like this under $20. I definitely got more than I paid for. Thank you udemy.
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100












