Is there any official documents that JTAG debugger can not use at the time LMEM cache is enabled.

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Is there any official documents that JTAG debugger can not use at the time LMEM cache is enabled.

Jump to solution
1,340 Views
hideo_yamashiro
Contributor III

Hello,

I am searching any official documents that JTAG debugger can not use at the time LMEM cache is enabled on M4 core in i.mx7d.

I would like to get any official documents related the issue as a evidence.

 

On my result, I can not use JTAG debugger (uVision5 + ULINK pro) only at the time LMEM cache is enabled.

When LMEM cache is disabled, the debugger is working without any problems although the program is put on DDR-RAM(0x80000000-0x801FFFFF) or OCRAM(0x20220000-0x2023FFFF).

 

Best regards,

Hideo Yamashiro.

 

 

 

0 Kudos
1 Solution
1,309 Views
Yuri
NXP Employee
NXP Employee

@hideo_yamashiro 
Hello,

   Yes, Your understanding is correct.

Regards,
Yuri.

View solution in original post

0 Kudos
3 Replies
1,328 Views
Yuri
NXP Employee
NXP Employee

@hideo_yamashiro 
Hello,

   We do not have special official documents regarding the JTAG debugger problem with M4
cache of i.MX7D enabled. There is the following explanation of such behavior:

"The J-Link sets breakpoints [BPs] in RAM via the Cortex-M specific AHB (background memory
access). This enables the J-Link to set soft BPs  w/o halting the core.

But this bypasses the cache. Consequently, this leads to erroneous behavior." 

  Note, it can be just implementation specific feature.

Regards,
Yuri.

 

0 Kudos
1,313 Views
hideo_yamashiro
Contributor III

Dear Yuri.

Thank you for your reply.

You mean the implementation of LMEM cahce is a specification of M4 core in i.mx7d.

The following behavior happens?
(1).A debugger puts a BKPT instraction at a point that the debugger's user sets.
(2).The user runs the program and the program stops at the point that a BKPT instruction is put.
(3).The user re-runs the program but the program execution stops at same point.
Because the CPU(M4 core) fetchs the BKPT instruction from cache buffer, not from memory.
The reason is that the BKPT instruction exists on LMEM cache
although the debugger modifies the BKPT instruction to the original instruction via AHB(background memory access).

Is my understanding is correct?

Best regards,
Hideo Yamashiro.

1,310 Views
Yuri
NXP Employee
NXP Employee

@hideo_yamashiro 
Hello,

   Yes, Your understanding is correct.

Regards,
Yuri.

0 Kudos