Advanced Embedded Systems Bare-Metal Programming Ground Up™

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

   Watch Promo

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

Frequently Asked Questions

When does the course start and finish?
The course starts now and never ends! It is a completely self-paced online course - you decide when you start and when you finish.
How long do I have access to the course?
How does lifetime access sound? After enrolling, you have unlimited access to this course for as long as you like - across any and all devices you own.
What if I am unhappy with the course?
We would never want you to be unhappy! If you are unsatisfied with your purchase, contact us in the first 30 days and we will give you a full refund.
Do I get a certificate?
Yes, after a successful completion of the course.

Course Curriculum

  Developing Bare-Metal ADC Timer Trigger DMA Drivers
Available in days
days after you enroll
  Developing Bare-Metal Windowed Watchdog (IWDG) Timer Drivers
Available in days
days after you enroll
Available in days
days after you enroll

Your Instructor


EmbeddedExpertIO represents a vibrant collective dedicated to the mastery of sophisticated embedded systems software development for professionals.

EmbeddedExpertIO stands as a premier source of tailored embedded systems development courses, catering to individuals and enterprises seeking to hone or acquire embedded firmware programming expertise. Our extensive course selections encompass beginner to advanced levels, addressing diverse facets of embedded systems development, such as WiFi, STM32, IoT systems design, memory safeguarding, and beyond.

Our core objective is to equip individuals and organizations with the indispensable skills to thrive in the swiftly evolving embedded systems sector. We achieve this by providing immersive, hands-on education under the guidance of seasoned industry specialists. Our ambition is to emerge as the favored learning platform for embedded systems development professionals across the globe.