| 1. Setting Up | |||
| 1. Downloading CubeIDE.mp4 | 16.14 MB | ||
| 1. Downloading CubeIDE.srt | 2.99 KB | ||
| 2. Installing CubeIDE.mp4 | 13.06 MB | ||
| 2. Installing CubeIDE.srt | 3.15 KB | ||
| 3. Getting the required documentation.mp4 | 50.54 MB | ||
| 3. Getting the required documentation.srt | 9.87 KB | ||
| 4. Getting the required package for bare-metal development.mp4 | 141.58 MB | ||
| 4. Getting the required package for bare-metal development.srt | 27.23 KB | ||
| 5. Testing the project setup.mp4 | 99.22 MB | ||
| 5. Testing the project setup.srt | 20.52 KB | ||
| 10. More on Debugging | |||
| 1. Catching Anomalies with Breakpoints.mp4 | 101.97 MB | ||
| 1. Catching Anomalies with Breakpoints.srt | 18.06 KB | ||
| 2. Catching HardFaults.mp4 | 107.12 MB | ||
| 2. Catching HardFaults.srt | 17.96 KB | ||
| 3. Debugging Timers using SWV Graph.mp4 | 212.26 MB | ||
| 3. Debugging Timers using SWV Graph.srt | 33.86 KB | ||
| 4. Measuring the Execution Time of an Algorithm.mp4 | 178.66 MB | ||
| 4. Measuring the Execution Time of an Algorithm.srt | 25.13 KB | ||
| 5. Dumping Register Information.mp4 | 62.15 MB | ||
| 5. Dumping Register Information.srt | 8.64 KB | ||
| 6. Determining Execution Time and Place using Profiling.mp4 | 79.12 MB | ||
| 6. Determining Execution Time and Place using Profiling.srt | 9.34 KB | ||
| 11. Developing Bare-Metal RTC Drivers | |||
| 1. Understanding Real Time Clocks.mp4 | 64.31 MB | ||
| 1. Understanding Real Time Clocks.srt | 14.46 KB | ||
| 10. Implementing the RTC Alarm Initialization function (Part II).mp4 | 104.25 MB | ||
| 10. Implementing the RTC Alarm Initialization function (Part II).srt | 11.74 KB | ||
| 11. Implementing the RTC Alarm Interrupt Handler and Testing.mp4 | 169.03 MB | ||
| 11. Implementing the RTC Alarm Interrupt Handler and Testing.srt | 21.19 KB | ||
| 12. Analyzing the Steps to Configure the RTC Timestamp.mp4 | 51.7 MB | ||
| 12. Analyzing the Steps to Configure the RTC Timestamp.srt | 5.48 KB | ||
| 13. Implementing the RTC Timestamp Initialization function.mp4 | 80 MB | ||
| 13. Implementing the RTC Timestamp Initialization function.srt | 8.37 KB | ||
| 14. Implementing the RTC Timestamp Interrupt Handler.mp4 | 126.36 MB | ||
| 14. Implementing the RTC Timestamp Interrupt Handler.srt | 15.67 KB | ||
| 15. Testing the RTC Timestamp Driver.mp4 | 108.75 MB | ||
| 15. Testing the RTC Timestamp Driver.srt | 12.06 KB | ||
| 16. Implementing the RTC Tamper Detection Initialization function.mp4 | 91.53 MB | ||
| 16. Implementing the RTC Tamper Detection Initialization function.srt | 10.65 KB | ||
| 17. Testing the RTC Tamper Detection Driver.mp4 | 89.04 MB | ||
| 17. Testing the RTC Tamper Detection Driver.srt | 10.21 KB | ||
| 2. Listing the Steps for Configuring the RTC Calendar.mp4 | 41.17 MB | ||
| 2. Listing the Steps for Configuring the RTC Calendar.srt | 7.92 KB | ||
| 3. Implementing the RTC Calendar Initialization function (Part I).mp4 | 108.88 MB | ||
| 3. Implementing the RTC Calendar Initialization function (Part I).srt | 12.86 KB | ||
| 4. Implementing the RTC Calendar Initialization function (Part II).mp4 | 159.58 MB | ||
| 4. Implementing the RTC Calendar Initialization function (Part II).srt | 20.54 KB | ||
| 5. Setting the Timer Prescalers.mp4 | 150.7 MB | ||
| 5. Setting the Timer Prescalers.srt | 15.85 KB | ||
| 6. Exiting the Initialization Mode.mp4 | 118.22 MB | ||
| 6. Exiting the Initialization Mode.srt | 12.72 KB | ||
| 7. Getting the Calendar Information.mp4 | 72.03 MB | ||
| 7. Getting the Calendar Information.srt | 8.85 KB | ||
| 8. Testing the RTC Calendar Driver.mp4 | 149.41 MB | ||
| 8. Testing the RTC Calendar Driver.srt | 16.53 KB | ||
| 9. Implementing the RTC Alarm Initialization function (Part I).mp4 | 151.64 MB | ||
| 9. Implementing the RTC Alarm Initialization function (Part I).srt | 18.78 KB | ||
| 12. Developing Bare-Metal Independent Watchdog (IWDG) Timer Drivers | |||
| 1. Overview of the Independent Watchdog.mp4 | 36.86 MB | ||
| 1. Overview of the Independent Watchdog.srt | 6.59 KB | ||
| 2. Analyzing the Steps for Initializing the IWDG Timer.mp4 | 24.56 MB | ||
| 2. Analyzing the Steps for Initializing the IWDG Timer.srt | 5.08 KB | ||
| 3. Implementing the IWDG Initialization function.mp4 | 136.56 MB | ||
| 3. Implementing the IWDG Initialization function.srt | 18.46 KB | ||
| 4. Implementing other Modules for Testing the IWDG Driver.mp4 | 114.34 MB | ||
| 4. Implementing other Modules for Testing the IWDG Driver.srt | 16.83 KB | ||
| 5. Testing the IWDG Driver.mp4 | 127.65 MB | ||
| 5. Testing the IWDG Driver.srt | 19.05 KB | ||
| 13. Developing Bare-Metal Windowed Watchdog (IWDG) Timer Drivers | |||
| 1. Overview of the Window Watchdog.mp4 | 82.22 MB | ||
| 1. Overview of the Window Watchdog.srt | 15.82 KB | ||
| 2. Implementing the WWDG Initialization function.mp4 | 84.02 MB | ||
| 2. Implementing the WWDG Initialization function.srt | 12.75 KB | ||
| 3. Testing the WWDG Driver.mp4 | 127.22 MB | ||
| 3. Testing the WWDG Driver.srt | 17.34 KB | ||
| 14. Developing Bare-Metal Drivers for Standby Mode and Wakeup | |||
| 1. Implementing the Standby and Wakeup Setup Function.mp4 | 131.43 MB | ||
| 1. Implementing the Standby and Wakeup Setup Function.srt | 18.77 KB | ||
| 2. Getting the Source of a Reset.mp4 | 82.86 MB | ||
| 2. Getting the Source of a Reset.srt | 9.22 KB | ||
| 3. Testing the Standby and Wakeup Driver.mp4 | 90.91 MB | ||
| 3. Testing the Standby and Wakeup Driver.srt | 13.13 KB | ||
| 4. Analyzing Steps for Developing an RTC Wakeup Timer Driver.mp4 | 50.3 MB | ||
| 4. Analyzing Steps for Developing an RTC Wakeup Timer Driver.srt | 5.26 KB | ||
| 5. Implementing the RTC Wakeup Timer Initializationf Function.mp4 | 129.05 MB | ||
| 5. Implementing the RTC Wakeup Timer Initializationf Function.srt | 12.41 KB | ||
| 6. Implementing the rtc_enter_standby_mode() Function.mp4 | 92.58 MB | ||
| 6. Implementing the rtc_enter_standby_mode() Function.srt | 8.67 KB | ||
| 7. Testing the RTC Wakeup timer Driver.mp4 | 114.26 MB | ||
| 7. Testing the RTC Wakeup timer Driver.srt | 14.08 KB | ||
| 15. Closing | |||
| 1. Closing Remarks.html | 247 B | ||
| 2. Essentials of Firmware Debugging | |||
| 1. Getting familiar with the Debug View.mp4 | 165.34 MB | ||
| 1. Getting familiar with the Debug View.srt | 32.58 KB | ||
| 2. Working with the Instrumentation Trace Macrocell (ITM).mp4 | 70.3 MB | ||
| 2. Working with the Instrumentation Trace Macrocell (ITM).srt | 12.6 KB | ||
| 3. Retargetting printf() and creating Log functions.mp4 | 95.26 MB | ||
| 3. Retargetting printf() and creating Log functions.srt | 16.07 KB | ||
| 4. Debugging with UART - Analyzing the Documentation.mp4 | 105.12 MB | ||
| 4. Debugging with UART - Analyzing the Documentation.srt | 19.07 KB | ||
| 5. Debugging with UART - Writing the UART Driver.mp4 | 168.93 MB | ||
| 5. Debugging with UART - Writing the UART Driver.srt | 26.27 KB | ||
| 6. Debugging with UART - Testing the UART Driver.mp4 | 103.8 MB | ||
| 6. Debugging with UART - Testing the UART Driver.srt | 16.45 KB | ||
| 7. Debugging GPIO with Serial Wire Viewer (SWV).mp4 | 94.05 MB | ||
| 7. Debugging GPIO with Serial Wire Viewer (SWV).srt | 15.08 KB | ||
| 3. Developing Bare-Metal Memory-to-Memory Direct Memory Access (DMA) Drivers | |||
| 1. Overview of the Direct Memory Access (DMA) Module.mp4 | 134.79 MB | ||
| 1. Overview of the Direct Memory Access (DMA) Module.srt | 15.94 KB | ||
| 2. Analyzing the DMA Documentation.mp4 | 31.73 MB | ||
| 2. Analyzing the DMA Documentation.srt | 6.56 KB | ||
| 3. Writing the DMA Memory-to-Memory Driver.mp4 | 141.34 MB | ||
| 3. Writing the DMA Memory-to-Memory Driver.srt | 19.5 KB | ||
| 4. Implementing the DMA Data Transfer function.mp4 | 54.96 MB | ||
| 4. Implementing the DMA Data Transfer function.srt | 7.74 KB | ||
| 5. Testing the DMA Driver.mp4 | 222.58 MB | ||
| 5. Testing the DMA Driver.srt | 31.32 KB | ||
| 4. Developing Bare-Metal ADC DMA Drivers | |||
| 1. Understanding ADC Independents Modes.mp4 | 103.98 MB | ||
| 1. Understanding ADC Independents Modes.srt | 11.34 KB | ||
| 2. Analyzing the ADC Documentation.mp4 | 90.77 MB | ||
| 2. Analyzing the ADC Documentation.srt | 14.65 KB | ||
| 3. Writing the ADC DMA Driver (Part I).mp4 | 151.87 MB | ||
| 3. Writing the ADC DMA Driver (Part I).srt | 18.93 KB | ||
| 4. Writing the ADC DMA Driver (Part II).mp4 | 216.61 MB | ||
| 4. Writing the ADC DMA Driver (Part II).srt | 26.32 KB | ||
| 5. Developing Bare-Metal ADC Timer Trigger DMA Drivers | |||
| 1. Writing the ADC Timer Triggered Driver.mp4 | 208.27 MB | ||
| 1. Writing the ADC Timer Triggered Driver.srt | 25.05 KB | ||
| 2. Testing the ADC Timer Triggered Driver.mp4 | 88.11 MB | ||
| 2. Testing the ADC Timer Triggered Driver.srt | 11.86 KB | ||
| 6. Developing Bare-Metal UART DMA Drivers | |||
| 1. Overview of the UART Protocol.mp4 | 71.83 MB | ||
| 1. Overview of the UART Protocol.srt | 10.61 KB | ||
| 2. Listing the Steps.mp4 | 61.12 MB | ||
| 2. Listing the Steps.srt | 9.05 KB | ||
| 3. Implementing the UART RX TX Initialization functions.mp4 | 120.95 MB | ||
| 3. Implementing the UART RX TX Initialization functions.srt | 11.61 KB | ||
| 4. Implementing the DMA Stream RX TX Configuration function (Part I).mp4 | 114.33 MB | ||
| 4. Implementing the DMA Stream RX TX Configuration function (Part I).srt | 11.83 KB | ||
| 5. Implementing the DMA Stream RX TX Configuration function (Part II).mp4 | 209.49 MB | ||
| 5. Implementing the DMA Stream RX TX Configuration function (Part II).srt | 17.02 KB | ||
| 6. Implementing the DMA Stream RX TX Configuration function (Part III).mp4 | 159.95 MB | ||
| 6. Implementing the DMA Stream RX TX Configuration function (Part III).srt | 13.08 KB | ||
| 7. Testing the UART DMA Driver.mp4 | 343.05 MB | ||
| 7. Testing the UART DMA Driver.srt | 42.42 KB | ||
| 7. Developing Bare-Metal SPI DMA Drivers | |||
| 1. Understanding the SPI Protocol.mp4 | 141.41 MB | ||
| 1. Understanding the SPI Protocol.srt | 15.14 KB | ||
| 10. Implementing the MPU9250 Mems Device SPI DMA Driver (Part IV).mp4 | 129.1 MB | ||
| 10. Implementing the MPU9250 Mems Device SPI DMA Driver (Part IV).srt | 13 KB | ||
| 11. Testing the MPU9250 Mems Device SPI DMA Driver.mp4 | 199.06 MB | ||
| 11. Testing the MPU9250 Mems Device SPI DMA Driver.srt | 21.94 KB | ||
| 2. Analyzing the SPI Documentation.mp4 | 56.98 MB | ||
| 2. Analyzing the SPI Documentation.srt | 8.67 KB | ||
| 3. Implementing the SPI DMA Initialization function.mp4 | 187.49 MB | ||
| 3. Implementing the SPI DMA Initialization function.srt | 21.04 KB | ||
| 4. Implementing the TX Stream Configuration function.mp4 | 180.01 MB | ||
| 4. Implementing the TX Stream Configuration function.srt | 17.43 KB | ||
| 5. Implementing the RX Stream Configuration function.mp4 | 91.05 MB | ||
| 5. Implementing the RX Stream Configuration function.srt | 8.34 KB | ||
| 6. Implementing the Transfer and Receive functions.mp4 | 171.52 MB | ||
| 6. Implementing the Transfer and Receive functions.srt | 14.62 KB | ||
| 7. Implementing the MPU9250 Mems Device SPI DMA Driver (Part I).mp4 | 153.38 MB | ||
| 7. Implementing the MPU9250 Mems Device SPI DMA Driver (Part I).srt | 21.37 KB | ||
| 8. Implementing the MPU9250 Mems Device SPI DMA Driver (Part II).mp4 | 258.28 MB | ||
| 8. Implementing the MPU9250 Mems Device SPI DMA Driver (Part II).srt | 29.08 KB | ||
| 9. Implementing the MPU9250 Mems Device SPI DMA Driver (Part III).mp4 | 41.3 MB | ||
| 9. Implementing the MPU9250 Mems Device SPI DMA Driver (Part III).srt | 4.66 KB | ||
| 8. Developing Bare-Metal I2C DMA Drivers | |||
| 1. Understanding the I2C Protocol.mp4 | 110.68 MB | ||
| 1. Understanding the I2C Protocol.srt | 12.7 KB | ||
| 10. Implementing the I2C DMA Write function.mp4 | 54.91 MB | ||
| 10. Implementing the I2C DMA Write function.srt | 6.88 KB | ||
| 11. Implementing the I2C DMA Stream IRQHandlers.mp4 | 70.33 MB | ||
| 11. Implementing the I2C DMA Stream IRQHandlers.srt | 8.23 KB | ||
| 12. Testing the I2C DMA Driver with the MPU9250 Mems Device.mp4 | 228.55 MB | ||
| 12. Testing the I2C DMA Driver with the MPU9250 Mems Device.srt | 28.27 KB | ||
| 2. Analyzing the I2C Documentation.mp4 | 91.36 MB | ||
| 2. Analyzing the I2C Documentation.srt | 14.95 KB | ||
| 3. Implementing the I2C DMA Initialization function (Part I).mp4 | 100.91 MB | ||
| 3. Implementing the I2C DMA Initialization function (Part I).srt | 12.89 KB | ||
| 4. Implementing the I2C DMA Initialization function (Part II).mp4 | 117.89 MB | ||
| 4. Implementing the I2C DMA Initialization function (Part II).srt | 11.75 KB | ||
| 5. Implementing the I2C DMA Tx Stream Initialization function.mp4 | 97.38 MB | ||
| 5. Implementing the I2C DMA Tx Stream Initialization function.srt | 9.1 KB | ||
| 6. Implementing the I2C DMA Rx Stream Initialization function.mp4 | 49.93 MB | ||
| 6. Implementing the I2C DMA Rx Stream Initialization function.srt | 4.91 KB | ||
| 7. Implementing the I2C DMA Stream Transfer function.mp4 | 114.42 MB | ||
| 7. Implementing the I2C DMA Stream Transfer function.srt | 10.06 KB | ||
| 8. Implementing the I2C DMA Stream Receive function.mp4 | 72.56 MB | ||
| 8. Implementing the I2C DMA Stream Receive function.srt | 6.81 KB | ||
| 9. Implementing the I2C DMA Read function.mp4 | 311.83 MB | ||
| 9. Implementing the I2C DMA Read function.srt | 38.99 KB | ||
| 9. Developing Bare-Metal PWM DMA Drivers | |||
| 1. Understanding STM32 Timers.mp4 | 116.23 MB | ||
| 1. Understanding STM32 Timers.srt | 12.57 KB | ||
| 2. Analyzing the PWM Documentation.mp4 | 50.69 MB | ||
| 2. Analyzing the PWM Documentation.srt | 9.66 KB | ||
| 3. Implementing the PWM Initialization function.mp4 | 219.26 MB | ||
| 3. Implementing the PWM Initialization function.srt | 31.73 KB | ||
| 4. Developing the set_dutycycle() function.mp4 | 127.16 MB | ||
| 4. Developing the set_dutycycle() function.srt | 18.59 KB | ||
| 5. Implementing the PWM DMA Initialization function(Part I).mp4 | 133.38 MB | ||
| 5. Implementing the PWM DMA Initialization function(Part I).srt | 14 KB | ||
| 6. Implementing the PWM DMA Initialization function(Part II).mp4 | 242.27 MB | ||
| 6. Implementing the PWM DMA Initialization function(Part II).srt | 19.4 KB | ||
| 7. Testing the PWM DMA Driver.mp4 | 51.61 MB | ||
| 7. Testing the PWM DMA Driver.srt | 7.62 KB |
Обучающие видео » Компьютерные видеоуроки и обучающие интерактивные DVD » Программирование (видеоуроки)
Advanced Embedded Systems Bare-Metal Programming Ground Up™
Год выпуска: 6/2022
Производитель: Udemy
Сайт производителя: https://www.udemy.com/course/embedded-systems-advance-bare-metal-programming/
Автор: BHM Engineering Academy, Israel Gbati
Продолжительность: 22h 31m 17s
Тип раздаваемого материала: Видеоурок
Язык: Английский
Субтитры: Английский
Описание:
No libraries : RTC, IWDG, WWDG, DMA-ADC, DMA-I2C, DMA-SPI, DMA-UART, DMA-PWM, Standby, Wakeup
What you'll 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 Requirements No programming experience needed - I'll teach you everything you need to know.
We shall be using the STM32 IDE which is FREE. Description
This advanced course teaches professional bare-metal firmware development for ARM Cortex-M microcontrollers, focusing on building peripheral drivers from scratch without using third-party libraries.
You’ll master DMA, RTC, Watchdog Timer drivers, low-power standby modes, and advanced debugging techniques, while learning to read datasheets, navigate reference manuals, and write every line of code yourself.
Using STM32F4-NUCLEO boards, you’ll gain hands-on experience developing robust, efficient embedded systems firmware and confidently debugging it, bridging the gap between hardware knowledge and coding skills.
Are you tired of Copying and Pasting code you don't understand?
[spoiler="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 :
"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 8000+ 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 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 devices 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 But it gets better because you will also master.... 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
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 lose.
[/spoiler]
Who this course is for: If you are an absolute beginner to embedded systems, then take this course.
If you are an experienced embedded developer and want to learn how to professionally develop embedded applications for ARM processors, then take this course. Формат видео: MP4
Видео: avc, 1280x720, 16:9, 30.000 к/с, 821 кб/с
Аудио: aac lc, 44.1 кгц, 128 кб/с, 2 аудио
[spoiler="MediaInfo"]
General
Complete name : D:\2_1\Udemy - Advanced Embedded Systems Bare-Metal Programming Ground Upâ„¢ (6.2022)\12. Developing Bare-Metal Independent Watchdog (IWDG) Timer Drivers\1. Overview of the Independent Watchdog.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 36.9 MiB
Duration : 5 min 23 s
Overall bit rate : 957 kb/s
Frame rate : 30.000 FPS
Writing application : Lavf58.12.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings : CABAC / 4 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 4 frames
Format settings, GOP : M=4, N=60
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 5 min 22 s
Bit rate : 821 kb/s
Nominal bit rate : 3 000 kb/s
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.030
Stream size : 31.6 MiB (86%)
Writing library : x264 core 148
Encoding settings : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x1:0x111 / me=umh / subme=6 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=22 / lookahead_threads=3 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=60 / keyint_min=6 / scenecut=0 / intra_refresh=0 / rc_lookahead=60 / rc=cbr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=3000 / vbv_bufsize=6000 / nal_hrd=none / filler=0 / ip_ratio=1.40 / aq=1:1.00
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 5 min 23 s
Bit rate mode : Constant
Bit rate : 128 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 4.93 MiB (13%)
Default : Yes
Alternate group : 1
[/spoiler]
[spoiler="Скриншоты"]
![]()
[/spoiler]
| torrent name | size | uploader | age | seed | leech |
|---|---|---|---|---|---|
| 2.9 GB | tutsnode | 3 years | 10 | 0 | |
| 2.3 GB | Fclab | 3 years | 4 | 1 | |
| 2.3 GB | tutsnode | 3 years | 4 | 7 |
All Comments