Dcodes: add D20/D21/D22 to generate/read/clear dumps
This commit is contained in:
parent
8417083b13
commit
30402e0404
3 changed files with 96 additions and 2 deletions
|
@ -924,5 +924,45 @@ void dcode_9125()
|
|||
}
|
||||
#endif //PAT9125
|
||||
|
||||
|
||||
#endif //DEBUG_DCODES
|
||||
|
||||
#ifdef XFLASH_DUMP
|
||||
#include "xflash_dump.h"
|
||||
|
||||
void dcode_20()
|
||||
{
|
||||
if(code_seen('E'))
|
||||
xfdump_full_dump_and_reset();
|
||||
else
|
||||
{
|
||||
unsigned long ts = millis();
|
||||
xfdump_dump();
|
||||
ts = millis() - ts;
|
||||
DBG(_N("dump completed in %lums\n"), ts);
|
||||
}
|
||||
}
|
||||
|
||||
void dcode_21()
|
||||
{
|
||||
if(!xfdump_check_state())
|
||||
DBG(_N("no dump available\n"));
|
||||
else
|
||||
{
|
||||
KEEPALIVE_STATE(NOT_BUSY);
|
||||
DBG(_N("D21 - read crash dump\n"));
|
||||
print_mem(DUMP_OFFSET + offsetof(dump_t, data),
|
||||
DUMP_SIZE, dcode_mem_t::xflash);
|
||||
}
|
||||
}
|
||||
|
||||
void dcode_22()
|
||||
{
|
||||
if(!xfdump_check_state())
|
||||
DBG(_N("no dump available\n"));
|
||||
else
|
||||
{
|
||||
xfdump_reset();
|
||||
DBG(_N("dump cleared\n"));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -29,6 +29,12 @@ extern void dcode_9(); //D9 - Read/Write ADC (Write=enable simulated, Read=disab
|
|||
extern void dcode_10(); //D10 - XYZ calibration = OK
|
||||
extern void dcode_12(); //D12 - Log time. Writes the current time in the log file.
|
||||
|
||||
#ifdef XFLASH_DUMP
|
||||
extern void dcode_20(); //D20 - Generate an offline crash dump
|
||||
extern void dcode_21(); //D21 - Print crash dump to serial
|
||||
extern void dcode_22(); //D22 - Clear crash dump state
|
||||
#endif
|
||||
|
||||
#ifdef HEATBED_ANALYSIS
|
||||
extern void dcode_80(); //D80 - Bed check. This command will log data to SD card file "mesh.txt".
|
||||
extern void dcode_81(); //D81 - Bed analysis. This command will log data to SD card file "wldsd.txt".
|
||||
|
|
|
@ -9205,8 +9205,56 @@ Sigma_Exit:
|
|||
### D12 - Time <a href="https://reprap.org/wiki/G-code#D12:_Time">D12: Time</a>
|
||||
Writes the current time in the log file.
|
||||
*/
|
||||
|
||||
#endif //DEBUG_DCODES
|
||||
|
||||
#ifdef XFLASH_DUMP
|
||||
/*!
|
||||
### D20 - Generate an offline crash dump
|
||||
Generate a crash dump for later retrival.
|
||||
#### Usage
|
||||
|
||||
D20 [E]
|
||||
|
||||
### Parameters
|
||||
- `E` - Perform an emergency crash dump (resets the printer).
|
||||
### Notes
|
||||
- A crash dump can be later recovered with D21, or cleared with D22.
|
||||
- An emergency crash dump includes register data, but will cause the printer to reset after the dump
|
||||
is completed.
|
||||
*/
|
||||
case 20: {
|
||||
dcode_20();
|
||||
break;
|
||||
};
|
||||
|
||||
/*!
|
||||
### D21 - Print crash dump to serial
|
||||
Output the complete crash dump (if present) to the serial.
|
||||
#### Usage
|
||||
|
||||
D21
|
||||
|
||||
### Notes
|
||||
- The starting address can vary between builds, but it's always at the beginning of the data section.
|
||||
*/
|
||||
case 21: {
|
||||
dcode_21();
|
||||
break;
|
||||
};
|
||||
|
||||
/*!
|
||||
### D22 - Clear crash dump state
|
||||
Clear an existing internal crash dump.
|
||||
#### Usage
|
||||
|
||||
D22
|
||||
*/
|
||||
case 22: {
|
||||
dcode_22();
|
||||
break;
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef HEATBED_ANALYSIS
|
||||
|
||||
/*!
|
||||
|
|
Loading…
Add table
Reference in a new issue