Thanks for the clarification on LDRB, LDRW and byte access.
I understand a little better these stories of unaligned accesses, but I did not think that the M33 did the gymnastics of reassembling everything knowing that the M0+ does not! Thanks a lot!
I've already enabled disassembly at compile time, but thanks for the tip. I've done assembly, but on microcontrollers with a much smaller instruction set (68HC11/12, PIC16 & 18).
It can help, and it's a good technique to try to tame the C compiler first so that it outputs optimized assembler on its own. But as you say, they've become so good at optimizing (because they take advantage of the microprocessor architecture) that it can be difficult.
Knowing that my problem was simple (two indirections and one copy) I wanted to try it by hand. I succeeded in three operations. But performance is not as good as with the DMA (which does the indirection) on the RP2040.
At first, when I was tinkering and wasn't aware of the SIO (in which the interpolator is located) I tried to read and write its registers directly with the DMA!
Free the interpolator from the SIO!
Thanks !
I understand a little better these stories of unaligned accesses, but I did not think that the M33 did the gymnastics of reassembling everything knowing that the M0+ does not! Thanks a lot!
I've already enabled disassembly at compile time, but thanks for the tip. I've done assembly, but on microcontrollers with a much smaller instruction set (68HC11/12, PIC16 & 18).
It can help, and it's a good technique to try to tame the C compiler first so that it outputs optimized assembler on its own. But as you say, they've become so good at optimizing (because they take advantage of the microprocessor architecture) that it can be difficult.
Knowing that my problem was simple (two indirections and one copy) I wanted to try it by hand. I succeeded in three operations. But performance is not as good as with the DMA (which does the indirection) on the RP2040.
At first, when I was tinkering and wasn't aware of the SIO (in which the interpolator is located) I tried to read and write its registers directly with the DMA!

Free the interpolator from the SIO!

Thanks !
Statistics: Posted by psyke — Wed Oct 16, 2024 11:28 pm