Commit Graph

5119 Commits

Author SHA1 Message Date
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
Yuri D'Elia
f4fcdae630 Fixup the DUMP_MAGIC constant 2021-06-22 00:04:39 +02:00
Yuri D'Elia
934b567e5a Remove "bonus" exclamation points from the crash message 2021-06-21 22:37:28 +02:00