Wykres commitów

128 Commity (master)

Autor SHA1 Wiadomość Data
Ivan Grokhotkov 71153c7dbb
feat(tools): add 'idf.py qemu' extension
This extension allows running programs in QEMU similar to running
them on a real chip:

- 'idf.py qemu' — builds and runs the program in QEMU. User gets
  a QEMU instance launched, and can work with it as a normal QEMU
  instance.
- 'idf.py qemu monitor' — same, but QEMU is launched in the
  background, and idf_monitor runs in the foreground, showing QEMU
  output. Compared to only running 'idf.py qemu' this enables, for
  example, automatic backtrace decoding.
- 'idf.py qemu gdb' — launches QEMU in the background and opens an
  interactive GDB prompt, connecting it to QEMU.
- 'idf.py qemu --gdb monitor' and 'idf.py gdb' in another shell:
  launches QEMU in the background, keeps it suspended until GDB is
  connected, and opens idf_monitor. GDB can be used in another shell
  to debug the application.
2023-12-03 07:45:19 +01:00
Jakub Kocka cde207e996 feat(tools): Added IDF path order check for Windows platform
This relates to old GH issue: https://github.com/espressif/esp-idf/issues/5994
2023-10-24 15:34:41 +02:00
Jakub Kocka d641168663 fix(tools): adjusted esptool @flash_args command print to prevent issues 2023-10-05 11:01:58 +02:00
Frantisek Hrbata 9511180b4a fix(tools): extend error message for failed python module import
Currently idf.py reports just "Please use idf.py only in an ESP-IDF shell environment".
Sometimes it may be useful to know for which module the import failed.
Also the problem does not have to be related to shell environment only, but the
python venv can be corrupted. This adds a little bit more verbose error
message.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-08-30 08:14:50 +02:00
Marek Fiala 076779f419 feat(tools): idf.py adding arguments from file via @filename.txt
- moved test inputs to one directory
- removed `-` from test arguments

Closes https://github.com/espressif/esp-idf/pull/11821
Closes https://github.com/espressif/esp-idf/issues/11783
2023-07-25 10:29:09 +02:00
Nebojsa Cvetkovic 4c1f574c3d feat(idf.py): Allow adding arguments from file via @filename.txt 2023-07-21 06:42:23 +01:00
Marek Fiala 206c46325a fix(tools): Tool curses import check
Verify that curses tool can be successfully imported on unix systems

When detected:
- installing esp-idf -> reinstall python environment
- using idf.py menuconfig -> raise error with hint message

Closes https://github.com/espressif/esp-idf/issues/11643
2023-07-12 13:23:06 +00:00
Marek Fiala ae99820399 Tools bugfix: Removed working directory when using idf.py
Added check for existence of current working directory when using idf.py

Closes https://github.com/espressif/esp-idf/issues/11476
2023-06-09 08:46:26 +00:00
Roland Dobai d75b7a7470 Tools: Improve the flashing instructions printed after "idf.py build"
Closes https://github.com/espressif/esp-idf/issues/11181
2023-04-20 15:30:34 +02:00
Roland Dobai fda3cf5607 Merge branch 'bugfix/ctrlc_port_detection' into 'master'
tools: allow to interrupt port detection

Closes IDF-6656

See merge request espressif/esp-idf!22062
2023-01-27 16:51:26 +08:00
Djordje Nedic 17d1e9ae36 bugfix: Fix windows path case sensitivity
This commit fixes an issue where paths on Windows are case insensitive, for instance when setting the build folder its name would be converted to lowercase.

The culprit is our realpath() function, that was calling os.path.normcase() internally, since we are removing that call it makes sense to just remove the function entirely and call os.path.realpath() wherever necessary.

Closes https://github.com/espressif/esp-idf/issues/10282
2023-01-17 20:51:46 +01:00
Frantisek Hrbata 92565a259f tools: allow to interrupt port detection
The main idf.py process has a handler for SIGINT, which actually just
ignores it. The get_default_serial_port() function is called within the
idf.py context to detect port for several tools(monitor,flash) and it's
not possible to terminate it because of this. Let's ignore SIGINT only
while running idf_monitor, which uses it to spawn gdb.

Fixes: c6e3eb0922 ("idf.py.exe changes to handle Ctrl+C in correct way. H..")

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2023-01-17 13:13:54 +01:00
Roland Dobai fa0db2c329 Tools: Improve idf.py error message when the argument value collides with the environment variable
Closes https://github.com/espressif/esp-idf/issues/10475
2023-01-03 18:56:50 +01: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
Roland Dobai abd754f487 Tools: Detect missing component manager and print proper error message 2022-08-08 09:43:31 +02:00
Fu Hanxi f5cbe88c22 ci: fix no subtyping for type annotation in python3.7
https://peps.python.org/pep-0544/
2022-07-27 11:11:09 +08:00
Marek Fiala 9c0969b512 Tools: Export selected target actions
Added option --json to action help, for export selected target actions
2022-07-19 20:02:55 +02:00
simon.chupin 44f3c19fa9 tools: Add python types hints 2022-06-15 14:33:29 +02:00
Sergei Silnov 69cf85e6a6 tools: Enable the component manager by default in CMake 2022-05-03 17:38:36 +02:00
Roland Dobai 49e9f254c5 Tools: Don't check the environment during idf.py shell completion
Closes https://github.com/espressif/esp-idf/issues/8362
2022-02-16 18:47:08 +01:00
Roland Dobai ef5c08a7be Revert "Tools: Don't check Python packages on every idf.py & cmake run"
This reverts commit 0265c79bcc.
2022-01-24 14:53:37 +01:00
Roland Dobai 0265c79bcc Tools: Don't check Python packages on every idf.py & cmake run 2022-01-18 14:55:47 +01:00
Roland Dobai b28d7e6850 Tools: Improve the Python package system
Introduce features into the Python package management system & manage
package versions outside of ESP-IDF repo.
2022-01-17 16:54:36 +01:00
Roland Dobai 460f3ad7b6 Merge branch 'feat/drop_msys' into 'master'
Tools: Remove MSYS/Mingw support

Closes IDF-3954

See merge request espressif/esp-idf!15862
2021-11-18 10:58:43 +00:00
Fu Hanxi 47fc761299 feat(idf.py): add `idf.py clang-check` and `idf.py clang-html-report` 2021-11-16 14:08:59 +08:00
Roland Dobai a1d0d1ffbe Tools: Remove MSYS/Mingw support
MSYS/Mingw was deprecated since v4.0 and it is removed in v5.0. Please
follow the getting started guide of the documentation to set up a
Windows Command Line or Power Shell based environment.
2021-11-10 17:25:07 +01:00
Marek Fiala ff18a96f7d tools: replace _ with - in idf.py
Closes https://github.com/espressif/esp-idf/issues/5126
2021-10-13 17:30:38 +08:00
Roland Dobai 407053592e Drop support for unsupported Python versions 2021-06-21 21:48:49 +02:00
Dmitry 00a7ecb5a3 Code cleanup. Bugfix after rebase with master. Formating. 2021-05-13 15:03:40 +03:00
Dmitry c6e3eb0922 idf.py.exe changes to handle Ctrl+C in correct way.
Handling Ctrl+C in correct way for gdbstubs.
2021-05-11 16:04:44 +03:00
Sergei Silnov cce0766ecc Run global_action_callbacks in predictable order 2021-03-15 10:37:06 +01:00
Fu Hanxi 0146f258d7 style: format python files with isort and double-quote-string-fixer 2021-01-26 10:49:01 +08:00
Roland Dobai 548ea1bdd5 tools: Wrap flash binaries into a UF2 file for flashing through USB MSC
@mmoskal This commit adds basic support for UF2 into ESP-IDF.
2020-12-29 18:14:47 +01:00
martin.gano f4ea2dcb74 Tools: add Python 2 deprecation warning 2020-12-02 11:08:48 +01:00
martin.gano 304cff9f75 Redirect warning to stderr and unset temporary shell procedure 2020-11-11 15:12:58 +01:00
martin.gano 346b002d9a enable autocompletion for command idf.py 2020-11-03 23:27:58 +01:00
Angus Gratton cc2b5b4e13 tool: Fix 'idf.py bootloader' error if Secure Boot is enabled
If Secure Boot is enabled, there's no bootloader flasher arguments in the
project (to encourage careful manual flashing), so this command would
fail with a KeyError.
2020-07-27 07:27:07 +00:00
Ivan Grokhotkov 7f977094bd Merge branch 'feature/idfpy_add_help_subcommand' into 'master'
idf.py: Add help and build-system-targets subcommands

Closes IDF-1884

See merge request espressif/esp-idf!9615
2020-07-21 22:06:14 +08:00
Sergei Silnov 435c5564f4 idf.py: Add help subcommand 2020-07-14 17:07:32 +02:00
Sergei Silnov 85de9d4f16 idf.py: Add help for options with envvar defaults 2020-06-30 12:04:35 +02:00
Roland Dobai 270d8b468a tools: Don't generate pyc files 2020-05-20 12:07:51 +02:00
Ivan Grokhotkov 514596cb81 Merge branch 'feature/idf_py_replace_run_with_call' into 'master'
tools: idf.py: replace the "run" method of Task with the magic "__call__" method

See merge request espressif/esp-idf!8763
2020-05-18 15:22:04 +08:00
Brian Pugh 8ed7fe3e3d tools/idf.py: replace the "run" method of Task with the magic "__call__" method
Merges https://github.com/espressif/esp-idf/pull/5279
2020-05-15 19:44:07 +02:00
Brian Pugh fa3d9573ce tools/idf.py: prevent reloading duplicate extension paths. Do not load cwd if IDF_EXTRA_ACTIONS_PATH is not set.
Merges https://github.com/espressif/esp-idf/pull/5278
2020-05-15 19:39:36 +02:00
Roland Dobai ab9f714248 Add build system support for programming ESP32-S2 using DFU utils 2020-04-30 07:59:18 +02:00
Sergei Silnov dfafa98253 Use component manager if available as python package 2019-12-19 16:48:36 +01:00
Angus Gratton f78b2158b1 Merge branch 'bugfix/menuconfig_argv_encoding' into 'master'
menuconfig: fix the MENUCONFIG_STYLE encoding issue and CLI env issue

See merge request espressif/esp-idf!6910
2019-12-11 12:47:32 +08:00
morris 5efb1140ac esptool: add chip and stub option 2019-12-09 09:48:16 +08:00
michael 3e55baea90 menuconfig: fix the MENUCONFIG_STYLE encoding issue and CLI env issue
1. Call cli with explicit argv

When using debugging tools like `pydbg.py --some_arg idf.py -G Ninga
build`, those tools usually call the python script with sys.argv
modified to correct value. But if the cli is called with argv blank, the
cli will get the argv again, and finally get the original command line,
which is incorrect for debugging.

2. Encode the style unicode string back to ascii in menuconfig cmd

On Windows MSYS python2.7, the unicode string set in os.environ will
cause the subprocess creating to fail. All os.environ values should be
strings.
2019-12-05 01:39:46 +08:00
Sergei Silnov 506c46fddc idf.py: add exit_with_error for deprecation 2019-12-02 10:41:23 +01:00