Save for later

Embedded Systems Bare-Metal Programming Ground Up™ (STM32)

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

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.

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 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 :

    "Extremly helpful to get to understand the uC programming deeper. For me it is much easier from now to develop code because I undertstand the base behind, so I'm more confident and more experienced to develop and debug the code. Really, this course is very useful to link the hardware knowledge with the coding skills. This fills the gap between them. Thanks for it. :)"

A third student :

"I am a professional semiconductor chipset application engineer with 30 years in global embedded product design in system applications. I can say this teacher is very straight forward by sharing his many years knowledge to the students with his true heart. Yes. I love his teaching pace and style. "

                                                                               Taken by 5000+ Students with 1000+ Reviews

If at least one of the following applies to you then keep reading if not then simply skip this course:

" Escape From "

  • Copying/Pasting code you don’t understand

  • Using third party libraries and header files like HAL, LL and StdPeriph

  • Experiencing bugs you don’t understand

  • Being afraid of technical documentations like the reference manual and datasheet of the chip

  • Imposter syndrome

  • " Arrive At "

  • Building every single line of code from scratch by writing to the microcontroller’s memory space directly.

  • Using No third party libraries or header files

  • Understanding and writing every single line of code yourself- no Copy/Paste

  • Using the debugger effectively to analyze and resolve any bugs

  • Developing proficiency in your embedded development skills and confidently take the next steps

  • So like I said, there’s more than just getting each piece of code to work.

    Here’s an overview of what you’re getting...

    • Analyzing the chip documentations:

      Before developing the firmware for any chip you have to learn how to read the documentation provided by the chip manufacturer.

    • Defining Peripheral address

      All components on the microcontroller have an address range. To write to a component or read from a component you need to locate its address range in the documentation and properly define the addresses in your code.

    • Creating registers from the address:

      The addresses in the address range of a component represent the registers of that component. To access these registers you have effectively typecast the addresses.

    • Understanding CMSIS:

      Cortex-Microcontroller Interface Standard (CMSIS)CMSIS is a standard developed by Arm for all Cortex-Microcontrollers. This is the standard used in professional firmware development

    But it gets better because you’re also getting…

                                                             Deep Lessons on Developing Peripheral Drivers

    You will learn how to develop bare-metal drivers for the following peripherals :

    • Analog-to-Digital Converter (ADC)

    • ​Serial Peripheral Interface (SPI)

    • Inter-Integrated Circuit (I2C)

    • Direct Memory Access (DMA)

    • Nested Vector Interrupt Controller (NVIC)

    • General Purpose Timers (TIM)

    • System Tick Timer (SysTick)

    • General Purpose Input/Output (GPIO)

                                                               Specially Designed For People Who Hate Copy/Paste

    Listen. If you don’t like “Copy/Paste” you’re not alone. I can’t stand it either. I’d literally rather have a piece of code that I wrote from scratch that doesn’t work than someone else’s working code I copied and pasted.

    And that’s why I’ve spent months designing and recording this course in which I show you how to locate every single register used and the meaning of every hexadecimal value written into the register.

    Also it comes with a money back guarantee so you have nothing to loose.

    Get Details and Enroll Now

    OpenCourser is an affiliate partner of Udemy and may earn a commission when you buy through our links.

    Get a Reminder

    Send to:
    Rating 3.9 based on 62 ratings
    Length 24.5 total hours
    Starts On Demand (Start anytime)
    Cost $16
    From Udemy
    Instructors Israel Gbati, BHM Engineering Academy
    Download Videos Only via the Udemy mobile app
    Language English
    Tags Development Software Engineering

    Get a Reminder

    Send to:

    Similar Courses

    What people are saying

    so far

    So far the course is as I expected, and I'm getting a lot out of the material.

    So far I am happy with better distinguishing the things So far it getting to just what I need.

    mine is 15inch laptop It's best course I ever heard So far we haven’t really covered anything useful for me Good idea to use 3 different vendor chipsets :) So far going good Update review as i promised.

    Read more

    reference manual

    The Course was very good,for my side i have learned a lot in reading the reference manual and how to locate registers.

    I was interested in steps of driver development The first classes about GPIO were good as an introduction and shows the importance of the reference manual.

    When introducing a new register at least he should show that on the reference manual and explain it briefly.

    The examples are nice, and I really like that Israel shows you how to navigate the data sheet/reference manuals/documentation to find information that you need.

    Read more

    not explained

    The vast majority of the register were not explained.

    You can usually figure it out with a quick look through the datasheet (he tells you were to find values), but every once in a while there is something not explained and it leaves you confused.

    baud rate

    on UART section, the lecturer don't even explain how to calculate the baud rate on the project and just say something like "86991 is a common value for the baud rate because it gives us Y" and then continue the project without furthermore explanations.

    Comments to specific lessons: - Section 4, 10, Coding: Developing the UART Driver Using Information from the Datasheet: it is not explained properly how the BRR value calculated for the 9600 baud rate in the example - Section 5, System Tick and General Purpose Timers: it is not mentioned how can be the system clock changed, only assuming 16MHz clock default setting, although this can vary for different microcontrollers pretty much.

    very bad

    Good, But very bad at some points.

    Thanks this was amazing in one month the instructor have never answer my question very bad attention of the instructor, i have sent a message too and he have not answer yet.

    Read more

    Careers

    An overview of related careers and their average salaries in the US. Bars indicate income percentile.

    Code Inspector 2 $56k

    Code A Expediter $57k

    Code enforcement official $65k

    Code Administration Officer $72k

    Code Compliance $77k

    Firmware Tester $88k

    Owner Code Monkey $89k

    Firmware Engineer 1 3 $92k

    Senior Code Monkey $106k

    Wireless Firmware Engineer $118k

    Firmware/Application Engineer $128k

    Firmware Architect $171k

    Write a review

    Your opinion matters. Tell us what you think.

    Rating 3.9 based on 62 ratings
    Length 24.5 total hours
    Starts On Demand (Start anytime)
    Cost $16
    From Udemy
    Instructors Israel Gbati, BHM Engineering Academy
    Download Videos Only via the Udemy mobile app
    Language English
    Tags Development Software Engineering

    Similar Courses

    Sorted by relevance

    Like this course?

    Here's what to do next:

    • Save this course for later
    • Get more details from the course provider
    • Enroll in this course
    Enroll Now