Hello,
Why the debugger can't monitor a change/break-at the memory location which is read/written using DMA? I observed this behavior on KSDK 1.2 while debugging with OpenSDA. Just curious to know.
Thank you
Rini
Solved! Go to Solution.
Hi
DMA module works as a coprocessor, which doesn't be monitored by ARM Cortex-M0+ debug module during DMA transfer.
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi
DMA module works as a coprocessor, which doesn't be monitored by ARM Cortex-M0+ debug module during DMA transfer.
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi
Could you let us know which IDE software you are using? I checked with IAR IDE software with KSDK V1.2 eDMA demo & TWR-K60D100M board. I could debug and check the memory value modification.
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello,
I'm using KDS v3.0 with KSDK 1.2.
When I put write Watchpoint on memory location directly accessed by core, it works fine. But when the same address is modified using DMA, debugger doesn't break on the write access.
Board is TWR-KL43.
Regards,
Rini
Hi
Please check my test result at below picture:
I could find the SRAM address 0x1fffe09c as destAddr[] array value modification using DMA module.
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hello,
I apologize for the confusion. Let me rephrase the question.
As seen from the snap, I've put write Watchpoint on address 0x1fffe0a, which is destAddr[] array value.
Now when the core writes to this address, for e.g.
for(i=0; i<BUFFER_SIZE; i++)
destAddr[i] = 0;
the breakpoint is hit on each write access and debugging is halted. But later on when the same address is modified using DMA, even though I'm able to see the modification in memory watch, write breakpoint is not getting hit. Is it because debugger cannot monitor DMA transfer or anything like that?
Best regards,
Rini