BTC and FTC interrupt routines are wrong.
Code generated
#pragma CODE_STATE(dmaBTCAInterrupt, 32)
#pragma INTERRUPT(dmaBTCAInterrupt, IRQ)
void dmaBTCAInterrupt(void)
{
uint32 offset;
if (dmaREG->BTCAOFFSET != 0U)
{
offset = dmaREG->BTCAOFFSET - 1U;
dmaGroupANotification(BTC, offset);
}
}
Wrong because reading *TCAOFFSET register will clear it.
Correct code:
void dmaBTCAInterrupt(void)
{
uint32 offset = dmaREG->BTCAOFFSET;
if (offset != 0U)
{
dmaGroupANotification(BTC, offset-1U);
}
}
This bug seems to be new to v03.08.01