Skip to content
UdemySoftware DevelopmentPaid courseIntermediate levelCertificate

Advanced Embedded Systems Bare-Metal Programming Ground Up™ (Udemy.com)

No libraries : RTC, IWDG, WWDG, DMA-ADC, DMA-I2C, DMA-SPI, DMA-UART, DMA-PWM, Standby, Wakeup

Created by: BHM Engineering Academy

Last updated December 2025

icon
What you will learn

  • Write advanced firmware using only bare-metal embedded-c
  • Write bare-metal drivers for DMA Memory-to-Memory transfer
  • Write DMA ADC drivers using bare-metal embedded-c
  • Write DMA PWM drivers using bare-metal embedded-c
  • Write DMA UART drivers using bare-metal embedded-c
  • Write DMA SPI drivers using bare-metal embedded-c
  • Write DMA I2C drivers using bare-metal embedded-c
  • Develop proficiency in your embedded development skills and confidently take the next steps
  • Write Realtime Clock (RTC) drivers using bare-metal embedded-c
  • Write Watchdog Timer (IWDG and WWDG) drivers using bare-metal embedded-c
  • Write bare-metal embedded-c drivers for entering Standby mode and Waking up
  • Use the debugger effectively to analyze and resolve any bugs
  • Understand and write every single line of code yourself- no Copy/Paste

How it compares

Against the other 518 rated Udemy courses in Software Development on CourseDuck:

  • Rating4.3 out of 5higher than 17% of them
  • Reviews251#310 of 519 by number of reviews
  • Length22.6 hourslonger than 87% of them
  • Last updatedDecember 2025more recently than 54% of them

icon
Course Description

Are you tired of Copying and Pasting code you don't understand?


Here’s an overview of what you’re getting in this advanced level course...

  • Developing bare-metal DMA Drivers:

    This course completely demystifies the Direct Memory Access (DMA) peripheral. Over 50% of the course is spent on this topic, so that by the end of this course you would have mastered the DMA peripheral.


    We shall thoroughly look at developing the following bare-metal DMA drivers.

        - Bare-Metal DMA Memory-to-Memory Transfer Driver

        - Bare-Metal ADC DMA Regular Conversion Driver

        - Bare-Metal ADC DMA Timer Triggered Conversion Driver

        - Bare-Metal UART RX/TX DMA Driver

        - Bare-Metal SPI RX/TX DMA Driver

        - Bare-Metal I2C  RX/TX DMA Driver

        - Bare-Metal PWM DMA Driver


  • Developing bare-metal RTC Drivers:

    The Realtime Clock (RTC) peripheral is another advanced peripheral demystified in this course. We shall study the theory of realtime clocks, take a look at the capabilies of the realtime clock on our microcontroller and then develop the following drivers for the realtime clock.


        - Bare-Metal RTC Calendar Driver

        - Bare-Metal RTC Alarm Driver

        - Bare-Metal RTC Timestamp Driver

        - Bare-Metal RTC Tamper Detection Driver


  • Developing bare-metal Watchdog Timer Drivers:

    Watchdog Timers are an essential component of any robust embedded device. In my opinion, no embedded device should be released onto the market without the implementation of an Independent Watchdog Timer (IWDG). You will understand why I hold this opinion in the course.

        In this course we shall develop the following Watchdog Timer drivers:

            - Bare-Metal Independent Watchdog (IWDG) Timer Driver

            - Bare-Metal Windowed Watchdog (WWDG) Timer Driver


  • Working with Standby Mode and Wakeup:

    Knowing how to put your embedded devics into Low-power mode and coming out of it will greatly improve your ability to developer power efficient embedded solutions. This course will teach you how to put your device into Standby mode and come out of it using different methods.


    Specifically, we shall develop the following drivers:


       - Bare-Metal Standby Mode and Wakeup Pin  Driver

       - Bare-Metal Standby Mode and RTC Wakeup Timer Driver


  • The Art of Debugging :

    Knowing how to properly debug your firmware will save you lots of time and money, and may even prolong your life because of the level of frustration and stress you will avoid.


    In this course you shall grasp the theoretical aspects of debugging, understand the various types of debugging such functional debugging and performance debugging, and learn the various tools and methods used in different scenarios.

       Some of the techniques we you will master include:

            - Methods of identifying the cause of HardFault

            - Catching anomalous results

           - Measuring execution time of an algorithm using a Timer

            - Measuring execution time of an algorithm using a Logic Analyzer

            - Working with arrays dumps

            - Debugging techniques for Timers


With a programming based approach, this course is designed to give you a solid foundation in bare-metal firmware development for  ARM-based microcontrollers . The goal of this course is to teach you how to navigate the microcontroller reference manual and datasheet to extract the right  information to professionally  build peripheral drivers and firmware. To achieve this goal, no libraries are used in this course, purely bare-metal embedded-c and register manipulations.

Still keeping it simple, this course comes in different ARM Cortex-M development boards  so that students can put the techniques to practice using an ARM Cortex-M development board of their choice. This version of the course uses the STMicroelectronics  STM32F4-NUCLEO which has an ARM Cortex-M4 microcontoller.


This is the Advanced level course for the world famous Embedded Systems Bare-Metal Programming Ground Up™ (STM32). You have to take the Embedded Systems Bare-Metal Programming Ground Up™ (STM32) before taking this course


So with that understood, let me tell you…


                                                                                     Exactly What You’re Getting

This is dramatically different from any course you have ever taken because it’s more of a professional hands-on “field guide” to stm32 bare metal firmware development.
The reason why is because there’s no fluff or filler. It immediately gets down to the actual subject, showing you exactly what to do, how to do it, and why.

Plus, it’s easy.

And you’ll immediately “get” the entire mythology I personally use to build firmware for consumer devices in my professional life.

                                                                     

                                                                         It's About MORE Than Just Getting the Code to Work

See, this course will change your professional life forever. Here is what one student had to say about the Embedded Systems Bare-Metal Programming Ground Up™ (STM32)  course :


  "I would suggest this course for all the beginners. The concepts have been covered in the right sequence.And also the best part of this lecture series is getting to know how to explore the reference manual and datasheets."

Here is what another student had to say :

icon
Udemy Discount

The discount is applied through our link. Open the course from here and Udemy's current promotional price is applied at checkout on most courses, no code to type.

Some courses are excluded from Udemy's promotions. If the price does not drop, clear your browser cookies and use the button again.

icon
Instructor Details

BHM Engineering Academy

Bohobiom Engineering  is a  21st century Computer Engineering online Academy based in London U.K.

We have experienced instructors in the areas of Assembly Programming, Hardware Engineering, Signal & Image Processing, Embedded Firmware Development, Deep Learning and other high demand 21st century skills.

As of today we have trained over 35,000 happy pupils. Please take a look at our available courses and message us if you have any questions.


icon
More courses by BHM Engineering Academy

$69.99

$69.99

$11.99

$11.99

$11.99

$11.99

icon
More Software Development courses

$10.99

$109.99

$19.99

$19.99

$94.99

$94.99

icon
Reviews

4.3

251 ratings on Udemy

Select a bar to show only those reviews.Select the bar again to show every rating.

By Michael Morozov on 6/25/2025

Promising start, but after some point basically nothing is taught. The instructor teaches you how to find some bits and the datasheet, and from then on its rinse and repeat. i.e. He reads some theory about a peripheral; gives you a cookbook of how to enable that peripheral, without explaining why he configures it in that specific method, and spends more than half the video looking at specific bit locations, THAT ARE ALREADY CONFIGURED FOR YOU IN THE CMSIS!! The written code is very univeristy level, i.e. code that will probably get you fired if you use it in a professional setting. Multiple times the instructor wrote very simple bugs that I have even identified 5 minutes before he debugged it (confusing true/false, forgetting to enable a peripheral). Things that could have been edited out. The audio is quite poor quality, and changes between 10% and 100% percent volume. For this asking price of a course, I would expect more attention for these details...

By Luis José Mora Díaz on 2/22/2025

It is a wonderful course, i really like the explanations of every line of the code. Only one thing i would suggest to improve is the upload of the codes to a platform like GitHub, because in my case i'm using a STM32F103C6T6 and i have to try to make the code to work on this chip. When i watched a lesson, if some errors appears, i have to view all te video again to check the code structure, i would appreciate if the code is uploaded so i can check my errors faster.

By Balanakakamal v on 1/13/2025

The Instructor Clearly Explains the DMA and Register Programming For UART. After Learning this,You will be expert in DMA Controller.

By Tomas Lillqvist on 12/30/2024

I recommend taking this course on a bigger screen, not mobile screen. On Mobile the details are difficult to see and the teacher doesn't describe everything being done in words. Sometimes he says ”like this” by which he refers to what is happening on screen with a small mouse pointer. In my opinion it would help if the teacher would repeat the verbal instructions a bit more.

By William DeHaven on 11/5/2024

So far so good. I have experience with microcontroller bare metal programming and am taking this course as a refresher before starting some ham radio projects.

By Derrick Smith on 9/4/2024

Course is going very well thus far. I learned something much easier with ITM than from other udemy instructors. Israel make is so much easier to perform.

By Karl Hörmann on 8/24/2024

Yes, the corse is very informative. Only the orientation is sometimes difficult to follow up when the author says "over here". It is unclear from where to start to goto "over here" which target to come to is ment.

By Nishikant Bilaskar on 5/12/2024

I think you will master DMA after completion of this course. I suggest other , before completing this course, complete pointer related course in c.

By Armin Jahanshahi on 11/14/2023

I have learned a lot from this and Israels other courses on udemy. Thank you for making this course! 10/10

By Tanner Moray on 8/20/2022

Ja, die Kurse von Herr Israel Gbati sind immer sehr hilfreich und gut zu verstehen.

Showing all 10 reviews on CourseDuck

Read all 251 reviews on Udemy

icon
Quality Score

No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.

Content Quality
/
Video Quality
/
Qualified Instructor
/
Course Pace
/
Course Depth & Coverage
/

Overall Score : 86 / 100