I just have this bad habbit of asking "why" everytime I see something, which leads to asking a very specific questions, and they can even confuse me more than it shouldReading about something can only get you so far if you don't have the foundational theory of why it's needed already in your head. The DMA controller in a typical 32-bit controller is a complex beast that requires an understanding of computer hardware architecture to see things at the logic level. It works, it's cool and eventually you will understand if you build things in software on hardware at the embedded hardware level.
That's why I've started reading how memory is made, and how Read and write works in the same 8 bit data line that is connected in one place, usually there is nothing I can find so I usually sit and draw something until it somehow makes sense using the basics like how memory cell looks like (I thought of multiplexer but it's not two directional that input changes into output, so I thought maybe 2 transistors, which one is negated and the other one is normal, the bit pick the transitor, both transistor one leg is connected to the same bus wire). Or other dillema with all memory in HZ and the input devices must be connected as I read somewhere so yea maybe pull up resistors etc.
I always wondered how people know it and so I had to pick up with understanding in gate logic level, I will try to pursue this idea and learn programming STM32, but sometimes this gate logic level understanding is to complex to understand at some point. Because at first I was like, cool DMA works without CPU then I was like how it does it in logic level etc. But it is very complex beast as you said. So I wondered how to approach these type of dilemmas to not bother here a lot. In VHDL I don't exactly connect individual logic gates, learning from this might not be effective is what I thought ;>And I also thought which questions are good to ask and which not.