Hi.
Can you help me to understand my issue.
0. CCLK is 1GHz.
1. I have the code FUNC1 which execute some time T1 without any DMA and interrupts.
2. I have the code FUNC2
2.1. It config DMA to copy 4kBytes from L1 to L1 which may have same memory bank addresses
2.2. It start DMA and exit.
3. I compile with optimize_for_speed
4. My test program TST:
4.1. FUNC1.
4.2. FUNC2.
5. I see that FUNC2 in the program TST work some time T2.
6. And T2 is bigger than T1.
7. For example. T1 = 15us. T2 >= 16us.
I can explain it that DMA starts early and wins SCB arbitration. So the core waits when it can access to L1.
Is any idea?
Best regards.
Edit Notes
fixing[edited by: daim at 3:28 PM (GMT -5) on 9 Jan 2026]