Small MDMA improvement.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@15539 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2022-03-18 12:28:13 +00:00
parent b40bae71c9
commit bbb6eb43a8
2 changed files with 5 additions and 3 deletions

View File

@ -66,12 +66,13 @@ static struct {
/*===========================================================================*/ /*===========================================================================*/
static void mdma_serve_interrupt(const stm32_mdma_channel_t *mdmachp) { static void mdma_serve_interrupt(const stm32_mdma_channel_t *mdmachp) {
uint32_t flags; uint32_t flags, eflags;
flags = mdmachp->channel->CISR; flags = mdmachp->channel->CISR;
eflags = mdmachp->channel->CESR;
mdmachp->channel->CIFCR = flags; mdmachp->channel->CIFCR = flags;
if (mdmachp->func != NULL) { if (mdmachp->func != NULL) {
mdmachp->func(mdmachp->param, flags); mdmachp->func(mdmachp->param, flags | (eflags << 16));
} }
} }

View File

@ -277,7 +277,8 @@
* @brief STM32 MDMA ISR function type. * @brief STM32 MDMA ISR function type.
* *
* @param[in] p parameter for the registered function * @param[in] p parameter for the registered function
* @param[in] flags content of the CISR register * @param[in] flags content of the CISR register in the lower 16 bits,
* content of the CESR register in the upper 16 bits
*/ */
typedef void (*stm32_mdmaisr_t)(void *p, uint32_t flags); typedef void (*stm32_mdmaisr_t)(void *p, uint32_t flags);