Breakpoint Generator

To configure a breakpoint, the following steps should be taken:

1)The BPSEL (MCON.7) bit must be set to either 0 (for Breakpoint 0) or 1 (for Breakpoint 1).

2)The Program Memory Select bit, PMSEL (BPCON.1), must be either cleared if the breakpoint is to detect an access to data memory, or set if the breakpoint is to detect an access to program memory.

3)BPL and BPH should be loaded with the low and high byte, respectively, of the address at which the breakpoint should be triggered.

4)The Enable Breakpoint bit, EBP (BPCON.0), must then be set to activate the interrupt.

15.3.2Breakpoint Auxiliary Interrupt

Once a breakpoint interrupt has been configured, the BP (BPCON.7) interrupt flag will be set and, if enabled and not masked, a breakpoint auxiliary interrupt will be triggered whenever the specified memory address is accessed. The program must write a 1 back to BPCON.7 in order to clear the interrupt after processing it.

When a breakpoint interrupt occurs, the program may read the BPSEL (MCON.7) bit to determine which breakpoint was triggered. If BPSEL is clear, Breakpoint 0 triggered the interrupt. If BPSEL is set, Breakpoint 1 triggered the interrupt.

When using breakpoints, notice that the actual breakpoint occurs after the se- lected address. That is because of interrupt latency on the MSC1210. It takes a few cycles for the interrupt to be recognized and serviced. During that time the processor continues for two or three more instructions, which means that the program counter will be offset from the address in the breakpoint.

Additionally, when placing a breakpoint after a jump or return instruction, the breakpoint may be triggered even though the instruction was never executed. This is because the processor pre-fetches the instructions. The breakpoint hardware cannot distinguish between pre-fetched operations or those being executed. This usually means that breakpoints should not be placed on the first instruction of a routine, because just before that instruction is the jump or return instruction from a previous routine. A workaround is to place two NOPs at the beginning of the routine and then break after those NOPs.

15.3.3 Disabling a Breakpoint

To clear a previously set breakpoint, the following steps should be taken:

1)The BPSEL (MCON.7) bit must be set to either 0 (for breakpoint 0) or 1 (for breakpoint 1).

2)The Enable Breakpoint bit, EBP (BPCON.0), must be cleared to deactivate the interrupt.

15-8

Page 190
Image 190
Texas Instruments MSC1210 manual Breakpoint Auxiliary Interrupt, Disabling a Breakpoint