Using an ATMEL ICE, I was able to set software breakpoints on an
atmega328p, the mcu would properly break but avarice would display
"ignoring break event" and I would then have to manually interrupt from
avr-gdb.
Running in debug mode, I noticed that the particular payload differed
slightly from what avarice is currently expecting. For example:
The breakpoint is set at 0000009E, so we're expecting to see a 0000004F
in the breakpoint event, which we do. If we look at the last message,
the relevant part of the payload is:
The code postulates that bytes 6 and 7 are the break status register,
I'm going to makes a wild guess that in the case of this particular
programmer byte 6 might be the low byte and byte 7 the high byte (b2
encoding), which is consistent with a software break.
Using an ATMEL ICE, I was able to set software breakpoints on an atmega328p, the mcu would properly break but avarice would display "ignoring break event" and I would then have to manually interrupt from avr-gdb.
Running in debug mode, I noticed that the particular payload differed slightly from what avarice is currently expecting. For example:
The breakpoint is set at 0000009E, so we're expecting to see a 0000004F in the breakpoint event, which we do. If we look at the last message, the relevant part of the payload is:
The code postulates that bytes 6 and 7 are the break status register, I'm going to makes a wild guess that in the case of this particular programmer byte 6 might be the low byte and byte 7 the high byte (b2 encoding), which is consistent with a software break.