Commit Graph

171 Commits

Author SHA1 Message Date
Roland Dobai
2083e4d359 Tools: Detect if the project is configured for a different Python
Closes https://github.com/espressif/esp-idf/issues/9993
2022-10-18 15:56:43 +02:00
Marius Vikhammer
afd7f1e9b7 idf.py hints: add hint IRAM overflow 2022-10-18 02:24:51 +00:00
David Cermak
ca709e7dc5 tools: Update idf-py hints with networking component info 2022-10-11 05:56:51 +00:00
Djordje Nedic
09e61e8a23 tools: Add --output-file argument to idf.py size commands
This commit ads the corresponding --output-file option from idf_size.py to idf.py.

This is needed because piping the idf.py size output to a file would result in CMake output being present in the file as well.
2022-09-27 15:41:36 +02:00
Roland Dobai
d08898aabc Merge branch 'fix/tools-gdbinit-with-elf-symbols' into 'master'
tools: fixed elf symbols load if gdbinit specified

Closes IDF-4991 and GCC-246

See merge request espressif/esp-idf!18089
2022-09-26 16:20:19 +08:00
Alexey Lapshin
4539020dac tools: fix openocd old logs print 2022-09-21 22:41:16 +04:00
Alexey Lapshin
c17a7f446c tools: move cmake executable check into function uses it
Before this change idf.py could exit with reason cmake does not exist in PATH
even cmake will not be executed by idf.py (e.g., 'idf.py gdb').
2022-09-21 22:39:03 +04:00
Alexey Lapshin
0fd4b09a46 tools: add test for ROM symbols in GDB 2022-09-21 22:39:03 +04:00
Alexey Lapshin
29655fe22a tools: fixed elf symbols load if gdbinit specified
ROM and bootloader symbols add to use in GDB (via 'idf.py gdb')
2022-09-21 22:39:03 +04:00
Ivan Grokhotkov
bfc17ce35a
tools: default to text output format in 'idf.py size' 2022-09-15 16:44:21 +02:00
Denys Almazov
53d62d2e60 tools: hints.yml fix 2022-09-05 21:03:19 +08:00
Roland Dobai
9307a932ad Tools: Handle IO error in idf.py output capturing
Closes https://github.com/espressif/esp-idf/issues/9649
2022-09-02 10:49:29 +02:00
simon.chupin
92ef2a4c83 Tools: Add unit tests for idf.py hints 2022-09-01 17:09:46 +02:00
Ivan Grokhotkov
13881a3832
idf.py: ensure that build log is always sanitized from color sequences
The actual output from the build tool (CMake/Ninja) may or may not
contain color escape codes, depending on various factors. The output
written to the log file should never include color escape codes,
though. This is because color escape codes in files are usually not
rendered as "color" in editors, and complicate reading. Also escape
codes would break the regular expressions used to display hints for
compilation errors.
2022-08-30 16:38:14 +02:00
Ivan Grokhotkov
d04b554065
tools: idf.py: enable CLICOLOR_FORCE for interactive builds
If stdout is a TTY (meaning that the output is not redirected), tell
the build tool (GNU Make or Ninja) to enable colorized output.

GNU Make and Ninja also check if their stdout is redirected and
strip color escape sequences in that case. CLICOLOR_FORCE environment
variable overrides this behavior.

With this change, if the compiler was launched with the
-fcolor-diagnostics flag and idf.py output is not redirected, the
final output in the terminal will be colorized.

(-fcolor-diagnostics is handled at CMake level by the previous commit)
2022-08-30 16:38:13 +02:00
Roland Dobai
cb81d14892 Merge branch 'bugfix/build_color_output_windows' into 'master'
tools: idf.py: use actual sys.stdout instead of the memoized one

See merge request espressif/esp-idf!19847
2022-08-30 16:31:42 +08:00
Ivan Grokhotkov
b548d9345e Revert "Merge branch 'feature/build_color_output' into 'master'"
This reverts merge request !19330
2022-08-30 15:14:47 +08:00
Ivan Grokhotkov
2c5b62f10e
tools: idf.py: use actual sys.stdout instead of the memoized one
This fixes the issue with build output not being colorized on Windows,
while the hints messages are colorized.

The issue occurred because sys.stdout and sys.stderr get overridden
by colorama.init() at runtime, but the default argument
output_stream=sys.stdout holds the reference to the"original"
sys.stdout.

colorama.init() (which, by the way, gets called via a curious chain
of imports, via idf_component_tools.manifest and tqdm package)
overrides standard streams, on Windows only. The overridden streams
contain logic to convert ANSI color codes into Windows Console API
calls to colorize the text.

Since read_and_write_stream function used the default value of
output_stream evaluated at module loading time, it was using the
original sys.stdout, not the one overridden by colorama.

One extra note is that while this does fix the coloring issue, the
solution is a bit fragile, as it relies on one of the following
(on Windows):
- colorama.init() is called (this can change if idf-component-manager
  stops importing tqdm)
- Sufficiently new version of Windows 10 is used, and ANSI color codes
  support is enabled in the Registry.
2022-08-30 01:30:32 +02:00
Roland Dobai
84acc58d3c Merge branch 'fix/disable_idf_py_moinitor_hints' into 'master'
Tools: Disable idf.py hints for IDF Monitor

Closes IDFGH-8110

See merge request espressif/esp-idf!19782
2022-08-29 22:51:55 +08:00
Ivan Grokhotkov
712743d777
idf.py: ensure that build log is always sanitized from color sequences
The actual output from the build tool (CMake/Ninja) may or may not
contain color escape codes, depending on various factors. The output
written to the log file should never include color escape codes,
though. This is because color escape codes in files are usually not
rendered as "color" in editors, and complicate reading. Also escape
codes would break the regular expressions used to display hints for
compilation errors.
2022-08-29 11:15:16 +02:00
Ivan Grokhotkov
12abe1f316
tools: idf.py: enable CLICOLOR_FORCE for interactive builds
If stdout is a TTY (meaning that the output is not redirected), tell
the build tool (GNU Make or Ninja) to enable colorized output.

GNU Make and Ninja also check if their stdout is redirected and
strip color escape sequences in that case. CLICOLOR_FORCE environment
variable overrides this behavior.

With this change, if the compiler was launched with the
-fcolor-diagnostics flag and idf.py output is not redirected, the
final output in the terminal will be colorized.

(-fcolor-diagnostics is handled at CMake level by the previous commit)
2022-08-29 11:15:00 +02:00
Roland Dobai
94a2d9f16a Merge branch 'bugfix/fix_hints_templates' into 'master'
tools: fix hints templates

See merge request espressif/esp-idf!19789
2022-08-29 16:43:14 +08:00
Roland Dobai
55b7b42724 Merge branch 'bugfix/fix_CN_letters_in_monitor' into 'master'
tools: fix multi-byte character appearance in idf.py monitor

See merge request espressif/esp-idf!19566
2022-08-29 16:36:01 +08:00
Djordje Nedic
5ee663d592 tools: Add CSV support to idf_size.py
This adds CSV support to idf_size.py and idf.py size actions and using the --format argument which accepts 'text', 'json' or 'csv' as input.

idf_size.py --json argument is deprecated but left to avoid a breaking change.

For idf.py size actions OUTPUT_JSON environment variable set at configuration time is overriden at target build time if --format is used.

Additionally, this commit refactors big parts of code, unified usage of json_dict and manually generated dictionaries for textual output and improves code quality in many parts.
2022-08-26 15:34:21 +02:00
simon.chupin
e635492c95 tools: fix hints templates 2022-08-25 18:00:23 +02:00
Roland Dobai
ff38cb8e0d Tools: Disable idf.py hints for IDF Monitor
The feature will be re-enabled later after a proper fix for the
following Github issue.

Closes https://github.com/espressif/esp-idf/issues/9610
2022-08-25 14:53:41 +02:00
simon.chupin
1cb4f8fdf4 tools: fix multi-byte character appearance in idf.py monitor 2022-08-23 13:25:38 +00:00
songruojing
304a8f142d esp32c6: introduce the target
Add esp32c6 target to tools and Kconfig
Create directories and files that are essential for `idf.py --preview set-target esp32c6`
2022-08-19 11:13:02 +08:00
simon.chupin
cc1eb81b2e tools: add support of templates for hints 2022-08-18 13:37:32 +02:00
Vilem Zavodny
a00e8771a7 tjpgd: Remove ROM patches and tests. 2022-08-17 14:42:45 +02:00
Mahavir Jain
6c2c05e8a0 Merge branch 'feature/esp_cryptoauthlib_from_manager' into 'master'
Push out esp-cryptoauthlib to component manager

See merge request espressif/esp-idf!19208
2022-08-16 17:01:53 +08:00
Roland Dobai
f8bcec07fa Merge branch 'fix/idf_py_logging' into 'master'
Tools: Fix idf.py hints to be enabled all the time and being able to disable them

See merge request espressif/esp-idf!19542
2022-08-15 22:36:15 +08:00
Roland Dobai
bd5e999408 Merge branch 'fix/idf_hints_errors_in_name' into 'master'
Tools: Correct idf.py hints for possible syntax errors

Closes IDF-5745

See merge request espressif/esp-idf!19545
2022-08-15 22:21:54 +08:00
Roland Dobai
152ce8884b Tools: Fix idf.py hints to be enabled all the time and being able to disable them 2022-08-15 13:01:39 +02:00
Sudeep Mohanty
f6d9617b28 hints: added compilation hints for FreeRTOS breaking changes 2022-08-15 12:48:51 +02:00
Roland Dobai
23441c2102 Tools: Correct idf.py hints for possible syntax errors 2022-08-12 16:50:30 +02:00
Mahavir Jain
42b4601039
tools: add hint for using esp-cryptoauthlib from manager 2022-08-12 11:27:22 +05:30
Armando (Dou Yiwen)
cdd50aff1a Merge branch 'docs/add_migration_notes_about_removing_esp_adc_cal_component' into 'master'
Docs: add migration notes / hints about removing esp adc cal component

See merge request espressif/esp-idf!19392
2022-08-12 10:52:40 +08:00
Roland Dobai
cacd27f93e Merge branch 'staging/add_hints_esp_system' into 'master'
Build: add hints for the breaking changes of esp_system related components

Closes IDF-5757

See merge request espressif/esp-idf!19499
2022-08-11 15:51:19 +08:00
Omar Chebib
49613ab832 Build: add hints for the breaking changes of esp_system related components 2022-08-11 11:35:04 +08:00
Armando
d792b49804 idf.py hints: add build error hints when legacy adc calibration driver is used 2022-08-11 11:26:20 +08:00
Laukik Hase
f887922cf4
protocols/provisioning: Added hints for breaking changes
- For migrating from ESP-IDF v4.4.x to v5.0
2022-08-10 10:39:54 +05:30
Roland Dobai
e2abad6db9 Merge branch 'feature/add-esp-hw-support-breaking-change-hints' into 'master'
system/esp_hw_support: Added hints for breaking changes

Closes IDF-5758

See merge request espressif/esp-idf!19388
2022-08-09 21:40:38 +08:00
Roland Dobai
0b2acbf974 Merge branch 'feature/system_migration_hints' into 'master'
idf.py hints: added hints for misc system breaking changes.

Closes IDF-5759

See merge request espressif/esp-idf!19390
2022-08-09 21:26:58 +08:00
Guillaume Souchere
dfcd7c3b88 esp_hw_support: add hints for breaking changes.
hints are added:
- to indicate that esp_cpu_ccount_t must be replaced by esp_cpu_cycle_count_t
- to indicate that esp_cpu_get/set_ccount must be replaced by esp_cpu_get/set_cycle_count
- to indicate that soc/cpu.h and compare_set.h were removed and user must include esp_cpu.h instead
- to indicate that esp_intr.h was removed and user must include esp_intr_alloc.h instead
- to indicate that esp_panic.h was made private and user must use the functionalities from esp_debug_helper.h instead
- to indicate that spilock.h, clk_ctrl_os.h and rtc_wdt.h must be included without the soc/
- to indicate that soc_log.h was renamed esp_hw_log.h and made private
2022-08-09 07:15:57 +02:00
Roland Dobai
311ab428c7 Merge branch 'bugfix/idf_py_gdb_s3_c3' into 'master'
tools: use built-in USB_SERIAL_JTAG for "idf.py openocd" on C3 and S3

See merge request espressif/esp-idf!19418
2022-08-08 22:53:39 +08:00
Ivan Grokhotkov
d366664b0d
tools: use built-in USB_SERIAL_JTAG for "idf.py openocd" on C3 and S3
Since both chips have built-in JTAG functionality, and there are no
official boards with FT2232H for these chips, use the built-in JTAG
by default.

To use them with esp-prog, set:
  OPENOCD_COMMANDS="-f board/esp32c3-ftdi.cfg"
or pass this via the --openocd-commands argument to idf.py.
2022-08-05 18:22:30 +02:00
Marius Vikhammer
dec246af1f idf.py hints: fix header not found regex to also match headerpaths with path seperator 2022-08-05 11:07:48 +08:00
Marius Vikhammer
5beea010e2 idf.py hints: added hints for misc system breaking changes. 2022-08-04 15:34:15 +08:00
Alexey Lapshin
5fb109f2e8 Tools: Add hint to resolve [u]int32_t formatting errors 2022-08-02 12:45:10 +04:00