I have two related questions regarding using DMA with an STM32 chip. I'm using STM32F031C6, but the answer should apply to other models.
I setup the USART to issue a character match interrupt. I'm using DMA to read the characters from the USART. I've noticed in practice that the matched character has already been copied to memory by the time the character match interrupt occurs. Is this behaviour something that is reliable or is it a potential race condition? I didn't see this addressed in the reference manual.
I setup the A2D to read a sequence of channels and issue an end-of-sequence EOSEQ interrupt upon completion. I'm using DMA to read the values into memory. Is there any guarantee that the value will have already been copied to memory at the point the EOSEQ happens? I didn't see this addressed in the reference manual.