Data Breakpoint Configuration Window for AVR ATmega



This window provides configuration options related to data breakpoint for ATmega devices. Address mask is optional.

Location

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:

Address Mask

Address Mask on Mega Data Breakpoints is optional. Use address mask to break on more than one address or a range of addresses on particular access.

Mask

Mask value to mask the Location address to define more than one address or range of addresses. Bits with value 1 in the mask are significant bits and 0 are don't care bits.

In general, for a given address A and mask M, an address B successfully matches when:

(A) & (M) == (B) & (M), where A is resolved address for the expression entered in Location, M is mask value entered in Mask and B is any address in RAM.

Masked Address

This is a read-only field which shows the range of matching addresses on which the program can break. The masked address is shown in the binary format for simplicity. 'X' represents don't care bits, remaining bits are expected to match.

E.g. 0b000000010XX000XX means it can break as per access mode, at addresses which have all bits as per this string except X bits. In this case 0th, 1st, 5th, and 6th bit (LSb) can be anything since these bits are don't care (X).

Note: ATmega devices don't support Data Masks.