When I double click in the edit margin space, or select Run->New Breakpoint at program location in SDRAM, new breakpoint is always configured as a hardware BP.
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Correct. Hardware breakpoints are typically only set by default if the memory is read-only. Go to the Tools menu and select Memory Map. For the address the breakpoint is being set at what type of memory does the debugger think is there? i.e. what does it say in the Attributes column.
John
The Attributes column is showing the memory as RAM so the debugger should be setting software breakpoints.
Are you running while trying to set the breakpoint? It will set hardware breakpoints if it is not able to set a software one. Usually with C55x it can still set a software breakpoint while running.
If you go to the breakpoints view will is it showing all the breakpoints as "Hardware Breakpoint (C55x Core)?
Yh1 said:I see both H/W BP and S/W BP.
So the list of BPs in the view shows that both types have been set? In the capture below it shows that I have 1 S/W BP and 1 H/W BP set.
If you set a breakpoint from the breakpoint view will it let you set a S/W BP? i.e. click the down arrow beside the blue circle on the toolbar and select the first item in the list (Breakpoint). Enter 0x1000 as the address. Does it succeed?
Ok. So the debugger is able to set S/W BPs.
A couple things to try.
Hi,
Unfortunately I don't have a C55x board that I can attach a Spectrum Digital emulator to test, but I have a few comments regarding this discussion:
- Just to clarify, HW breakpoints can be set in any memory in your system (RAM, ROM, etc.), therefore there is no functional impact other than the more limited number of HW breakpoints (SW breakpoints are virtually unlimited). As John said, CCS tries to get the most suitable memory type before deciding if it is a hardware or software breakpoint.
- The memory map screenshot you sent does not differentiate between RAM or ROM or Reserved memory regions, therefore I imagine you are not using a GEL file in your system (usually GEL files set the memory maps according to the device specifications). If so, could you try to use one and see if this helps gain some stability in breakpoint behavior?
- Also, you mentioned that you see both HW and SW breakpoints in the breakpoint manager, thus indicating you are able to set at least some SW breakpoints. Therefore, can you double-check the addresses that disallow SW breakpoints and see if they are not in ROM (bootloader, etc)?
Apart from these situations, I am not 100% sure what else may be wrong. As a last and more general resource is to check the sections General IDE and Debugger of the CCS troubleshooting page (the suggestions there usually help increase stability or unknown behavior).
Hope this helps,
Rafael
I enclose my comments as follows:
- Just to clarify, HW breakpoints can be set in any memory in your system (RAM, ROM, etc.), therefore there is no functional impact other than the more limited number of HW breakpoints (SW breakpoints are virtually unlimited). As John said, CCS tries to get the most suitable memory type before deciding if it is a hardware or software breakpoint.
I understand now.
- The memory map screenshot you sent does not differentiate between RAM or ROM or Reserved memory regions, therefore I imagine you are not using a GEL file in your system (usually GEL files set the memory maps according to the device specifications). If so, could you try to use one and see if this helps gain some stability in breakpoint behavior?
Attached is a gel file I have been using.
- Also, you mentioned that you see both HW and SW breakpoints in the breakpoint manager, thus indicating you are able to set at least some SW breakpoints. Therefore, can you double-check the addresses that disallow SW breakpoints and see if they are not in ROM (bootloader, etc)?
When I double click at RAM addresses, the BP is still a H/W breakpoint. It is ok as long as execution stops there. But, it does stop some time and doesn't stop some time.
Apart from these situations, I am not 100% sure what else may be wrong. As a last and more general resource is to check the sections General IDE and Debugger of the CCS troubleshooting page (the suggestions there usually help increase stability or unknown behavior).
I also did all the suggestions from CCS troubleshooting page.