Write watch on the memory location modified by DMA

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

Write watch on the memory location modified by DMA

跳至解决方案
1,964 次查看
rinipatel
Contributor III

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

标记 (2)
0 项奖励
回复
1 解答
1,669 次查看
Hui_Ma
NXP TechSupport
NXP TechSupport

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!
-----------------------------------------------------------------------------------------------------------------------

在原帖中查看解决方案

0 项奖励
回复
5 回复数
1,670 次查看
Hui_Ma
NXP TechSupport
NXP TechSupport

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!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复
1,669 次查看
Hui_Ma
NXP TechSupport
NXP TechSupport

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!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复
1,669 次查看
rinipatel
Contributor III

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

0 项奖励
回复
1,669 次查看
Hui_Ma
NXP TechSupport
NXP TechSupport

Hi

Please check my test result at below picture:

KDS.jpg

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!
-----------------------------------------------------------------------------------------------------------------------

0 项奖励
回复
1,669 次查看
rinipatel
Contributor III

Hello,

I apologize for the confusion. Let me rephrase the question.

Untitled1.png

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

0 项奖励
回复