| |||
| Home > Working with Breakpoints > Setting hardware breakpoints > Setting simple hardware breakpoints | |||
To set hardware breakpoints, you must be connected to a debug target that supports these features, for example an ARM core with EmbeddedICE logic. The options shown depend on the target support for breakpoints in hardware.
Select Debug → Simple Breakpoints → Address/Data... to display the Set Address/Data Break/Tracepoint dialog box, shown in Figure 5.19.
Select a hardware Break/Tracepoint Type to display entries specific to the hardware support for breakpoints available on the current target:
Sets or modifies an instruction address breakpoint. This type of breakpoint enables you to perform hardware tests or to compare data values.
Sets or modifies a read breakpoint at the specified memory location or address range. The breakpoint is triggered if the application reads from any part of the specified memory range. Where supported by your debug target, you can also add data tests.
Sets or modifies a write breakpoint at the specified memory location or address range. The breakpoint is triggered if the application writes to any part of the specified memory range.
Sets or modifies an access breakpoint at the specified memory location or address range. The breakpoint is triggered when a memory address is accessed. This type of breakpoint enables you to perform hardware tests or to compare data values.
Sets or modifies a breakpoint that is triggered if a specified data value is read from any address, and then detected by the debug hardware on the target processor.
Sets or modifies a breakpoint that is triggered if a specified data value is written to any address, and then detected by the debug hardware on the target processor.
Sets or modifies a breakpoint that is triggered if a specified data value is accessed at any address, and then detected by the debug hardware on the target processor.
For each of these types, use the HW Support group to specify how the match is configured.
To set up the hardware breakpoint you must enter:
Specifies the memory location where the new breakpoint is set.
Where supported by your target hardware, use the options from the right-arrow menu to qualify the location (see Using ranges and masks for details).
Enter the data value that triggers the breakpoint.
If you use this with data breakpoints, this compares the data value that is read or written. When used with an instruction hardware breakpoint, this can test the value of an instruction. That is, it can be used to find an instruction in a given range.
Where supported by your target hardware, use the options from the right-arrow menu to qualify the value match (see Using ranges and masks for details).
Depending on the Break/Tracepoint Type you select, the Location or the Value Match field might be unavailable. In this case, the field is grayed out.
Where your debug target supports breakpoint tests in hardware, they can be managed and edited using this group. If enabled, the display lists currently available tests, for example for an ARM architecture-based target:
Supports testing MAS signals from the core. This enables you to test the size of data data bus activity.
Supports testing nTrans signals from the core. This enables you to test the data not translate signal to differentiate access between a User mode and a privileged mode.
Supports hardware breakpoints that are dependent on some external condition.
The current test is shown in round brackets, for example Ignore or Any.
To change a selected test, highlight the test, for example Match=Mode:(Ignore),
and then click Edit Value to change how the
test is defined, shown in Figure 5.20.
Click OK to confirm the new test and close the list selection box. The HW Support display list shows the new test.
Highlight a test and click Reset to restore the default settings.