05-09-2018 08:43 AM
Hi, I am developing using Kintex-7 using Vivado/SDK 2017.4 and am debugging an issue where some piece of code is overwritting BRAM address 0x0 which is keeping the external reset from working.
So to try and debug what code is doing the overwrite I wanted to set a watchpoint on address 0x0, so I opened 0x0 in the Memory tab in the bottom right of the SDK Debug view which shows 0xB0000000 when my code is stopped at the first line in main() which is the expected value. I right clicked on the memory value and selected "Add Watchpoint" shown below.
I then left the watchpoint setup as-is and hit OK since what I am interested in is when that memory location is written (see below).
But when I run the code it never stops at that watchpoint and if I hit the pause button then you can see the memory was overwritten (see below).
Is there something I am doing wrong in the Watchpoint setup? I was really hoping this would work.
05-09-2018 10:37 AM
Does your Vivado design have watchpoints enabled for MB? With the default configuration, no watchpoints are enabled, so please check how many number of watchpoints your design supports (it should be in MicroBlaze IP config wizard in Vivado). SDK should have thrown an error if there are no watchpoints enabled, but I'm wondering if the error is lost somewhere
05-09-2018 10:41 AM
Good information. I was not aware of this setup. See my MicroBlaze setup shown below which indeed has no watchpoints enabled. So it is interesting that SDK did not give me a warning. I will try and enable this and verify it works and respond later with the results. My implementation time is very long so it may be a while before I respond.