Yuri D'Elia
a697d00647
tools: add __pycache__ to gitignore
2021-07-30 06:38:12 +02:00
Yuri D'Elia
c79b1dcbfa
tools: add dump_crash to recover XFLASH crash dumps
2021-07-30 06:38:12 +02:00
Yuri D'Elia
8455c8e585
tools: Add/fix documentation
2021-07-30 06:38:12 +02:00
Yuri D'Elia
43b9a2d3df
dump: do not hard-code constants
2021-07-30 06:38:12 +02:00
Yuri D'Elia
11a6ac2f4f
dump parsing: refuse to continue on incomplete D23 dumps
...
We should try harder to handle incomplete D21/D23 dumps in the future,
but until D21 handled too, bail in D23 as well.
2021-07-30 06:38:12 +02:00
Yuri D'Elia
500515eb0a
Add GDB utility functions to load/inspect binary dumps
2021-07-30 06:38:12 +02:00
Yuri D'Elia
06eab4ac11
Handle XFLASH (D21) and serial (D23) dumps in elf_mem_map, add dump2bin
...
- Uniformly parse D2/D21/D23 dump types.
- Add dump2bin to parse/convert a dump into metadata and binary.
- Move the parsing into it's own module in order to be shared.
2021-07-30 06:38:12 +02:00
Yuri D'Elia
9f40fa6834
elf_mem_map: parse D23 output directly
2021-07-30 06:38:12 +02:00
Yuri D'Elia
8ec4104840
elf_mem_map: do not output registers in qdirstat output
2021-07-30 06:38:12 +02:00
Yuri D'Elia
d98e1b1cd9
elf_mem_map: uniquify file names in qdirstat output
2021-07-30 06:38:12 +02:00
Yuri D'Elia
9917689fdf
tools: update documentation for elf_mem_map
2021-07-30 06:38:12 +02:00
Yuri D'Elia
9958c449e3
elf_mem_map: remove DWARF version except in help
...
Fix version to DWARF3, which is what we actually support.
2021-07-30 06:38:12 +02:00
Yuri D'Elia
54e24036a8
elf_mem_map: add qdirstat output for space visualization
2021-07-30 06:38:12 +02:00
Yuri D'Elia
676b925c5f
elf_mem_map: cleanup
2021-07-30 06:38:12 +02:00
Yuri D'Elia
7bdee552ce
elf_mem_map: add declaration position in --map
2021-07-30 06:38:12 +02:00
Yuri D'Elia
d1720cba51
elf_mem_map: reduce some duplication
2021-07-30 06:38:12 +02:00
Yuri D'Elia
c875aef49c
elf_mem_map: increase width again to fit new output
2021-07-30 06:38:12 +02:00
Yuri D'Elia
71ef94da2e
elf_mem_map: improve alignment of arrays
2021-07-30 06:38:12 +02:00
Yuri D'Elia
cb4f5cff9f
elf_mem_map: improve display of array-of-strings
2021-07-30 06:38:12 +02:00
Yuri D'Elia
776b82a6db
elf_mem_map: expand member arrays
2021-07-30 06:38:12 +02:00
Yuri D'Elia
29513a369d
elf_mem_map: allow to customize the name column's width
2021-07-30 06:38:12 +02:00
Yuri D'Elia
7f76f62af9
elf_mem_map: fix uleb128 decoding (fixes incorrect member offsets)
2021-07-30 06:38:12 +02:00
Yuri D'Elia
a5635997b2
elf_mem_map: allow to annotate overlapping regions for clarity
2021-07-30 06:38:12 +02:00
Yuri D'Elia
1d82d2da64
get_elf_map: do not reprocess members twice
2021-07-30 06:38:12 +02:00
Yuri D'Elia
615e8575bb
elf_mem_map: decode structs
2021-07-30 06:38:12 +02:00
Yuri D'Elia
9ddb5991f2
elf_mem_map: allow to disable gap dumps
2021-07-30 06:38:12 +02:00
Yuri D'Elia
bb8d171f34
elf_mem_map: decode integers with correct endianness
2021-07-30 06:38:12 +02:00
Yuri D'Elia
1181e78484
elf_mem_map: handle all pointer types correctly
2021-07-30 06:38:12 +02:00
Yuri D'Elia
c311266a83
elf_mem_map: handle abstract locations
2021-07-30 06:38:12 +02:00
Yuri D'Elia
2718dbb42c
elf_mem_map: array n-dimensional expansion
2021-07-30 06:38:12 +02:00
Yuri D'Elia
29b8c89ec2
elf_mem_map: decode arrays (first dimension)
2021-07-30 06:38:12 +02:00
Yuri D'Elia
1de3fa51c9
elf_mem_map: decode doubles correctly
2021-07-30 06:38:12 +02:00
Yuri D'Elia
40b737e33d
elf_mem_map: switch to a named tuple for extensibility
2021-07-30 06:38:12 +02:00
Yuri D'Elia
f2192dc5e6
elf_mem_dump: fix unknown address
2021-07-30 06:38:12 +02:00
Yuri D'Elia
c321ba4821
elf_mem_map: also dump gaps between known regions
2021-07-30 06:38:12 +02:00
Yuri D'Elia
4c6339ac46
elf_mem_map: decode correctly void pointers
2021-07-30 06:38:12 +02:00
Yuri D'Elia
1095b26570
Add several low-level debugging tools
2021-07-30 06:38:12 +02:00
D.R.racer
4580b8a78c
Version changed (3.10.1 build 4587)
2021-07-16 07:37:11 +02:00
Yuri D'Elia
1279a6cf4b
Correctly read FW_VERSION_NR array from progmem
...
In PR #3093 the progmem array FW_VERSION_NR was introduced to store the
version components, however the code didn't read it properly using the
pgm_read_* functions, making version comparisons fail.
Fix the existing/unused is_provided_version_newer() and reuse it in
show_upgrade_dialog_if_version_newer().
Similarly also read/update correctly the version in the eeprom.
2021-06-28 06:36:26 +02:00
Yuri D'Elia
56e531d40a
Improve/fix D23 for M2.5/S printers
...
- Move D23 into it's own function inside Dcodes
- Correctly include a break in the switch statement
- Show the dumper status (enabled/disabled) after toggling
- Allow to generate an immediate dump via g-code using D23 E for
symmetry with D20 E
2021-06-25 08:46:55 +02:00
Yuri D'Elia
380e34d481
Include "Dcodes.h" after "Marlin.h" for configuration
...
This is needed in order to get the function prototypes right according
to the actual enabled configuration.
2021-06-25 08:46:55 +02:00
Voinea Dragos
ecce6f865f
write_command() no line number handling
2021-06-25 08:12:30 +02:00
Yuri D'Elia
53fcd6fc8f
Work-around GCC LTO codegen bug in process_commands()
...
When building with GCC 4.9.2 (bundled with PF-build-env-1.0.6.*), -Os
and LTO enabled, PID_autotune gets automatically inlined into
process_commands().
Sadly, due to the massive size of process_commands(), it results in
codegen bug doing a partial stack overwrite in process_commands()
itself, manifesting as random behavior depending on the timing of
interrupts and the codepath taken inside the merged function.
Mark the function as noinline and add a note about the affected compiler
version in order to be checked again in the future.
2021-06-24 07:39:28 +02:00
Yuri D'Elia
66ee9a295f
Remove useless function EEPROM_read_st
2021-06-22 19:08:20 +02:00
Yuri D'Elia
8d11ad9d2d
xfdump: correctly erase all sectors in xfdump_erase
2021-06-22 19:07:49 +02:00
DRracer
8ff9b184c2
Merge pull request #3093 from DRracer/version-shave
...
Remove FW version parsing
2021-06-22 10:27:42 +02:00
D.R.racer
88074ac6c8
Remove FW version parsing
...
as it can be done at compile time. Code size dropped by >800 bytes.
2021-06-22 08:49:52 +02:00
DRracer
6188870c2e
Merge pull request #3157 from wavexx/improve_d2
...
Add extra debugging functions & crash analysis
2021-06-22 07:37:30 +02:00
DRracer
f36b9173da
Merge pull request #3191 from wavexx/fix_longpress_isr
...
Handle Long-Press in the main loop
2021-06-22 07:09:01 +02:00
Yuri D'Elia
79287ffb3d
Use uint8_t consistently for the block buffer's index
...
Instead of using a mixture of int8_t, unsigned char and (incorrectly)
int, use uint8_t consistently for indexing the current block.
This improves the performance of the wait loop in plan_buffer_line,
which currently expands all comparisons to a word for no reason.
This also extends the theoretical limit to 128 entries.
Add some static assertions to ensure BLOCK_BUFFER_SIZE is correct.
2021-06-22 06:59:57 +02:00