You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Target is an ATmega328P (Arduino Uno) connected to an Atmel-ICE via DebugWire. I also observed this behavior with an AVR Dragon as the probe.
Reads starting from a non-zero offset that cross flash page boundaries will erroneously copy from the same offset on the subsequent pages. This can overrun the page cache buffer in some cases. It also sends incorrect bytes to GDB.
Notice that the first read, which crosses a page from base address 0x80 to 0x100, has a different 8 bytes starting at 0x100 than actually present at 0x100. The erroneous 8 bytes are identical to the 8 bytes at the end of the page starting at 0x100, shown by the last print statement.
avarice correctly reads the pages at 0x80 and 0x100, but sends the wrong 8 bytes from 0x100, starting from address 0x178, which is the original offset into the first page.
I submitted #89 to fix this, but it was only for jtag2rw.cc, and it needs to be duplicated for jtag3rw.cc. I can make that revision soon.
The text was updated successfully, but these errors were encountered:
tlyu
linked a pull request
Dec 28, 2023
that will
close
this issue
Target is an ATmega328P (Arduino Uno) connected to an Atmel-ICE via DebugWire. I also observed this behavior with an AVR Dragon as the probe.
Reads starting from a non-zero offset that cross flash page boundaries will erroneously copy from the same offset on the subsequent pages. This can overrun the page cache buffer in some cases. It also sends incorrect bytes to GDB.
GDB session excerpt:
Notice that the first read, which crosses a page from base address
0x80
to0x100
, has a different 8 bytes starting at0x100
than actually present at0x100
. The erroneous 8 bytes are identical to the 8 bytes at the end of the page starting at0x100
, shown by the last print statement.The corresponding debug log from avarice:
avarice correctly reads the pages at
0x80
and0x100
, but sends the wrong 8 bytes from0x100
, starting from address0x178
, which is the original offset into the first page.I submitted #89 to fix this, but it was only for
jtag2rw.cc
, and it needs to be duplicated forjtag3rw.cc
. I can make that revision soon.The text was updated successfully, but these errors were encountered: