Question about DMA as Interrupt Service Provider

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User19005
Level 1
Level 1
Hi, I have some problem when I use DMA as ISR Provider.

I'm using TC277 app kit, ERIKA3 OS, iLLD

The GPT12 interrupt is set to occur every 500us, and Interrupt Service Provider of GPT12 Interrupt is set to DMA.

What I want to do here is to get DMA to transmit data of SOURCE MEMORY to DESTINATION MEMORY every 500ms using GPT12 Interrupt.

However, only the first 500 us will DMA work as set and will not work from the second(after 1 ms).
GPT12 interrupts used the example of Infineon as it was, and GPT12 interrupts seem to work well.

The experimental situation is as follows:

1. Write value to source address 0x70000C80 at initialization
2. Confirm that after 500us, the value at the source address is written to the destination address 0x90000000
3. Change the value of the destination address, 0x90000000 (which has a value written from the source address), to any value, and verify that the value written in the source address is renewed every 500 us -> problem occurred. The value of the destination address is not updated


Attached is the source code about DMA Initialzation.

4526.attach

here is GPT12 Initialization

4527.attach

Is the interrupt (dragged line) setting incorrect during the initialization process?

Thank you
0 Likes
0 Replies