ARM Cortex M Microcontroller DMA Programming Demystified

Direct Memory Access Demystified with STM32 Peripherals (ADC, SRAM,UART,M2M,M2P,P2M) and Embedded C code Exercises

4.62 (1278 reviews)
Udemy
platform
English
language
Hardware
category
ARM Cortex M Microcontroller DMA Programming Demystified
11,118
students
10 hours
content
Apr 2024
last update
$99.99
regular price

What you will learn

Please watch free preview videos you will learn something today without even enrolling for this course

Fundamentals of Direct Memory Access in a Microcontroller

The Microcontroller Architecture and Bus interfaces

Bus matrix of the ARM cortex M based MCU

Concurrent data access from ARM and DMA

DMA control configurations like burst size, FIFO, Alignment

DMA Controller internals and Bus interfaces

DMA Controller channels,Streams,priority

Memory to Memory data transfer using DMA and Exercises

Peripheral to Memory and Memory to Peripheral DMA and Programming exercises

Peripheral DMA configurations

DMA controller interrupts and interrupts handling

Debugging

Why take this course?

The course aims to demystify the Microcontroller DMA controller internals and its programming with various peripherals. Suitable for beginners to intermediate students in the field of Embedded Systems and programming. Please go through the description below to understand the course offering.

Key things you learn,

1) The Multi AHB bus matrix and ARM Cortex M Bus interfaces

2) MCU Master and Slave communication over bus matrix

3) DMA internals: channel mapping / streams/ fifo /Master ports / Arbiter/etc

4) DMA different transfer modes: M2P, P2M,M2M

5) DMA with peripherals like ADC, GPIO, UART_RX/TX and many other peripherals will be updated in this course.

6) DMA programming from scratch. Helps you to troubleshoot DMA issues on other microcontroller or processor platforms. You can speculate and debug problems more quickly when you learn the hard way.

7) And lots of other videos about circular mode/burst transfer /RTOS etc. will be added shortly.


Hardware used:

1) STM32F446RE Nucleo64 board

you can also use other STM32 boards such as the discovery board, evaluation board, or any other board.


Software used:

1) KEIL MDK V5 (free version, for windows)

2) Openstm32 system workbench ( windows/linux/mac) (free)

3) CubeMx software from ST (free)


The installation procedure is covered in the course

Description:

This course is all about understanding the Direct Memory Access Controller of the Micro-controller and how to use it in the embedded applications.


The course uses ARM Cortex M based STM32 Micro-controller for all theory discussion and code exercises. The course discusses generic details of the DMA which you can leverage to other Micro-controllers but you have made changes to the code in order to run on your target if it's not an ST's 32-bit Micro-controller.


The course will help you to raise your confidence in handling your MCU's DMA controller and connecting dots by going through the various levels of discussion.

I really tried to simplify the subject with clean/generic explanations and exercises.

We will discuss why DMA is required and how it benefits ARM to offload data transfer work with exercises.

We will learn different types of DMA transfers like M2M, P2M, and M2P (M: Memory P: Peripheral) and various DMA configurations. Please go through "What will I learn?" section above.

For the beginners/intermediate students, the course will indeed add huge advantage and helps to use DMA successfully in Embedded applications.


Learning order of FastBit Embedded Brain Academy Courses,

If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order.
This is just a recommendation from the instructor for beginners.

1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)

2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(ARM Cortex M4 Processor specific)

3) Mastering Microcontroller with Embedded Driver Development(MCU1)

4) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)

5) Mastering Microcontroller: STM32-LTDC, LCD-TFT, LVGL(MCU3)

6) Embedded System Design using UML State Machines(State machine)

7) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)

8) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)

9) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

10) Embedded Linux Step by Step using Beaglebone Black(Linux)

11) Linux device driver programming using Beaglebone Black(LDD1)


Screenshots

ARM Cortex M Microcontroller DMA Programming Demystified - Screenshot_01ARM Cortex M Microcontroller DMA Programming Demystified - Screenshot_02ARM Cortex M Microcontroller DMA Programming Demystified - Screenshot_03ARM Cortex M Microcontroller DMA Programming Demystified - Screenshot_04

Our review

📚 **Global Course Rating:** 4.63 **Recent Reviews Summary:** **Pros:** - 🎯 **Comprehensive Content:** The course covers all necessary aspects, including tools, exercises, and theoretical knowledge ([Review](#)). - 📚 **Practical Approach:** It provides practical examples and emphasizes learning from documentation like datasheets and user manuals ([Review](#)). - 🧠 **Learning Strategy:** It teaches not just the knowledge but also how to continue learning after the course ends ([Review](#)). - 🛠️ **Solid Introduction:** Offers a solid introduction to DMA with a Nucleo board, with new content being added regularly ([Review](#)). - ✅ **Excellent Explanations:** The instructor explains concepts clearly and uses control and data paths in DMA transactions effectively ([Review](#)). - 📈 **Real-World Application:** Includes real-world examples and matches software versions with CUBE-IDE, which is a free and widely-supported tool ([Review](#)). - 👍 **Positive Impact:** Students appreciate the course for increasing their knowledge and confidence in embedded C and microcontroller architecture ([Review](#)). **Cons:** - 🚫 **Incomplete Content:** Some expect more advanced topics on DMA to be covered, such as BEAT, mem to mem transfer, and Burst Mode ([Review](#)). - ❗️ **Outdated Information:** Some parts of the course mention updates that are never delivered ([Review](#)). - 🛠️ **IDE Preference:** There is a complaint about the course using Keil IDE instead of the STM CUBE-IDE, which some students prefer ([Review](#)). - 📈 **Complexity:** The course may be too basic for some advanced users who are looking for more challenging real-time exercises ([Review](#)). - ⚠️ **Lack of Interaction:** Some students have tried to engage with the instructor but did not receive replies ([Review](#)). - 🎓 **Course Progression:** It is suggested that a continuation of the DMA topics would be beneficial ([Review](#)). **Overall Impression:** The course is well-received for its comprehensive and practical approach to learning about DMA with Microcontrollers. It is particularly effective for beginners and those looking to solidify their understanding of embedded C programming and microcontroller architecture. However, some students have pointed out that the course could be improved by including more advanced topics and ensuring up-to-date information. Additionally, there are some concerns regarding the use of specific software tools and the level of interaction with the instructor. Despite these cons, the course is generally highly rated for its educational value and the clarity of its instruction. **Recommendation:** This course is highly recommended for beginners and those looking to understand the basics of DMA in embedded systems. It is also suitable for individuals who are comfortable with CUBE-IDE and prefer not to switch IDEs. For advanced users seeking more complex challenges, it may be helpful to complement this course with additional resources or seek out more specialized training on specific advanced topics related to DMA.

Charts

Price

ARM Cortex M Microcontroller DMA Programming Demystified - Price chart

Rating

ARM Cortex M Microcontroller DMA Programming Demystified - Ratings chart

Enrollment distribution

ARM Cortex M Microcontroller DMA Programming Demystified - Distribution chart
1342982
udemy ID
9/6/2017
course created date
9/29/2019
course indexed date
Pontiaq
course submited by