ARM BareMetal Scheduler(RTOS functionality)and device driver
- IT & Software
- Mar 02, 2025

ARM BareMetal Scheduler(RTOS functionality)and device driver, available at $54.99, has an average rating of 4.2, with 55 lectures, 5 quizzes, based on 10 reviews, and has 94 subscribers.
You will learn about End-to-end embedded firmware development flow STM32 device Driver ARM processor set-up, interrupts and context switch Writting Linker scripts Writting start-up ARM assembly code Embedded C programming basics Interfacing with Microcontroller peripherals GNU Debugger (GDB) ARM microcontroller internals overview RTOS concepts This course is ideal for individuals who are Beginner embedded systems engineer or Firmware developer or Hobby coders or DIYers It is particularly useful for Beginner embedded systems engineer or Firmware developer or Hobby coders or DIYers.
Enroll now: ARM BareMetal Scheduler(RTOS functionality)and device driver
Summary
Title: ARM BareMetal Scheduler(RTOS functionality)and device driver
Price: $54.99
Average Rating: 4.2
Number of Lectures: 55
Number of Quizzes: 5
Number of Published Lectures: 55
Number of Published Quizzes: 4
Number of Curriculum Items: 60
Number of Published Curriculum Objects: 59
Original Price: $27.99
Quality Status: approved
Status: Live
What You Will Learn
Who Should Attend
Target Audiences
Have you ever wondered how a few snippets of characters make a silicon chunk to blink an LED?
This course will explain the ARM M4 microcontroller start-up process and will walk though Assembly and C code to bring up the microcontroller. We will code some simple drivers to blink an LED and proceed to create a simple terminal user interface (TUI) using UART. We will also build a simple task scheduler so that multiple tasks can run in a round-robin way.
This is a self contained beginner friendly approach to introduce concepts by writing simple and complete functional code that works on a Nucleo Board. This course performs hands on coding to build, flash and debug a simple functional real time baremetal code to run on STM32F446RE Nucleo Board. A prior knowledge of C is preferable.
We will learn the following as we code through this course.
Essentials
How to refer essential Reference Documents – STM32F446 Datasheet, Programming Manual and Reference Manual
Usage of opensource tools. A lot of documentation is available in public for these tools and can be used free of cost. Tool set-up is not covered here.
Elaborates ARM Microcontroller start-up process.
Code following for minimal baremetal code
Linker File
Start-up Assembly Code
Makefile
C code sections and how to prepare microcontroller to C code compiled with GCC.
Flashing with OpenOCD
Debugging and tracing code with GDB
Extending Code
Extending C code to blink LED
Extending C code to transmit and receive via UARTfor a terminal user interface.
Context switch
Overview of interrupts, interrupt vector table, Registers.
Context switch basics and Task Control Block
Coding context switch and creation and and deletion of tasks.
Software Concepts
Also uses finite state machine for Tasks.
Course Curriculum
Chapter 1: Introduction
Lecture 1: Introduction
Lecture 2: Objectives
Lecture 3: Overview
Lecture 4: Tools and Reference Materials
Chapter 2: ARM Processor Overview
Lecture 1: ARM Microcontroller Internals
Lecture 2: Microcontroller Data Flow
Lecture 3: ARM Register and Memory Model
Chapter 3: Preparing Linker Script
Lecture 1: Executable File Creating Process
Lecture 2: Linker Script Entry and Memory command
Lecture 3: Linkcer Script Sections Command
Lecture 4: Linker Script Sections Command Continues
Chapter 4: Start Up Assembly code
Lecture 1: Set up stack and vector table in Assembly
Lecture 2: Prepare the microcontroller to run C code
Lecture 3: Prepare data and bss sections of SRAM for C code
Lecture 4: Compiling Assembly Code
Chapter 5: Compilation using makefile
Lecture 1: Makefile Fundamentals
Lecture 2: Debugging an error in Makefile
Chapter 6: Flashing and Debugging Code with OpenOCD and GDB
Lecture 1: Initial C Program
Lecture 2: Flashing Firmware with OpenOCD
Lecture 3: Debugging and analyzing code execution with GDB
Lecture 4: Recap
Chapter 7: Blinking LEDs
Lecture 1: Identify LED Pin and corresponding bus
Lecture 2: Reset and Clock Control(RCC) and GPIO Registers
Lecture 3: C Header File and Preprocessor Directive
Lecture 4: GPIOA Register addresses
Lecture 5: Include C header file and populate RCC registers
Lecture 6: Populate GPIOA registers to turn on LED
Lecture 7: Debug LED Code
Lecture 8: LED Blinking with Delay and analyzing code with GDB
Chapter 8: Task Scheduling and Context Switch
Lecture 1: Task Scheduling Basics
Lecture 2: Fundamentals of Context Switch
Lecture 3: Fundamentals of Interrupts and Its role in Context Switching
Lecture 4: Steps to achieve Context Switch
Lecture 5: Updating Vector Table and creating Fault Handlers
Lecture 6: Registers for managing Interrupts
Lecture 7: Setting Interrupts and lowering PendSV Priority
Lecture 8: SysTick Initialization
Lecture 9: GDB to verify PendSV Interrupts
Lecture 10: Defining Task Control Block
Lecture 11: Context Switch in Diagram
Lecture 12: Scheduling Algorithm and Helper Functions
Lecture 13: Coding Context Switch
Lecture 14: Switching from MSP to PSP
Lecture 15: Initialize TCB and Task Stack
Lecture 16: Task Deletion
Lecture 17: GDB to analyze Context Switch
Chapter 9: Talking on UART
Lecture 1: Identify UART Pins and Bus
Lecture 2: Configure RCC and GPIO Registers
Lecture 3: Configure UART registers and initialize UART
Lecture 4: UART Print and accessing serial port
Lecture 5: Creating UART Receive functionality
Lecture 6: Terminal user Interface using UART
Chapter 10: Additional Topics
Lecture 1: Creating enhanced delay using Task status
Lecture 2: Validating Delay function using GDB
Chapter 11: Closing Remarks
Lecture 1: Thank you
Instructors

Malay Das
Software Engineer and Analog Layout and VLSI Design Engineer
Rating Distribution
Frequently Asked Questions
How long do I have access to the course materials?
You can view and review the lecture materials indefinitely, like an on-demand channel.
Can I take my courses with me wherever I go?
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don’t have an internet connection, some instructors also let their students download course lectures. That’s up to the instructor though, so make sure you get on their good side!
- Random Picks
- Popular
- Hot Reviews
- Finance for Non Finance ProfessionalsEntrepreneurs
- Internet, Web Concepts And Online Browsing For Beginners
- Fashion Brand Launch- Market Research Strategies Analysis
- How To Scale Your Facebook Ads Properly
- A Problem-Based Approach to the Go Programming Language
- Advanced Photoshop Manipulations Tutorials Bundle
- Life Insurance Annuity Ultimate Buyer’s Guide
- 3DS Max Tutorial. Learn The Art of Modelling and Animation
- 1YouTube Masterclass The Best Guide to YouTube Success
- 2Photoshop CC- Adjustement Layers, Blending Modes Masks
- 3Personal Finance
- 4SolidWorks Essential Training ( 2023 2024 )
- 5The Architecture of Oscar Niemeyer
- 6Advanced Photoshop Manipulations Tutorials Bundle
- 7Polymer Clay Jewelry Making Techniques for Beginners
- 8ZB Trading Cryptocurrency Price Action Course
- 1Linux Performance Monitoring Analysis Hands On !!
- 2Content Writing Mastery 1- Content Writing For Beginners
- 3Media Training for PrintOnline Interviews-Get Great Quotes
- 4Learn Facebook Ads from Scratch Get more Leads and Sales
- 5The Complete Digital Marketing Course Learn From Scratch
- 6C#- Start programming with C# (for complete beginners)
- 7[FREE] How to code 10 times faster with Emmet
- 8Driving Results through Data Storytelling