Data Breakpoint Configuration Window for UC3

This window provides configuration options related to data breakpoint for UC3 devices.


You can enter a specific address in RAM (e.g.: 0x8004) directly or an expression that evaluates to an address in RAM (e.g.: &x). Make sure the expression you enter represents the address of the data to monitor.

Note: Data breakpoints on local variables can result in false hits due to reuse of stack memory. Suggestion to declare it as static for debugging purpose.

Access Mode

You can configure the breakpoint to break on a specific Access Mode. Three types of access modes are supported:

Access Size

You can configure the breakpoint to break on a specific Access Size. Four types of access size are supported:

Example for setting access size



1:    int word = 0;
2:    short *halfWord = (short*)&word;
4:    int main(void)
5:    {
6:      word = 0xAABBCCFF;
7:      *halfWord = 0xDDEE;
8:    }

For the above configuration and code, program breaks at line eight after halfWord access.

Data Match

Use the Data Match option to configure Data Breakpoint to compare the data at a specified location with a 32-bit value. Break event is triggered by a successful match.


32-bit (4-byte) value to compare with data at Location address. The value can be decimal or hexadecimal (e.g.: 100 or 0x64). Based on Access Size, respective bytes are used for data comparison. For example, if you select 'HalfWord Access' as Access Size and enter 0xAABBCCDD as Value, then only the last two bytes (0xCCDD) are used for data comparison. Further, you could refine the Value by specifying Mask.

Mask (Byte)

Each checkbox controls the significance of respective byte in the Value field. Select the appropriate checkbox to mask specific byte in the Value field. The number of checkboxes displayed is decided based on Access Size. Four checkboxes (one per byte) are displayed for 'Any' and 'Word Access', two checkboxes for 'HalfWord Access', and one checkbox for 'Byte Access'.

Match Value

A read-only field, which displays masked value based on Access Size, Value, and Mask (Byte) field. A masked byte is represented as 'XX', which means that byte is insignificant in data comparison.