lophtware projects
Report Type: IN
Report Size: 41 Bytes
Report ID | Reset Reason | ERROREPC | EPC | CAUSE | DESAVE | RA | Debug Word 1 | Debug Word 2 | Stored Configuration CRC32 | Calculated Configuration CRC32 |
---|---|---|---|---|---|---|---|---|---|---|
00000010 | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes | 4 bytes |
HID Report ID. Always 0x02
.
A 4-byte value that indicates the reason for the last reset / power-on event. See Device Reset Reasons for how to interpret this field, along with a list of values.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
A snapshot of the microcontroller’s ERROREPC
register value that was taken prior to certain resets. Useful for debugging.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
A snapshot of the microcontroller’s EPC
register value that was taken prior to certain resets. Useful for debugging.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
A snapshot of the microcontroller’s CAUSE
register value that was taken prior to certain resets. Useful for debugging.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
A snapshot of the microcontroller’s DESAVE
register value that was taken prior to certain resets. Useful for debugging.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
A snapshot of the microcontroller’s RA
register value that was taken prior to certain resets. Useful for debugging.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
When things are not going so well whilst hacking the firmware, sometimes a bit of old-skool debugging is called for. Rather than blinking lights or toggling pins these two words allow values to be persisted across device resets, ideal for troubleshooting general exceptions that are proving tricky to pin down.
These fields are Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
The CRC32 of the non-volatile configuration page that is stored in Flash. This value is also stored in the Flash along with the configuration and it was calculated at the time the configuration was stored.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.
The CRC32 of the non-volatile configuration page that is stored in Flash. This value is calculated at each reset and should be identical to the
Stored Configuration CRC32
value. If the values differ then there is corruption of the Flash and it is likely a re-flash of the firmware is required
or there is an irrecoverable hardware error (ie. flash endurance has been exceeded). A mismatched CRC32 will be reflected in the Reason Code
field which
will have its Safe Mode
flag set under this condition.
This field is Little Endian, ie. the Least Significant Byte of the word appears first. Bit numbering within the constituent bytes is unaffected.