It sounds like a good plan!Bakisha wrote: ↑Thu Sep 03, 2020 7:49 pmI was thinking BSRR was good choice because it would be possible to use other ports. Yes, it's 32bit register, what i had in mind to use two buffers of 4*pixels bytes per line, and in interrupt use something like:
-Set DMA to send 1st/2nd buffer (with few flags as "if" statement, and always same execution time +/- few cycles)
-Calculate 2nd/1st buffer as stream of 4bytes (32bits) for BSRR (this is not time critical, since DMA is already sending 1st/2nd buffer in background)
Only thing to find out is how much cycles is DMA transfer delayed when triggered every 8 cpu ticks (for 224 pixels resolution).
Time for me to dive into RM0008 Reference manual again and find a way to drive DMA with timer
I know that you shall set Timer DIER to update generated DMA, for instance.
Check DMA/Channel linked to that TIMER/Event and set it up to be Memory to Peripheral direction.
Parallel processing with DMA, especially when accessing memory will sufer from bus access arbitration and this may lead to some pixels bigger than others.
But, for sure, it is worth trying!
Let us know about your progress.