diff --git a/.github/workflows/docs_build.yml b/.github/workflows/docs_build.yml index 9ddaf9dfd..db21711e6 100644 --- a/.github/workflows/docs_build.yml +++ b/.github/workflows/docs_build.yml @@ -1,4 +1,4 @@ -name: Documentation Build and Deploy CI +name: Documentation Build and Preview Deploy CI on: push: diff --git a/.github/workflows/docs_production.yml b/.github/workflows/docs_production.yml index 73ba5caec..e838dea50 100644 --- a/.github/workflows/docs_production.yml +++ b/.github/workflows/docs_production.yml @@ -32,11 +32,11 @@ jobs: env: # Deploy to production server # DOCS_BUILD_DIR: "./docs/_build/" - DOCS_DEPLOY_PRIVATEKEY: ${{ secrets.DOCS_PREVIEW_PRIVATEKEY }} - DOCS_DEPLOY_PATH: ${{ secrets.DOCS_PREVIEW_PATH }} - DOCS_DEPLOY_SERVER: ${{ secrets.DOCS_PREVIEW_SERVER }} - DOCS_DEPLOY_SERVER_USER: ${{ secrets.DOCS_PREVIEW_USER }} - DOCS_DEPLOY_URL_BASE: ${{ secrets.DOCS_PREVIEW_URL_BASE }} + DOCS_DEPLOY_PRIVATEKEY: ${{ secrets.DOCS_PROD_PRIVATEKEY }} + DOCS_DEPLOY_PATH: ${{ secrets.DOCS_PROD_PATH }} + DOCS_DEPLOY_SERVER: ${{ secrets.DOCS_PROD_SERVER }} + DOCS_DEPLOY_SERVER_USER: ${{ secrets.DOCS_PROD_USER }} + DOCS_DEPLOY_URL_BASE: ${{ secrets.DOCS_PROD_URL_BASE }} run: | sudo apt update sudo apt install python3-pip python3-setuptools diff --git a/.github/workflows/pr-comment.yml b/.github/workflows/pr-comment.yml new file mode 100644 index 000000000..4c938dd76 --- /dev/null +++ b/.github/workflows/pr-comment.yml @@ -0,0 +1,62 @@ +name: Comment on pull request +on: + workflow_run: + workflows: [CI] + types: [completed] +jobs: + pr_comment: + if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' + runs-on: ubuntu-latest + steps: + - uses: actions/github-script@v7 + with: + # This snippet is public-domain, taken from + # https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml + script: | + async function upsertComment(owner, repo, issue_number, purpose, body) { + const {data: comments} = await github.rest.issues.listComments( + {owner, repo, issue_number}); + + const marker = ``; + body = marker + "\n" + body; + + const existing = comments.filter((c) => c.body.includes(marker)); + if (existing.length > 0) { + const last = existing[existing.length - 1]; + core.info(`Updating comment ${last.id}`); + await github.rest.issues.updateComment({ + owner, repo, + body, + comment_id: last.id, + }); + } else { + core.info(`Creating a comment in issue / PR #${issue_number}`); + await github.rest.issues.createComment({issue_number, body, owner, repo}); + } + } + + const {owner, repo} = context.repo; + const run_id = ${{github.event.workflow_run.id}}; + + const pull_requests = ${{ toJSON(github.event.workflow_run.pull_requests) }}; + if (!pull_requests.length) { + return core.error("This workflow doesn't match any pull requests!"); + } + + const artifacts = await github.paginate( + github.rest.actions.listWorkflowRunArtifacts, {owner, repo, run_id}); + if (!artifacts.length) { + return core.error(`No artifacts found`); + } + let body = `Download the artifacts for this pull request:\n`; + for (const art of artifacts) { + body += `\n* [${art.name}.zip](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`; + } + + core.info("Review thread message body:", body); + + for (const pr of pull_requests) { + body += `\n [Espressif-IDE Documentation Preview](https://preview-docs.espressif.com/projects/espressif-ide/en/${pr.number}-merge/index.html)`; + await upsertComment(owner, repo, pr.number, + "nightly-link", body); + } \ No newline at end of file diff --git a/FAQ.md b/FAQ.md index 914c865fa..c0bc72827 100644 --- a/FAQ.md +++ b/FAQ.md @@ -95,19 +95,6 @@ Check below links: - https://esp32.com/viewtopic.php?f=13&t=12327&start=10#p50137 - https://stackoverflow.com/questions/6908948/java-sun-security-provider-certpath-suncertpathbuilderexception-unable-to-find -## Why Java 11 recommended for IDF Eclipse Plugin? -We recommend using Java 11(that's the latest LTS version from Oracle) and above while working with IDF Eclipse Plugin considering Eclipse 2020-06 has a requirement for Java 11 to work with the CDT. Here are some important pointers from Eclipse. - -### Installing CDT 9.11 on Eclipse 2020-06 and later requires a workaround when using Java 8 -Check this - https://wiki.eclipse.org/CDT/User/NewIn911#Release - -CDT 9.11 only requires Java 8 to run. However, a new feature in Eclipse 2020-06 and later means that the install wizard may prevent installation. The workaround is to disable "Verify provisioning operation is compatible with currently running JRE" in Windows -> Preferences -> Install/Update. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=564407#c1 - -### CDT 10.0 required Java 11 or later -Check this - https://wiki.eclipse.org/CDT/User/NewIn100 - -Starting with CDT 10.0 Java 11 or later is required to run CDT. This aligns with requirements of Eclipse IDE which also requires Java 11 to run starting in 2020-09. - ## How to delete Launch Targets from the Eclipse There is no UI option to delete launch targets directly from the eclipse, however this can be achieved by following the below instructions. - Go to the Eclipse workspace directory. For example: In my case /Users/myName/myTesteclipseWorkspace diff --git a/docs/en/additionalfeatures.rst b/docs/en/additionalfeatures.rst index e16834ae0..d65988619 100644 --- a/docs/en/additionalfeatures.rst +++ b/docs/en/additionalfeatures.rst @@ -3,7 +3,21 @@ Additional IDE Features .. toctree:: :maxdepth: 1 + LSP C/C++ Editor + CMake Editor ESP-IDF Application Size Analysis ESP-IDF Terminal Install ESP-IDF Components - \ No newline at end of file + Heap Tracing + ESP-IDF OpenOCD Debugging + GDB Stub Debugging + Core Dump Debugging + Application Level Tracing + Partition Table Editor + NVS Partition Editor + Write Binary to Flash + DFU Flashing + Wokwi Simulator + Switch Between Languages + + diff --git a/docs/en/additionalfeatures/appleveltracing.rst b/docs/en/additionalfeatures/appleveltracing.rst new file mode 100644 index 000000000..00b1c9e08 --- /dev/null +++ b/docs/en/additionalfeatures/appleveltracing.rst @@ -0,0 +1,47 @@ +Application Level Tracing +========================= + +ESP-IDF provides a useful feature for program behavior analysis called `Application Level Tracing `_. The IDF-Eclipse plugin has a UI that allows you to start and stop tracing commands and process the received data. To familiarize yourself with this library, you can use the `app_trace_to_host `_ project or the `app_trace_basic `_ project (if using esp-idf 5.1 and higher). These projects can be created from the plugin itself: + +.. image:: ../../../media/AppLvlTracing_1.png + :alt: Application Level Tracing project creation + +Before using application-level tracing, create a debug configuration for the project where you must select the board you are using to successfully start the OpenOCD server. + +.. image:: ../../../media/AppLvlTracing_3.png + :alt: Debug configuration setup + +After creating the debug configuration, right-click on the project in the Project Explorer and select *ESP-IDF > Application Level Tracing*: + +.. image:: ../../../media/AppLvlTracing_2.png + :alt: Application Level Tracing option in the context menu + +It may take a moment to open the application level tracing dialog, as the OpenOCD server starts first. At the top of the dialog, you will find auto-configured fields that you can adjust for the trace start command. + +**Start Command:** + +- Syntax: ``start [poll_period [trace_size [stop_tmo [wait4halt [skip_size]]]]`` +- Arguments: + - ``outfile``: Path to the file where data from both CPUs will be saved, with format ``file://path/to/file``. + - ``poll_period``: Data polling period (in ms). If greater than 0, the command runs in non-blocking mode. Default: 1 ms. + - ``trace_size``: Maximum data size to collect (in bytes). Tracing stops after the specified amount of data is received. Default: -1 (disabled). + - ``stop_tmo``: Idle timeout (in sec). Stops tracing if there is no data for the specified period. Default: -1 (disabled). + - ``wait4halt``: If 0, tracing starts immediately; otherwise, waits for the target to halt before starting. Default: 0. + - ``skip_size``: Bytes to skip at the start. Default: 0. + +Additional information can be found `here `_. + +.. image:: ../../../media/AppLvlTracing_4.png + :alt: Application Level Tracing dialog + +The next two fields, *Trace Processing Script* and *Start Parsing Command*, are used to parse the output file. + +- **Trace Processing Script**: Path to the parsing script, which by default is ``logtrace_proc.py`` from esp-idf. +- **Start Parsing Command**: Allows you to check and edit the parsing command if necessary. By default, it is configured as: ``$IDF_PATH/tools/esp_app_trace/logtrace_proc.py/path/to/trace/file/path/to/program/elf/file``. + +The *Start parse* button is disabled until a dump file is generated. To generate it, click the *Start* button at the bottom of the dialog box. This button changes to *Stop* once tracing starts, allowing you to stop it. + +When the output file is available, click *Start parse* to view the parsed script output in the Eclipse console: + +.. image:: ../../../media/AppLvlTracing_5.png + :alt: Parsed script output in Eclipse console diff --git a/docs/en/additionalfeatures/application-size-analysis.rst b/docs/en/additionalfeatures/application-size-analysis.rst index 042df4cb8..58da1b354 100644 --- a/docs/en/additionalfeatures/application-size-analysis.rst +++ b/docs/en/additionalfeatures/application-size-analysis.rst @@ -1,2 +1,24 @@ ESP-IDF Application Size Analysis =================================== + +The Application Size Analysis editor provides a way to analyze the static memory footprint of your application. It has two sections: + +- The **Overview** section provides a summary of the application's memory usage; +- The **Details** section includes in-depth details about components and per-symbol level memory information. + +The **Details** table viewer also provides searching and sorting capabilities on various columns. + +To launch the Application Size Analysis editor: + +#. Right-click on the project. +#. Select **ESP-IDF > Application Size Analysis** menu option to launch the editor. + +**Application Size Analysis - Overview** + +.. image:: ../../../media/sizeanalysis_overview.png + :alt: Application Size Analysis - Overview + +**Application Size Analysis - Details** + +.. image:: ../../../media/sizeanalysis_details.png + :alt: Application Size Analysis - Details diff --git a/docs/en/additionalfeatures/clangd_cdt_support.rst b/docs/en/additionalfeatures/clangd_cdt_support.rst new file mode 100644 index 000000000..c97da0cf9 --- /dev/null +++ b/docs/en/additionalfeatures/clangd_cdt_support.rst @@ -0,0 +1,58 @@ +.. _clangd_cdt_support: + +Espressif-IDE LSP Support for C/C++ Editor +========================================== + +The Espressif-IDE 3.0.0 (and higher) now includes the `Eclipse CDT-LSP `, enabling support for the latest C/C++ standards and providing an LSP-based C/C++ Editor. This editor, powered by the `LLVM ` clangd C/C++ language server, offers advanced functionality for ESP-IDF developers. + +In line with this enhancement, we've discontinued support for the standard CDT Editor/Indexer, as it only offers support for up to C++ 14. This has been replaced with a new LSP editor, especially considering that ESP-IDF now utilizes C++ 20 (with GCC 11.2) in v5.0.x, transitions to C++ 23 (with GCC 12.1) in v5.1, and to C++ 23 with GCC 13.1 in v5.2. + +The LSP powered C/C++ editor greatly benefits ESP-IDF developers by aligning with the latest language standards and compiler versions, enhancing productivity, and improving code quality. + +You can find more details on the LSP based C/C++ Editor features `here `_. + +Prerequisites +------------- +* You need to have Espressif-IDE 3.0.0 (and higher) to have access to the LSP powered C/C++ editor. +* If you are updating Eclipse CDT or Espressif-IDE via the update site, you need to select the ESP-IDF Eclipse Plugin and its dependencies, as shown below: + + .. image:: ../../../media/clangd/cdtlsp_updatesite.png + +Clangd Configuration +-------------------- + +By default, the esp-clang toolchain is installed as a part of the ESP-IDF tools installation process, and clangd **Path** is configured in the preferences. + +The **Drivers** path and **--compile-commands-dir** path will be configured based on the selected target (esp32, esp32c6 etc.) and the project you're building. + +However, if there are any issues in configuration, this can be configured in the following way: + +1. Go to `Window` > `Preferences` > `C/C++` > `Editor(LSP)` +2. Navigate to `clangd` node +3. Provide `Drivers` path as shown in the screenshot. +4. Set `--compile-commands-dir=/project/build` in the additional argument section. +5. Click on `Apply and Close`. + + .. image:: ../../../media/clangd/clangd_config.png + +By default, when you create a new project, a `.clangd` configuration file is created with the following arguments. + +However, if you are dealing with an existing project, please create a `.clangd` file at the root of the project and add the following content. + +.. code-block:: yaml + + CompileFlags: + CompilationDatabase: build + Remove: [-m*, -f*] + +Disable CDT Indexer +------------------- + +With Espressif-IDE 3.0.0 (and higher), the CDT Indexer is disabled by default; instead, the LSP Indexer server will be used for code analysis. + +If, for some reason, it is not disabled, please follow the steps below to disable it. + +1. Go to `Window` > `Preferences` > `C/C++` > `Indexer` +2. Uncheck `Enable Indexer` option and then click on `Apply and Close`. + + .. image:: ../../../media/clangd/cdt_indexer_disable.png diff --git a/docs/en/additionalfeatures/clangtoolchain.rst b/docs/en/additionalfeatures/clangtoolchain.rst new file mode 100644 index 000000000..3fdf5878c --- /dev/null +++ b/docs/en/additionalfeatures/clangtoolchain.rst @@ -0,0 +1,15 @@ +Configuring Clang Toolchain +=========================== + +1. After creating a new project, edit the project configuration. + + .. image:: https://user-images.githubusercontent.com/24419842/194882285-9faadb5d-0fe2-4012-bb6e-bc23dedbdbd2.png + :alt: Project Configuration + +2. Go to the ``Build Settings`` tab and select the clang toolchain: + + .. image:: https://user-images.githubusercontent.com/24419842/194882462-3c0fd660-b223-4caf-964d-58224d91b518.png + :alt: Clang Toolchain Selection + +.. note:: + Clang toolchain is currently an experimental feature, and you may encounter build issues due to incompatibility with ESP-IDF. The following describes how to address the most common build issues on the current ESP-IDF master (ESP-IDF v5.1-dev-992-gaf28c1fa21-dirty). To work around clang build errors, please refer to `this workaround guide `_. diff --git a/docs/en/additionalfeatures/cmakeeditor.rst b/docs/en/additionalfeatures/cmakeeditor.rst new file mode 100644 index 000000000..707415796 --- /dev/null +++ b/docs/en/additionalfeatures/cmakeeditor.rst @@ -0,0 +1,12 @@ +CMake Editor +============ + +The CMake Editor Plug-in is integrated with the IDF Plugin for editing CMake files, such as ``CMakeLists.txt``. It provides syntax coloring, CMake command content assistance, and code templates. + +.. image:: ../../../media/cmake_editor_ca.png + :alt: CMake Editor with content assist + +CMake editor preferences can be controlled using **Eclipse > Preferences > CMakeEd**. + +.. image:: ../../../media/cmake_editor_preferences.png + :alt: CMake editor preferences diff --git a/docs/en/additionalfeatures/configureenvvariables.rst b/docs/en/additionalfeatures/configureenvvariables.rst new file mode 100644 index 000000000..311f9e37e --- /dev/null +++ b/docs/en/additionalfeatures/configureenvvariables.rst @@ -0,0 +1,7 @@ +Configuring Environment Variables +================================== + +All the required environment variables are automatically configured by the IDE during the ESP-IDF and Tools installation process (``Espressif > ESP-IDF Manager > Add ESP-IDF``). You can verify these variables in the Preferences page under ``C/C++ > Build > Environment``. + +.. image:: ../../../media/2_environment_pref.png + :alt: Environment Preferences diff --git a/docs/en/additionalfeatures/coredumpdebugging.rst b/docs/en/additionalfeatures/coredumpdebugging.rst new file mode 100644 index 000000000..7c93cda3c --- /dev/null +++ b/docs/en/additionalfeatures/coredumpdebugging.rst @@ -0,0 +1,20 @@ +.. _coredumpdebugging: + +Core Dump Debugging +==================== + +The IDF-Eclipse plugin allows you to debug the core dump if any crash occurs on the chip and the configurations are set. Currently, only the UART core dump capture and debugging is supported. + +To enable core dump debugging for a project: + +1. You need to enable it first in `sdkconfig`. Launch the `sdkconfig` in the project root by double-clicking on it which will open the configuration editor. + +2. Click on the `Core Dump` from the settings on the left and select `Data Destination` as `UART`. + +.. image:: ../../../media/CoreDumpDebugging/sdkconfig_editor.png + +This will enable the core dump debugging, and whenever you connect a serial monitor for that project, if any crash occurs, it will load the dump and open a debug perspective in Eclipse to let you diagnose the dump where you can view all the information in the core dump. + +You can view the registers stack trace and even view the value of variables in the stack frame. + +To exit the debug session: simply press the `stop` button. diff --git a/docs/en/additionalfeatures/dfu.rst b/docs/en/additionalfeatures/dfu.rst new file mode 100644 index 000000000..7d742886d --- /dev/null +++ b/docs/en/additionalfeatures/dfu.rst @@ -0,0 +1,42 @@ +.. _dfuflashing: + +Device Firmware Upgrade (DFU) through USB +========================================== + +Device Firmware Upgrade (DFU) is a mechanism for upgrading the firmware of devices through Universal Serial Bus (USB). There are a few requirements that need to be met: + +- DFU is supported by ESP32-S2 and ESP32-S3 chips. +- You will need to do some electrical connection work. Here is a `guide `_ for the ESP32-S2 board. The necessary connections for the USB peripheral are shown in the following table. + ++------+---------------+ +| GPIO | USB | ++======+===============+ +| 20 | D+ (green) | ++------+---------------+ +| 19 | D- (white) | ++------+---------------+ +| GND | GND (black) | ++------+---------------+ +| +5V | +5V (red) | ++------+---------------+ + +After meeting the above requirements: + +1. The chip needs to be in bootloader mode for detection as a DFU device and flashing. This can be achieved by pulling GPIO0 down (e.g., pressing the BOOT button), pulsing RESET down for a moment, and releasing GPIO0. +2. Install USB drivers (Windows only). The drivers can be installed by the `Zadig tool `_. + - Ensure that the device is in download mode before running the tool and that it detects the device before installing the drivers. + - The Zadig tool might detect several USB interfaces of the target. Install the WinUSB driver only for the interface without a driver installed (likely Interface 2), and avoid re-installing drivers for other interfaces. + - Manual driver installation via Device Manager in Windows is not recommended, as it might cause flashing issues. + +After meeting the above requirements, you can proceed to build and flash via DFU. To use DFU: + +1. Edit the active launch configuration. +2. In the main tab, select the *Flash over DFU* option. +3. Select a suitable IDF target for DFU. +4. When using the build command, an extra file (``dfu.bin``) will be created, which can be used later for flashing. + +.. image:: https://user-images.githubusercontent.com/24419842/226182180-286099d3-9c1c-4394-abb0-212d43054529.png + :alt: DFU actions + +Additional information, including common errors and known issues, is available in `this `_. + diff --git a/docs/en/additionalfeatures/esp-terminal.rst b/docs/en/additionalfeatures/esp-terminal.rst index 7f711fb56..1e9b71cd4 100644 --- a/docs/en/additionalfeatures/esp-terminal.rst +++ b/docs/en/additionalfeatures/esp-terminal.rst @@ -1,2 +1,14 @@ ESP-IDF Terminal =============================== + +This would launch a local terminal with all the environment variables set under ``Preferences`` > ``C/C++`` > ``Build`` > ``Environment``. The default working directory would be either the currently selected project or ``IDF_PATH`` if there is no project selected. + +The terminal ``PATH`` is also configured with ``esptool``, ``espcoredump``, ``partition_table``, and ``app_update`` component paths, so it is convenient to access them directly from the ESP-IDF terminal. + +To launch the ESP-IDF Terminal: + +- Click on the ``Open a Terminal`` icon from the toolbar. +- Choose ``ESP-IDF Terminal`` from the terminal drop-down and click ``OK`` to launch a terminal. + +.. image:: ../../../media/idf_terminal.png + :alt: ESP-IDF Terminal diff --git a/docs/en/additionalfeatures/gdbstubdebugging.rst b/docs/en/additionalfeatures/gdbstubdebugging.rst new file mode 100644 index 000000000..039a82827 --- /dev/null +++ b/docs/en/additionalfeatures/gdbstubdebugging.rst @@ -0,0 +1,48 @@ +.. _gdbstubdebugging: + +GDBStub Debugging +================= +You can now use the GDBStub debugging inside our Eclipse plugin to help you diagnose and debug issues on chips via Eclipse when it is in panic mode. + +To enable GDBStub debugging for a project: + +1. Launch the `sdkconfig` in project root by double-clicking on it which will open the configuration editor. + +.. image:: ../../../media/GDBStubDebugging/sdkconfig_editor.png + +2. Expand the `Component Config` section and select `ESP System Settings`. From the settings on the right for `Panic Handler behaviour` select the `GDBStub on Panic option` from the list. + +.. image:: ../../../media/GDBStubDebugging/sdkconfig_editor_panic_behavior.png + +Now you will be taken to the GDBStub debugger automatically when you connect the serial monitor and there is a panic for this example. + +To use the GDBStub debugging for a project: + +1. Create a template `hello_world` project and add the following lines in the main C file: + + .. code-block:: c + + This is a global variable
+ COREDUMP_DRAM_ATTR uint8_t global_var; + +2. Now add these two lines just above the `esp_restart()` function: + + .. code-block:: c + + global_var = 25; + assert(0); + +The final file should be something like this: + +.. image:: ../../../media/GDBStubDebugging/code_example.png + +Build and flash the project and launch the serial monitor. On line number 45, we are signaling for a failing assert which will put the chip in panic mode and when that line reaches, you will be prompted to switch the perspective to debug mode and the chip will be halted. + +Remember that this is a panic mode and you cannot continue the execution from here, you will have to stop and restart the chip through IDF commands or simply restart the serial monitor. + +.. image:: ../../../media/GDBStubDebugging/debug_panic_mode.png + +You can view the registers stack trace and even view the value of variables in the stack frame. + +To exit the debug session simply press the `stop` button. + diff --git a/docs/en/additionalfeatures/heaptracing.rst b/docs/en/additionalfeatures/heaptracing.rst new file mode 100644 index 000000000..346a8c7a5 --- /dev/null +++ b/docs/en/additionalfeatures/heaptracing.rst @@ -0,0 +1,87 @@ +.. _heap_tracing: + +Heap Tracing +============ + +Heap tracing enables you to monitor memory usage over time by generating and analyzing a `svdat` dump file. The IDF Eclipse Plugin supports generating heap trace files through special breakpoints. For more information on SDK-level configuration and tracing features, refer to the official `ESP-IDF documentation `_. + +Generating Dump File +-------------------- +1. **Open the sysview\_heap\_log.c file** + + From the Project Explorer, locate and open the `sysview_heap_log.c` file from the **system** templates project. + + .. image:: ../../../media/HeapTracing/sysview_heap_log_file.PNG + :alt: sysview_heap_log.c file + +2. **Add a Breakpoint and Configure Properties** + + Add a breakpoint at the desired line, then right-click on the breakpoint icon in the editor and select `Breakpoint Properties…`. + + .. image:: ../../../media/HeapTracing/breakpoint_properties_popup.png + :alt: Breakpoint Properties + +3. **Define Heap Tracing Action** + + In the Breakpoint Properties window, go to `Actions`, click `New`, and select `Heap Tracing` from the `Action Type` dropdown. + - For the initial breakpoint, set the action to **Start Heap Trace** and specify the save location for the dump file (recommended to store in the project directory). Name the action meaningfully, then click OK. + + .. image:: ../../../media/HeapTracing/heap_tracing_action.png + :alt: Heap Tracing Action + +4. **Attach the Action to the Breakpoint** + + After creating the action, click `Attach` to link it to the breakpoint, which will display it under the Actions for this breakpoint section. + + .. image:: ../../../media/HeapTracing/breakpoint_properties_actions_start_attached.png + :alt: Attach Action + +5. **Apply and Create Additional Breakpoint** + + Now you have a breakpoint that will start tracing and generate a dump file. To stop the tracing, create another breakpoint (e.g., at line 102), set its properties, and choose the **Stop Heap Trace** option in the action settings. Attach this action to the breakpoint as shown below. + + .. image:: ../../../media/HeapTracing/breakpoint_properties_actions_stop_attached.png + :alt: Stop Heap Trace Action + +6. **Launch Debug Configuration** + + Launch the debug configuration for your ESP32 board. When the program hits the breakpoints, the IDE will prompt you to switch to the debugger perspective. Continue execution for each breakpoint to start and stop tracing. Refresh the project in the Project Explorer to view the dump file in the specified location. + +Analyzing the Dump File +----------------------- + +The IDF Eclipse Plugin allows you to analyze generated `svdat` dump files. Right-click on the dump file and select `Heap Dump Analysis` from the context menu. + +**Note:** Ensure the project is built with the appropriate symbols file to enable analysis. + +.. image:: ../../../media/HeapTracing/analysis_context_menu.png + :alt: Heap Dump Analysis Context Menu + +Overview Tab +------------- +The Overview Tab displays memory consumption over time in a graph format. By default, all contexts are shown; you can select specific contexts corresponding to heap events. + +.. image:: ../../../media/HeapTracing/overview_tab_tracing.png + :alt: Memory Consumption Graph + +For example, selecting multiple contexts displays them separately on the graph. + +.. image:: ../../../media/HeapTracing/overview_tab_tracing_contexts.png + :alt: Selected Contexts in Graph + +Details Tab +------------- +The Details Tab provides further insights, showing each event in the heap trace. Rows highlighted in light orange indicate potential memory leaks (since the trace may have ended before a free event was detected). Green rows show free heap events. + +.. image:: ../../../media/HeapTracing/details_tab_tracing.png + :alt: Details Tab + +To filter entries for possible memory leaks, check the `View Possible Memory Leaks` box. Right-clicking on any entry allows you to view callers, opening the `Callers View` to display the call stack for the heap event. + +.. image:: ../../../media/HeapTracing/show_callers_context_menu.png + :alt: Show Callers + +Clicking on an entry in the `Callers View` will navigate to the corresponding line in the source file. + +.. image:: ../../../media/HeapTracing/callers_view.png + :alt: Callers View \ No newline at end of file diff --git a/docs/en/additionalfeatures/install-esp-components.rst b/docs/en/additionalfeatures/install-esp-components.rst index d431b97ec..97966d34d 100644 --- a/docs/en/additionalfeatures/install-esp-components.rst +++ b/docs/en/additionalfeatures/install-esp-components.rst @@ -1,2 +1,12 @@ Install ESP-IDF Components =============================== +You can install the ESP-IDF Components directly into your project from the available components from the `ESP-IDF Component Registry `_. Follow the steps below: + +- Right-click on the project in ``Project Explorer`` where you want to add the component, and select ``ESP-IDF > Install ESP-IDF Components``. +- A new window will open, displaying all available components to be installed. +- In the window, you can click on the ``Install`` button to add the selected component to the project. To access the README file for a component, click ``More Info``, which opens the README in your browser. + + .. image:: ../../../media/ESP-IDF_Components/components_window.png + :alt: ESP-IDF Components Window + +Already added components are also shown, but the ``Install`` button text changes to ``Already Added`` and is disabled. diff --git a/docs/en/additionalfeatures/lspeditor.rst b/docs/en/additionalfeatures/lspeditor.rst new file mode 100644 index 000000000..124e28cb7 --- /dev/null +++ b/docs/en/additionalfeatures/lspeditor.rst @@ -0,0 +1,86 @@ +LSP C/C++ Editor +================= + +Starting with Espressif IDE 3.0.0, the LSP Editor is the default code editor, which differs in several ways from the previous default editor. Below are the most notable differences: + +Formatting +---------- + +To customize formatting, open the ``.clang-format`` file located in your project. By default, the file contains the following content: + +.. code-block:: none + + BasedOnStyle: LLVM + UseTab: Always + IndentWidth: 4 + TabWidth: 4 + PackConstructorInitializers: NextLineOnly + BreakConstructorInitializers: AfterColon + IndentAccessModifiers: false + AccessModifierOffset: -4 + +You can also disable formatting for specific folders by using the ``DisableFormat: true`` option. For example, if you want to disable formatting for the ``managed_components`` folder in a project structured like this: + +.. code-block:: none + + project + ├── managed_components + │ └── .clang-format + ├── main + └── .clang-format + +Add the ``DisableFormat: true`` option to the ``.clang-format`` file in the ``managed_components`` folder. This flag tells ClangFormat to completely ignore this specific ``.clang-format`` file and its formatting rules within the ``managed_components`` directory. + +For more information about available style options, refer to `the Clang-Format Style Options guide `_. + +Search +------ + +The search text option in the right-click menu is currently unavailable in the LSP-based C/C++ Editor. However, you can use the toolbar menu ``Search`` > ``Text`` > ``Workspace`` as a workaround. + +Inlay Hints +----------- + +The LSP Editor has inlay hints enabled by default. If you prefer not to use them, you can disable this feature by editing the ``.clangd`` file: + +.. code-block:: none + + CompileFlags: + CompilationDatabase: build + Remove: + - -m* + - -f* + + InlayHints: + Enabled: No + +Searching ESP-IDF Components +---------------------------- + +To browse ESP-IDF components, follow these steps: + +- Create a new project. +- Add the ESP-IDF components folder as a virtual folder to the newly created project. +- Press **Ctrl + Shift + T** or **Ctrl + Shift + R**. +- You should now be able to browse the ESP-IDF component files. +- To search for a specific function or keyword, use the Search menu in the toolbar. + +Creating a Virtual Folder +~~~~~~~~~~~~~~~~~~~~~~~~~ + +- Navigate to ``New`` > ``Folder``. +- Click on ``Advanced``. +- Select ``Link to alternate Location (Linked Folder)``. +- Click ``Browse`` and select the ``ESP-IDF components`` folder. + +It is recommended to always create a new project instead of modifying your current one to avoid unnecessary Git files and error markers created by the indexer for the components folder. Since both projects will be in the same workspace, you should be able to search anywhere within your workspace. + +If you have any issues with the Clangd Configuration with the LSP Editor, please refer to the :ref:`Clangd Configuration ` guide. + +References +---------- +.. toctree:: + :maxdepth: 1 + + Clangd CDT Support and Configuration + Configuring Clang Toolchain \ No newline at end of file diff --git a/docs/en/additionalfeatures/nvspartitioneditor.rst b/docs/en/additionalfeatures/nvspartitioneditor.rst new file mode 100644 index 000000000..e4eef1304 --- /dev/null +++ b/docs/en/additionalfeatures/nvspartitioneditor.rst @@ -0,0 +1,35 @@ +NVS Table Editor +================ + +The NVS Table Editor helps create a binary file based on key-value pairs provided in a CSV file. The resulting binary file is compatible with the NVS architecture as defined in `ESP-IDF Non Volatile Storage `_. The expected CSV format is: + +.. code-block:: text + + key,type,encoding,value <-- column header (must be the first line) + namespace_name,namespace,, <-- First entry must be of type "namespace" + key1,data,u8,1 + key2,file,string,/path/to/file + +.. note:: This is based on ESP-IDF `NVS Partition Generator Utility `_. + +Steps +----- + +1. Right-click on a project in the *Project Explorer*. +2. Click on the *ESP-IDF > NVS Table Editor* menu option: + + .. image:: https://user-images.githubusercontent.com/24419842/216114697-9f231211-f5dd-431b-9432-93ecc656cfec.png + :alt: NVS Table Editor menu option + +3. Make desired changes to the CSV data. +4. Save changes by clicking the *Save* button. If everything is correct, you will see an information message at the top of the dialog: + + .. image:: https://user-images.githubusercontent.com/24419842/216115906-9bb4fe55-293b-4c6b-8d22-0aa3520581ab.png + :alt: Save confirmation in NVS Table Editor + +5. Generate the partition binary (choose *Encrypt* to encrypt the binary, and disable the *Generate Key* option to use your own key if desired). You will see an information message at the top of the dialog about the result of the generated binaries. Hover over the message if it's too long to read fully: + + .. image:: https://user-images.githubusercontent.com/24419842/216117261-9bee798a-3a9e-4be5-9466-fc9d3847834b.png + :alt: Binary generation result in NVS Table Editor + + .. note:: If there are any errors, they will be highlighted. Hover over the error icon to read more about the error. You will also see an error message at the top of diff --git a/docs/en/additionalfeatures/partitiontableeditor.rst b/docs/en/additionalfeatures/partitiontableeditor.rst new file mode 100644 index 000000000..018f590cb --- /dev/null +++ b/docs/en/additionalfeatures/partitiontableeditor.rst @@ -0,0 +1,28 @@ +Partition Table Editor UI for ESP-IDF +===================================== + +The Partition Table Editor command allows you to edit your `partition table `_ in a more convenient way, where you can see the supported types and subtypes and monitor the correctness of the entered data. + +Steps +----- + +1. Go to *Project Explorer* and open any IDF Project where you want to create a customized partition table. +2. In *Project Explorer*, right-click on the project and select *ESP-IDF > Partition Table Editor*: + + .. image:: https://user-images.githubusercontent.com/24419842/216105408-ca2e73ce-5df3-4bdd-ac61-b7265deb9b44.png + :alt: Partition Table Editor menu option + + When you open the partition table editor for the selected project, you will see the standard editable content. Errors, if any, will be highlighted. You can hover your mouse over them to get hints about the issues: + + .. image:: https://user-images.githubusercontent.com/24419842/216106804-703b2eb4-b141-48de-8559-0599f072219f.png + :alt: Error hints in Partition Table Editor + +3. Click *Save* or *Save and Quit* to save your changes. + +To Use a Customized Partition Table +----------------------------------- + +1. Go to *sdkconfig* and set *Custom partition table CSV* as shown below: + + .. image:: https://user-images.githubusercontent.com/24419842/216104107-2844068b-8412-468b-931f-b4778af4417c.png + :alt: Setting custom partition table in sdkconfig diff --git a/docs/en/additionalfeatures/switchlanguage.rst b/docs/en/additionalfeatures/switchlanguage.rst new file mode 100644 index 000000000..38d12f27e --- /dev/null +++ b/docs/en/additionalfeatures/switchlanguage.rst @@ -0,0 +1,11 @@ +Switch Between Languages in Espressif IDE +========================================== +Espressif IDE supports English and Chinese languages. You can switch between these languages using the following steps: + +1. Click on the ``Espressif`` menu from the menu bar. +2. Select ``Change Language`` from the drop-down menu. +3. From the submenu, select the language you want. +4. The IDE will restart with the selected language. + +.. image:: ../../../media/change_language.png + :alt: Change Language Menu diff --git a/docs/en/additionalfeatures/wokwisimulator.rst b/docs/en/additionalfeatures/wokwisimulator.rst new file mode 100644 index 000000000..901d7b593 --- /dev/null +++ b/docs/en/additionalfeatures/wokwisimulator.rst @@ -0,0 +1,13 @@ +Wokwi Simulator +=============== + +To use the Wokwi Simulator within the IDE, follow these steps: + +1. Install `wokwi-server` as explained in the [wokwi-server installation guide](https://github.com/MabezDev/wokwi-server/). +2. In the Eclipse CDT build environment variables, configure `WOKWI_SERVER_PATH` with the path to the `wokwi-server` executable (*Preferences* > *C/C++* > *Build* > *Environment*). +3. Create a new *Run launch configuration* with the *Wokwi Simulator*. +4. Select a project and add the Wokwi project ID. The ID of a Wokwi project can be found in its URL. For example, the project ID of the Wokwi project [ESP32 Rust Blinky](https://wokwi.com/projects/345932416223806035) is `345932416223806035`. +5. Click *Finish* to save the configuration changes. +6. From the IDE Toolbar, click the *Launch* button to start the Wokwi simulator. +7. The Wokwi Simulator will open in an external browser, with serial monitor output displayed in the Eclipse CDT build console. +8. To terminate the Wokwi Simulator, click the *Stop* button in the toolbar. diff --git a/docs/en/additionalfeatures/writebinarytoflash.rst b/docs/en/additionalfeatures/writebinarytoflash.rst new file mode 100644 index 000000000..015db5cea --- /dev/null +++ b/docs/en/additionalfeatures/writebinarytoflash.rst @@ -0,0 +1,14 @@ +Write Binary to Flash +====================== + +Binary data can be written to the ESP’s flash chip via the *ESP-IDF > Write Binary Data to Flash* command. To access this command, right-click on the project in the Project Explorer: + +.. image:: https://github.com/espressif/idf-eclipse-plugin/assets/24419842/186c8498-d779-4771-af53-e5bf09e29502 + :alt: Write Binary Data to Flash command + +After clicking this command, the *Write Binary Data to Flash* dialog box will open. Editable default values are provided for the binary path and offset. You can check the correct offset by viewing the partition table via *ESP-IDF > Partition Table Editor* or by manually opening the `partitions.csv` file. + +.. image:: https://github.com/espressif/idf-eclipse-plugin/assets/24419842/46e24e89-a1ed-4169-8c92-1ba0b0089ea7 + :alt: Write Binary Data to Flash dialog + +Clicking the *Flash* button will execute the flash command, and the result will be displayed within this dialog. diff --git a/docs/en/buildproject.rst b/docs/en/buildproject.rst index 990b8ef7d..504c2410d 100644 --- a/docs/en/buildproject.rst +++ b/docs/en/buildproject.rst @@ -1,2 +1,43 @@ Build the Project =============================== + +.. |build_icon| image:: ../../media/icons/build.png + :height: 16px + :align: middle + + +Once you have created a project and configured the esp target and serial port, you can build the project by clicking on |build_icon| in the toolbar. + +However, below steps will guide you through the process of building the project if you are new to the IDE: + +1. Select a project from the ``Project Explorer``. +2. Select ``Run`` from the first dropdown, which is called `Launch Mode`. +3. Select your application from the second dropdown, which is called `Launch Configuration` (Auto-detected). +4. Select a target from the third dropdown, for example, ``esp32``, which is called `Launch Target`. +5. Now click on the ``Build`` button |build_icon| to start the build process. + + + .. image:: ../../media/9_cmake_build.png + +Custom Build Directory +---------------------- + +The IDE allows configuring a custom build directory for the project: + +1. Select a project and click on the ``Edit`` button for the launch configuration in the top toolbar to open the ``Edit Configuration`` window. +2. Navigate to the ``Build Settings`` tab. +3. In the ``Additional CMake Arguments`` section, provide a custom build directory by adding arguments ``-B `` with an absolute path. The customized build directory path can be within the project or in any other location in the file system. For example: ``-B /Users/myUser/esp/generated``. +4. Click on ``Ok`` and build the project. + +.. note:: + This configuration changes where all the project build artifacts will be generated. + +.. image:: ../../media/custombuilddir.png + :alt: Custom Build Directory Configuration + +References +---------- +.. toctree:: + :maxdepth: 1 + + Configure CDT Build Environment Variables \ No newline at end of file diff --git a/docs/en/configureproject.rst b/docs/en/configureproject.rst index 96ec63c2c..1accf07c9 100644 --- a/docs/en/configureproject.rst +++ b/docs/en/configureproject.rst @@ -1,2 +1,17 @@ Configure Your Project =============================== + +Project configuration is stored in a single file called ``sdkconfig`` located in the root directory of the project. This configuration file can be modified using the ``SDK Configuration Editor``. + +.. note:: + sdkconfig file is generated only after the build. Hence, it is recommended to build the project once before configuring the project. + +To launch the SDK Configuration Editor: + +#. Navigate to the ``sdkconfig`` file. +#. Double-click on the file to launch the SDK Configuration Editor. +#. Use ``Ctrl+S`` or ``Command+S`` based on your OS to save the changes. You can also use the Eclipse ``Save`` button from the toolbar. +#. To revert changes made in the SDK Configuration Editor, either close the editor without saving or right-click on the ``sdkconfig`` file and select ``Load sdkconfig`` to revert the changes from the editor. + +.. image:: ../../media/13_sdkconfig_editor.png + :alt: SDK Configuration Editor diff --git a/docs/en/connectdevice.rst b/docs/en/connectdevice.rst index 6ad8c94ff..e9428bb35 100644 --- a/docs/en/connectdevice.rst +++ b/docs/en/connectdevice.rst @@ -1,2 +1,22 @@ Connect Your Device =============================== +Next, select the ESP target for your project (ignore this step if it was already set during project creation) and the serial port of your device by clicking on the gear icon. By default, the launch target dropdown will display all the supported targets provided by the plugin. + +.. image:: ../../media/target_selection.png + +Clicking the gear icon opens the ESP Target Configuration dialog, where you can select the serial port for your device and specify the ESP board. The plugin will automatically detect serial ports connected to your machine. + +.. image:: ../../media/8_launch_target.png + +Regarding the Serial ports and their patterns, please refer to the `ESP-IDF documentation `_. + +Custom Target +---------------- +If you need to add a target that is not available in the launch target dropdown, please follow the instructions below: + +1. Click on the launch target dropdown. +2. Select ``New Launch Target``. +3. Select ``ESP Target``. +4. Provide properties for the target where you would like to launch the application. Enter a ``Name`` for the target and select the ``Serial Port`` to which your ESP device is connected on your machine. + + diff --git a/docs/en/debugproject.rst b/docs/en/debugproject.rst index 189205481..5baf9b6ab 100644 --- a/docs/en/debugproject.rst +++ b/docs/en/debugproject.rst @@ -1,2 +1,32 @@ Debug Your Project =============================== + +.. |debug_icon| image:: ../../media/icons/debug.png + :height: 16px + :align: middle + +In most cases, only two things are required to start debugging an ESP-IDF project: + +1. Create a debug configuration +2. Check whether the board in the created configuration corresponds to the board in use. + +.. note:: + If you're using Windows, you may need to install drivers using Zadig to run a debug session successfully. For detailed instructions, please refer to this `guide `_. + +The fastest way to create a debug configuration is as follows: + +1. Expand the configuration list in the launch bar and click on ``New Launch Configuration...``. +2. Select ``ESP-IDF GDB OpenOCD Debugging``, then double-click or click ``Next``. +3. A preview of the new debug configuration will open, where you should check the board settings. + +After creating the debug configuration, you can proceed with debugging the project: + +1. Select the configuration you just created. +2. Choose ``Debug`` mode. +3. Click on the ``Debug`` icon |debug_icon| to start debugging. + + +.. image:: https://github.com/espressif/idf-eclipse-plugin/assets/24419842/1fb0fb9b-a02a-4ed1-bdba-b4b4d36d100f + :alt: Debugging process + +To learn more about the debug configuration, please refer to :ref:`ESP-IDF OpenOCD Debugging `. diff --git a/docs/en/downloads.rst b/docs/en/downloads.rst new file mode 100644 index 000000000..2c20e47f2 --- /dev/null +++ b/docs/en/downloads.rst @@ -0,0 +1,33 @@ +.. _downloads: + +Espressif-IDE Downloads +========================= + +You can find the latest Espressif-IDE release notes from `here `_. Provided below are the direct download links for various platforms. + ++--------------+-------------------------------------------------------------------------------------------------------------------------------------------+ +| OS | Download | ++==============+===========================================================================================================================================+ +| Windows | `Espressif-IDE-win32.win32.x86_64 `_ | ++--------------+-------------------------------------------------------------------------------------------------------------------------------------------+ +| macOS x86_64 | `Espressif-IDE-macosx-cocoa-x86_64 `_ | ++--------------+-------------------------------------------------------------------------------------------------------------------------------------------+ +| macOS aarch64| `Espressif-IDE-macosx-cocoa-aarch64 `_ | ++--------------+-------------------------------------------------------------------------------------------------------------------------------------------+ +| Linux | `Espressif-IDE-linux.gtk.x86_64 `_ | ++--------------+-------------------------------------------------------------------------------------------------------------------------------------------+ + + +macOS security notice (Applicable only for Nightly Builds) +------------------------------------------------------------ +On macOS, if you download the archive with the browser, the strict security checks on recent macOS will prevent it to run, and complain that the program is damaged. That’s obviously not true, and the fix is simple, you need to remove the `com.apple.quarantine` extended attribute. + +.. code-block:: shell + + $ xattr -d com.apple.quarantine ~/Downloads/Espressif-IDE-x.x.x-macosx.cocoa.x86_64.tar.gz + +After un-archiving, if the application still complains, check/remove the attribute from the Espressif-IDE.app folder too: + +.. code-block:: shell + + $ xattr -dr com.apple.quarantine ~/Downloads/Espressif-IDE.app \ No newline at end of file diff --git a/docs/en/faqs.rst b/docs/en/faqs.rst index d865c446d..2892abe42 100644 --- a/docs/en/faqs.rst +++ b/docs/en/faqs.rst @@ -1,2 +1,153 @@ -FAQs -=============================== +FAQ +==== + +How do I know the installed version of Java in my system? +---------------------------------------------------------- +You can check using `java -version` command from the terminal. + +How to check the Java version used by Eclipse? +---------------------------------------------- +- `Help > About Eclipse > Installation Details > Configuration` +- Look for `-vm` argument. + +How to increase the heap memory for Java while working Eclipse IDE? +-------------------------------------------------------------------- +- Locate the eclipse.ini or espressif-ide.ini +- Increase the Xmx value under the `-vmargs` args section. For example, you can set to `-Xmx2048m`. + +What are the operating systems the plugin supports? +---------------------------------------------------- +- Windows +- macOSX +- Linux + +How do I provide Eclipse environment and plugins information? +------------------------------------------------------------- +`Help > About Eclipse > Installation Details > Configuration > Copy to Clipboard` + +How do I know the installed IDF Eclipse Plugins version? +--------------------------------------------------------- +- You can check using the menu `Eclipse > About Eclipse > Installation Details > Installed Software` +- Search for `Espressif`. + +How do I uninstall IDF Eclipse Plugins from the Eclipse? +--------------------------------------------------------- +- `Eclipse > About Eclipse > Installation Details > Installed Software` +- Search for `Espressif`. +- Select the Espressif IDF Feature +- `Uninstall..`. + +Unable to install IDF plugins in Eclipse? +----------------------------------------- +Please check the error log from the main menu, select `Window > Show View > Other`. Then select `General > Error Log`. + +Espressif Menu options and Espressif IDF Project menu are not visible in my Eclipse CDT +--------------------------------------------------------------------------------------- +- Make sure you have installed Java 8 and above and Eclipse in the C/C++ perspective. +- Reset the perspective using `Window > Perspective > Reset Perspective..`. + +Do IDF Eclipse Plugins support CMake IDF project creation? +---------------------------------------------------------- +Yes, you can create IDF CMake project using `File > New > Espressif IDF Project`. + +Can I import my existing IDF project into Eclipse? +--------------------------------------------------- +Yes, you can import using Import Menu. `Import... > Espressif > Existing IDF Project`. + +Where can I find the IDF installed tools in my system? +------------------------------------------------------ +Default directory is `$HOME/.espressif` for Linux/MacOS users or `%USER_PROFILE%.espressif` for Windows users. + +Why am I getting timeout errors when Installing tools? +------------------------------------------------------ +If you are getting errors when downloading or installing tools this can be due to some issue with the mirrors. You can try to set the mirrors in Eclipse `Preferences > Espressif` you will see two settings for Git and Pip Py Wheels please set these to proper mirror according to your region. Currently, these two mirrors are available. + +### Mirror for GIT (IDF_GITHUB_ASSETS) +- dl.espressif.com/github_assets (default) +- dl.espressif.cn/github_assets + +### Mirror for python wheels (PIP_EXTRA_INDEX_URL) +- https://dl.espressif.com/pypi (default) +- https://dl.espressif.cn/pypi + +Deleted C/C++ build environment variables still appearing? +---------------------------------------------------------- +- You need to uncheck the preference recorder. This can be performed by following. Eclipse `Preferences > Oomph > Setup Tasks > Preference Recorder`. +- Uncheck `Record into`. + +How can I rollback to old ESP-IDF Eclipse plugin? +------------------------------------------------- +- Open Eclipse IDE and Uninstall the esp-idf plugin. +- Restart Eclipse IDE. +- Download the previous version of the ESP Eclipse Plugin from the release page +- Go to `Help > Install New Software`. +- Press the `Add` button, a window will open with the name of `Add Repository`. +- Press the `Archive` button and select the file downloaded. +- Proceed with the installation. +- Restart Eclipse. + +Where can I find Compiler_commands.json file for the project? +-------------------------------------------------------------- +`/projectName/build/compile_commands.json` + +compile_commands.json containing the exact compiler calls for all translation units of the project in machine-readable form which is used by the Eclipse CDT indexing for parsing and resolving headers. + +How do I access CDT Parser error log? +-------------------------------------- +Please follow this menu. `Project > C/C++ Index > Create Parser Log`. + +How do I access the error log? +------------------------------ +To view the Eclipse error log: From the main menu, select `Window > Show View > Other`. Then select `General > Error Log`. + +How do I report a deadlock or Eclipse hang? +------------------------------------------- +You can find the detailed instructions here: https://wiki.eclipse.org/How_to_report_a_deadlock. +- On the command line, use `jps -v` to find the PIDs of Java processes and `jstack ` to show the stack trace of Java processes. + +Here 32308 and 8824 are PIDs of Java processes. 8824 is jps itself and is of no interest for us. 32308 is an Eclipse process judging from the presence of `org.eclipse.equinox.launcher` in its command line. The `jstack` command saves the stack trace of the Eclipse process in a file `/tmp/jstack.txt`, attach the file to the bug report. + +`sun.security.validator.ValidatorException: PKIX path building failed:` error +------------------------------------------------------------------------------ +This would have been caused by the Java version or Java certificates. Please make sure you've installed `Java 11 and later` to fix this error. +Check below links: +- https://esp32.com/viewtopic.php?f=13&t=12327&start=10#p50137 +- https://stackoverflow.com/questions/6908948/java-sun-security-provider-certpath-suncertpathbuilderexception-unable-to-find + +Why Java 11 recommended for IDF Eclipse Plugin? +----------------------------------------------- +We recommend using Java 11 (that's the latest LTS version from Oracle) and above while working with IDF Eclipse Plugin considering Eclipse 2020-06 has a requirement for Java 11 to work with the CDT. Here are some important pointers from Eclipse. + +### Installing CDT 9.11 on Eclipse 2020-06 and later requires a workaround when using Java 8 +Check this - https://wiki.eclipse.org/CDT/User/NewIn911#Release + +CDT 9.11 only requires Java 8 to run. However, a new feature in Eclipse 2020-06 and later means that the install wizard may prevent installation. The workaround is to disable "Verify provisioning operation is compatible with the currently running JRE" in Windows -> Preferences -> Install/Update. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=564407#c1. + +### CDT 10.0 required Java 11 or later +Check this - https://wiki.eclipse.org/CDT/User/NewIn100 + +Starting with CDT 10.0, Java 11 or later is required to run CDT. This aligns with the requirements of Eclipse IDE which also requires Java 11 to run starting in 2020-09. + +How to delete Launch Targets from the Eclipse +--------------------------------------------- +There is no UI option to delete launch targets directly from Eclipse, however, this can be achieved by following the below instructions: +- Go to the Eclipse workspace directory. For example: In my case `/Users/myName/myTesteclipseWorkspace`. +- Navigate to `.metadata/.plugins/org.eclipse.core.runtime/.settings` folder in the workspace directory. +- Look for `org.eclipse.launchbar.core.prefs` file and open it in the editor. +- Search for the launch target name you want to delete and remove all those entries from the file. +- Save the file. +- Restart Eclipse. + +How do I access project build log? +----------------------------------- +- To enable logging, navigate to `Preferences > Project > C/C++ > Build > Logging`. +- Check `Enable global build logging`. +- Build the project. +- Export `global-build.log`. This is the same build console log which appears in the CDT build console, but the build console usually has a limited buffer size, hence it won't display everything. + +How do I enable verbose debug output to my project build? +---------------------------------------------------------- +IDF Eclipse plugin uses CMake commands to build the project, so it's possible to pass CMake arguments from the build configuration wizard. To configure this: +- Click on the editor configuration wizard. +- Navigate to `Build Settings` tab. +- Add `--debug-output` or other diff --git a/docs/en/flashdevice.rst b/docs/en/flashdevice.rst index 9a969bd68..8440a8488 100644 --- a/docs/en/flashdevice.rst +++ b/docs/en/flashdevice.rst @@ -1,2 +1,78 @@ Flash onto the Device =============================== + +.. |run_icon| image:: ../../media/icons/run.png + :height: 16px + :align: middle + +Flash operation can be initiated with just a click of a launch button |run_icon| and it's auto-configured to flash the application with the default flash command, i.e., ``idf.py -p PORT flash``. + +.. image:: https://github.com/espressif/idf-eclipse-plugin/assets/8463287/3249c01b-af23-4863-811f-c3959008f257 + :width: 767px + :alt: flash + +To provide customized flash arguments, please follow :ref:`this link ` for further instructions. + +To configure flashing via JTAG, please refer to this :ref:`JTAG Flashing guide ` + +.. _customizeLaunchConfig: + +Customize Flash Arguments +------------------------------- + +To provide the customized launch configuration and flash arguments, please follow the step-by-step instructions below. + +#. Click on the ``Launch Configuration`` edit button. +#. Switch to the ``Main`` tab. +#. Specify the ``Location`` where this application has to run. Since ``idf.py`` is a Python file, configure the Python system path. Example: ``${system_path:python}``. +#. Specify the ``Working directory`` of the application. Example: ``${workspace_loc:/hello_world}``. +#. In additional arguments, provide a flashing command that will run in the specified working directory. +#. The flash command looks like this: ``/Users/user-name/esp/esp-idf/tools/idf.py -p /dev/cu.SLAB_USBtoUART flash``. +#. Click OK to save the settings. +#. Click on the ``Launch`` icon to flash the application to the selected board. + +.. image:: ../../media/11_launch_configuration.png + :alt: Launch configuration + +.. image:: ../../media/12_flashing.png + :alt: Flashing process + +.. _JTAGFlashing: + +Upload Application via JTAG +------------------------------- + +The default option for uploading applications is UART. To change it to JTAG, you need to edit the launch configuration for your project and select the appropriate option. +To do so, select your project in the launch configuration bar and click on the gear icon to edit the launch configuration: + +.. image:: ../../media/JtagFlash_1.png + :alt: Edit launch configuration + +Then select the ``Flash Over JTAG`` option and complete the ``OpenOCD Setup`` section. + +.. image:: https://user-images.githubusercontent.com/24419842/226183857-f9d8569b-05b0-4b52-b0b2-293aac493020.png + :width: 986px + :alt: Flash over JTAG option + +If the ``Flash Over JTAG`` option is not available and you see a message like this: + +.. image:: ../../media/JtagFlash_3.png + :alt: OpenOCD update required message + +It means that OpenOCD needs to be updated. You can find the latest OpenOCD version on the `openocd-esp32 GitHub page `_. + +Providing the Right Path for OpenOCD +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +After downloading the necessary `OpenOCD version `_, extract it to a new folder in the `.espressif/tools/openocd-esp32/`. Follow these steps: + +* Download the required `v0.10.0-esp32-20201202 `_ version or a higher one for JTAG Flashing. +* Go to `.../.espressif/tools/openocd-esp32/`, create a new folder named ``v0.10.0-esp32-20201202``, and extract OpenOCD there. +* The resulting path to OpenOCD might look like: ``.../.espressif/tools/openocd-esp32/v0.10.0-esp32-20201202/openocd-esp32/...`` + +After completing this, update the ``OPENOCD_SCRIPT`` environment variable in Eclipse: + +* Go to ``Eclipse > Preferences > C/C++ > Build > Environment`` +* Edit the ``OPENOCD_SCRIPTS`` variable by providing the correct path to the ``openocd/scripts`` folder. +* The path to the OpenOCD scripts may look like this: ``.../.espressif/tools/openocd-esp32/v0.10.0-esp32-20201202/openocd-esp32/share/openocd/scripts`` + diff --git a/docs/en/index.rst b/docs/en/index.rst index fe538dad9..a39c38cb6 100644 --- a/docs/en/index.rst +++ b/docs/en/index.rst @@ -2,40 +2,42 @@ Espressif-IDE ========================= :link_to_translation:`zh_CN:[中文]` -Espressif-IDE is an Integrated Development Environment(IDE) based on Eclipse CDT for developing IoT Applications using the ESP-IDF framework. It's a standalone and customized IDE built specifically for ESP-IDF. Espressif-IDE comes with the IDF Eclipse plugins, essential Eclipse CDT plugins, and other third-party plugins from the Eclipse platform to support building ESP-IDF applications. +Espressif-IDE is an Integrated Development Environment (IDE) based on `Eclipse CDT `_ for developing IoT Applications using the `ESP-IDF `_. It's a standalone and customized IDE built specifically for ESP-IDF. Espressif-IDE comes with the IDF Eclipse plugins, essential Eclipse CDT plugins, and other third-party plugins from the Eclipse platform to support building ESP-IDF applications. -The plug-in runs on macOS, Windows and Linux platforms. +The plug-in runs on `macOS`, `Windows` and `Linux` platforms. +.. note:: + Espressif-IDE version 3.0 and later supports ESP-IDF version 5.x and above. For ESP-IDF version 4.x and earlier, please use Espressif-IDE version `2.12.1 `_. + +.. image:: ../../media/espressif-ide.png + :alt: Espressif-IDE + :align: center + Features ---------------- -- Easy-to-use IDE built on Eclipse CDT environment -- Specifically built for ESP-IDF application development - Auto-configuration of the build environment variables - Integrated toolchain configuration -- New Project Wizards and getting started ESP-IDF examples -- Advanced editing, compiling, and editing with syntax coloring features +- New Project Wizards and getting started with ESP-IDF examples +- LSP-based editor for advanced editing, compiling, and syntax coloring features - Pre-built function header and function definition navigation -- ESP-IDF and ESP-IDF Tools installation and configuration directly from IDE -- SDK Configuration editor for project-specific settings -- Integrated CMake Editor plug-in for editing CMake files such as CMakeLists.txt -- CMake based build support +- ESP-IDF and ESP-IDF tools installation and configuration directly from the IDE +- SDK configuration editor for project-specific settings +- Integrated CMake editor plug-in for editing CMake files such as CMakeLists.txt +- CMake-based build support - Support for UART and JTAG flashing -- Customized ESP-IDF OpenOCD Debugging with pre-built configuration and settings -- GDB Hardware debugging +- Customized ESP-IDF OpenOCD debugging with pre-built configuration and settings - Integrated ESP-IDF serial monitor -- ESP-IDF Terminal with the pre-configured ESP-IDF build environment -- Application size analysis editor for analyzing static memory footprint of your application -- Supports Heap profiling for memory analysis and finding memory leaks -- Supports GDB Stub debugging and Application level tracing -- Supports esp32,esp32s2, esp32s3 and esp32c3 chips -- English and Chinese language support for IDE -- Extensible IDE for other third-party plugins from Eclipse eco-system -- Host operating systems supported: Windows, macOS, and Linux - +- ESP-IDF terminal with the pre-configured ESP-IDF build environment +- Application size analysis editor for analyzing the static memory footprint of your application +- Supports heap profiling for memory analysis and finding memory leaks +- Supports GDB stub debugging and application-level tracing +- English and Chinese language support for the IDE For more about this project please see https://github.com/espressif/idf-eclipse-plugin +Contents +---------------- .. toctree:: :maxdepth: 1 @@ -49,4 +51,6 @@ For more about this project please see https://github.com/espressif/idf-eclipse- Monitor the Output Debug Your Project Additional IDE Features + Troubleshooting FAQs + Downloads diff --git a/docs/en/installation.rst b/docs/en/installation.rst index d1f474052..e4a484cbc 100644 --- a/docs/en/installation.rst +++ b/docs/en/installation.rst @@ -1,16 +1,71 @@ Installation =============================== -We recommend using the Espressif-IDE instead of the Eclipse CDT + IEP Plugin update approach to avoid the hassles of updating. + +Configuring and installing the Espressif-IDE involves two main steps: + +1. :ref:`Downloading and Installing the Espressif-IDE ` +2. :ref:`Installing the ESP-IDF and related tools within the Espressif-IDE ` + +.. note:: + For Eclipse CDT users who prefer installing the ESP-IDF Eclipse Plugin via the `Update site `_, please refer to the :ref:`Update Site Installation Guide `. + +Espressif-IDE Installation +---------------------------- +.. _esp-idf-installation: + +To begin, navigate to the section corresponding to your operating system below and follow the provided instructions to install the Espressif-IDE. Windows -------------------------- -Download the Espressif-IDE with ESP-IDF Offline Windows Installer and follow the instructions provided here. This guide will walk you through the installation process for Java, Git, CMake, ESP-IDF, IDF Tools, Device Drivers, and Espressif-IDE to help you get started. +~~~~~~~~ +.. note:: + For Windows users, Espressif-IDE is available with ESP-IDF as an offline installer. + +To download and install it, follow the instructions provided :ref:`here `. This guide will walk you through the installation process for Java, Git, CMake, ESP-IDF, IDF Tools, Device Drivers, and Espressif-IDE to help you get started. + +macOS/Linux +~~~~~~~~~~~~ +Download the Espressif-IDE for your respective operating system from the :ref:`download section `. After downloading, launch the IDE and proceed to :ref:`install the necessary ESP-IDF and related tools `. Please ensure that Java, Python, and Git are installed as prerequisites and are available in the system path before launching the IDE. + +ESP-IDF and Tools Installation +------------------------------- +.. _esp-idf-tools-installation: + +The Espressif-IDE provides a tool manager to install and manage ESP-IDF and related tools. Please follow the instructions below for installing ESP-IDF in the Espressif-IDE. + +1. Go to ``Espressif > ESP-IDF Manager``. The following editor will open: + + .. image:: ../../media/ToolsManager/ESP-IDF_Manager_Editor_Screen.png + +2. Click on the ``Add ESP-IDF`` button. + + .. image:: ../../media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png + + From the screen shown above, you can choose an already downloaded ESP-IDF directory or select and download directly from the given dialog. The ``Git`` and ``Python`` tools must be installed, and if they are configured in the system PATH, they will be preloaded in the view. If not, you can browse to the directory and select the proper executables. + +3. Click on ``Finish``, which will be enabled after all paths and executables are properly configured. + +.. note:: + Please note that the python executable is not the one from the virtual environment created from the installation of the ESP-IDF via other means like from CLI. If you are selecting an already installed ESP-IDF directory IDE will automatically pick up the python once you have installed the tools + +After you have clicked ``Finish``, you will see the progress in the console for the tools getting installed. Once the installation is done, and if this is the very first set of ESP-IDF installed in the IDE, it will be activated as well. You will see a similar entry in the editor for ESP-IDF Manager: + +.. image:: ../../media/ToolsManager/Tool_installed_and_activated.png + +You can add as many versions of ESP-IDF as you want, but only one version can be set as active, and that version will be used to compile and index projects in your workspace. This feature helps you switch between versions in the workspace easily. + +Let's take a look at how multiple versions will look. Follow the same steps as before to add another ESP-IDF version to the IDE. + +.. image:: ../../media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png + +To activate any specific version, simply click on the radio button next to it in the ``Active`` column. + +The refresh button in the last column for the active ESP-IDF version can be used to reload any changes in the directory you made. -macOS ---------------------------------- -To begin, download the Espressif-IDE for your respective operating system. Following this, launch the IDE and proceed to install the necessary ESP-IDF and related tools. Please note that prior to launching the IDE, you must ensure that Java, Python, and Git are installed as prerequisites. and available in the system path. -If you plan to use Eclipse CDT and update it through the IDF Eclipse plugin, please ensure that you download the supported version for your operating system from here. +References +---------- +.. toctree:: + :maxdepth: 1 -Linux ---------------------------------- -Linux specific documentation here. \ No newline at end of file + Update Site Installation Guide + Windows Offline Installer + Configure CDT Build Environment Variables \ No newline at end of file diff --git a/docs/en/marketplaceupdate.rst b/docs/en/marketplaceupdate.rst new file mode 100644 index 000000000..7d13873aa --- /dev/null +++ b/docs/en/marketplaceupdate.rst @@ -0,0 +1,93 @@ +.. _marketplaceupdate: + +Update Site Installation Guide +====================================== + +The Espressif-IDE Eclipse Plugin can be installed using the update site URL, Eclipse Marketplace, or a local archive. This guide provides instructions for each method. + +- :ref:`installUpdateSiteURL` +- :ref:`install_idf_eclipse_plugin_marketplace` +- :ref:`install_idf_eclipse_plugin_local_archive` +- :ref:`upgradePlugins` + + +.. _installUpdateSiteURL: + +Installing IDF Plugin using update site URL +-------------------------------------------- +You can install the IDF Eclipse plugin into an existing Eclipse CDT/Espressif-IDE using the update site URL. First, add the release repository URL as follows: + +1. Go to ``Help`` > ``Install New Software``. +2. Click `Add…`, and in the pop-up window: + * Enter `Name` as `Espressif IDF Plugin for Eclipse`. + * Enter `Location` of the repository + * For the stable release: ``_. + * Click `Add`. +3. Select all from the list and proceed with the installation. + +For adding beta and nightly builds, you can use the following update site URLs: + * For Beta version: ``_. + * For Nightly build: ``_. + +.. note:: + While the screenshots are captured on macOS, the installation instructions are applicable to Windows, Linux, and macOS. + +.. image:: ../../media/idf_update_site_install.png + + +.. _install_idf_eclipse_plugin_marketplace: + +Installing IDF Eclipse Plugin from Eclipse Marketplace +------------------------------------------------------ + +To install the ESP-IDF Eclipse Plugin from the Eclipse Marketplace, follow these steps: + +1. Open Eclipse and go to `Help` > `Eclipse Marketplace...`. + +2. In the search box, enter **ESP-IDF Eclipse Plugin** to locate the plugin. + +3. Click **Install** and follow the on-screen instructions to complete the installation. + +4. After installation, restart Eclipse to activate the plugin. + + +.. _install_idf_eclipse_plugin_local_archive: + +Installing IDF Eclipse Plugin from Local Archive +------------------------------------------------------ + +To install the ESP-IDF Eclipse Plugin from a local archive, follow these steps: + +1. Download the latest update site archive for the IDF Eclipse Plugin from [here](https://github.com/espressif/idf-eclipse-plugin/releases). + +2. In Eclipse, go to `Help` > `Install New Software`. + +3. Click the `Add…` button. + +4. In the **Add Repository** dialog, select **Archive** and choose the file `com.espressif.idf.update-vxxxxxxx.zip`. + +5. Click **Add**. + +6. Select **Espressif IDF** from the list and proceed with the installation. + +7. Restart Eclipse after the installation is complete. + + +.. _upgradePlugins: + +How do I upgrade my existing IDF Eclipse Plugin? +------------------------------------------------------ +If you are installing the IDF Eclipse Plugin for the first time, follow these steps to add the repository for the new release: + +1. Go to `Window` > `Preferences` > `Install/Update` > `Available Software Sites`. +2. Click `Add`. +3. Enter the URL of the new repository: `https://dl.espressif.com/dl/idf-eclipse-plugin/updates/latest/`. +4. Click `Ok`. + +If you have already installed the IDF Eclipse Plugin using the update site URL, you can upgrade to the latest version with the following steps: + +1. Go to `Help` > `Check for Updates`. +2. If updates are found, select `Espressif IDF Plugins for Eclipse` and deselect all other items. +3. Click `Next` to proceed with the installation. + +.. image:: ../../media/Update_plugins.png diff --git a/docs/en/monitoroutput.rst b/docs/en/monitoroutput.rst index 4882d996c..c3b001d1a 100644 --- a/docs/en/monitoroutput.rst +++ b/docs/en/monitoroutput.rst @@ -1,2 +1,28 @@ +.. _serialMonitor: + Monitor the Output =============================== + +To see the serial output in Eclipse, we need to configure the `ESP-IDF Serial Monitor` to connect to the serial port. This is integrated with the `IDF Monitor `_. + +.. image:: ../../media/monitor.png + :alt: Serial Monitor + +To launch the serial monitor in the IDE, follow the steps below: + +1. Click on the ``Open a Terminal`` icon from the top toolbar. +2. Choose ``ESP-IDF Serial Monitor`` from the terminal drop-down. +3. Select the ``Serial Port`` for your board if it's not detected. +4. Configure serial monitor ``Filter Options`` for output filtering. +5. Click on ``OK`` to launch the monitor, which will listen to the USB port. + +.. image:: ../../media//10_serial_terminal.png + + +ESP-IDF Serial Monitor Settings +------------------------------- +ESP-IDF Serial Monitor will allow you to configure the default settings of the serial monitor character limit and number of lines. + +1. Navigate to ``Espressif`` from the Eclipse ``Preferences``. +2. Click on ``ESP-IDF Serial Monitor Settings``. +3. Provide ``Console Line Width`` and ``Limit Console Output``. \ No newline at end of file diff --git a/docs/en/openocddebugging.rst b/docs/en/openocddebugging.rst new file mode 100644 index 000000000..d8d368d48 --- /dev/null +++ b/docs/en/openocddebugging.rst @@ -0,0 +1,128 @@ +.. _OpenOCDDebugging: + +ESP-IDF GDB OpenOCD Debugging +============================= + + +Create a new debug configuration +--------------------------------- +Please follow the below steps to create a new debug configuration: + +* Right-click on the project +* ``Debug As`` > ``Debug Configurations...`` This will launch a debug configuration window +* On the left Panel, choose ``ESP-IDF GDB OpenOCD Debugging`` +* Right Click and create ``New Configuration`` This will create a new debug configuration for your project + +Please navigate through each tab and configure project specific settings. + +.. note:: + Most of the settings are auto-configured by the plugin. + +.. image:: ../../media/OpenOCDDebug_4.png + +The other way to create a debug configuration is from the launch configuration bar: + +* Expand list with launch/debug configurations +* Click on ``New Launch Configuration...`` +* Select ``ESP-IDF GDB OpenOCD Debugging`` and double click on it or on ``Next >`` button +* In the ``Debugger`` tab, check if the ``Config options`` is right for your board. +* Click on `Finish` + +.. image:: ../../media/OpenOCDDebug_9.png + +Main Tab +-------- +1. Enter the ``Name`` of this configuration, the default name is "{project_name} Configuration". +2. On the ``Main`` tab below, under ``Project:``, press ``Browse`` button and select the project if it's not selected or you want to change it. +3. In the next line ``C/C++ Application:`` should be a relative path to the elf file, for example, "build\hello_world.elf" for `hello_world` project. If the elf file is not there, then likely this project has not been build yet. After building the project, the elf file will appear there, however, you can change it by pressing "Browse" button. + +The last section on the ``Main`` tab is ``Build (if required) before launching``. If you don't want to build the project each time you are pressing the ``Debug`` button, click ``Disable auto build``. + +Points 1 - 3 are shown below. + +.. image:: ../../media/OpenOCDDebug_5.png + +Debugger Tab +------------ +In the ``Debugger`` tab, all parameters are automatically configured to start debugging, you just need to check if the ``Config options`` line is appropriate for your board. It automatically adjusts based on ``Flash voltage`` and ``Board`` options. If you expand the list of boards, only those that match the selected ``Target`` will appear. So, for example, if the selected target is ``esp32``, you will not see ``ESP32-S2-KALUGA-1`` in the list, to see it there, you need to change the target to ``esp32s2`` first. The second option in the debugger tab, which depends on the target, is the `gdb executable`, which is also automatically and dynamically configured based on the target you choose. + +Let's take a look at some other options, that you need to check if they auto configured correctly for you: + +4. The "Executable path" for OpenOCD is based on eclipse preferences, which are configured after tools installation. Check if the "Actual executable" is correct and if it's not, then likely the tools installation went wrong, so you need to check if tools installed correctly to avoid possible problems. If it's still not correct after tools installation, click on "Browse" and select the path to `openocd.exe` manually. +5. In the next step, please make sure that the GDB port is 3333 if you want to use an internal gdb client and the Tcl port is 6666 if you want to use [Application Level Tracing](https://github.com/espressif/idf-eclipse-plugin#application-level-tracing). Also, check `Config options` as described above. +6. In the `GDB Client Setup` section as described above, the gdb executable should be automatically and dynamically configured based on the target you choose. You can change it, by clicking "Browse" button and selecting the path to the gdb executable. By default, the "Commands" line should be `set mem inaccessible-by-default off`. + +Points 4 - 6 are shown below. + +.. image:: ../../media/OpenOCDDebug_6.png + +.. note:: + Update the OpenOCD Config options based on the esp board you've choosen. Please check this `here `_. + +Startup Tab +----------- +7. By default, the binaries will be uploaded to your board before joining a debug session, so there is no need to flash them to the target separately. If for some reason you don't want to do that, you can uncheck the ``Flash every time with application binaries`` option. Also, you can check ``Enable verbose output`` option, this will enable debug level 3 - '-d3'. +8. Under ``Initialization Commands``, “Initial Reset.” and “Enable ARM semihosting” are enabled by default. Then, in entry field below, must be the following lines: + + .. code-block:: text + + mon reset halt + flushregs + set remote hardware-watchpoint-limit 2 + +Points 7 - 8 are shown below. + +.. image:: ../../media/OpenOCDDebug_7.png + +9. Options ``Load Symbols`` and ``Use project binary`` are selected. +10. Further down on the same tab, establish an initial breakpoint to halt CPUs after they are reset by debugger. The plugin will set this breakpoint at the beginning of the function entered under ``Set break point at:``. Checkout this option and enter the name of the main function e.g. app_main in provided field. +11. Checkout ``Continue`` option. This will make the program to resume after ``mon reset halt`` is invoked per point 8. The program will then stop at breakpoint inserted at app_main. + +Points 9 - 11 are shown below. + +.. image:: ../../media/OpenOCDDebug_8.png + +Common Tab +---------- +You can save your debug logs to an external file. To do this: + +* Goto ``Common`` tab. +* Under ``Standard Input and Output`` section: Select Output file checkbox, enter log file name and path where you want logs to be redirected. +* Apply changes and run your application. + +.. note:: + Path to the file can be relative if it's located in the workspace (see screenshot below) + + .. image:: ../../media/OpenOCDDebug_13.png + +Preferences for OpenOCD Configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +OpenOCD path is auto-configured based on the ``OPENOCD_SCRIPTS`` path defined in the CDT Build environment variables. + +.. image:: ../../media/OpenOCDDebug_2.png + +Start Debugging +--------------- +To start debugging, you need to select your debug configuration, change mode from ``Run`` to ``Debug`` and click on launch icon (bug icon). + +.. image:: ../../media/OpenOCDDebug_10.png + +After stopping the target at the default breakpoint, you will be suggested to switch to the ``Debug perspective``. + +.. image:: ../../media/OpenOCDDebug_11.png + +You can customize the ``Debug perspective`` in your own way, for example, move some tabs, add additional views that you might find useful, or remove them. To add a view, follow these steps: + +* On the top panel of the Eclipse click on ``Window`` +* ``Show View`` +* Select the view you want to add + +.. image:: ../../media/OpenOCDDebug_12.png + +Troubleshooting +--------------- +* Please make sure you always have the latest `Espressif-IDE `_ . +* Please check `this `_ if the board has JTAG enabled. +* If there is any OpenOCD timeout issue, please increase the GDB server timeout value ``_ from the preferences. Usually, this happens while working with large-size applications. +* If you see any error while debugging, please check this OpenOCD troubleshooting `FAQ guide `_ and see if that helps to resolve the issue. +* If you have any issue and want to enable OpenOCD debugging verbose, please check Enable verbose output option from the startup tab. diff --git a/docs/en/prerequisites.rst b/docs/en/prerequisites.rst index 47960aaa0..a5827fb5a 100644 --- a/docs/en/prerequisites.rst +++ b/docs/en/prerequisites.rst @@ -1,9 +1,26 @@ Prerequisites =============================== -The minimum requirements for running the Espressif-IDE are below. +This document outlines the necessary requirements for installing and running Espressif-IDE to build applications with ESP-IDF. + +Hardware Prerequisites +----------------------- +- A computer running Windows, Linux, or macOS +- An ESP32 development board with a USB to serial interface and/or debug port +- A USB cable (data + power) compatible with your development board + +.. Note:: + Currently, some of the development boards are using USB Type C connectors. Be sure you have the correct cable to connect your board! + +Software Prerequisites +----------------------- +The minimum requirements for running the Espressif-IDE are listed below. - `Java 17 `_ and above. -- `Python 3.8 `_ and above. +- `Python 3.12 `_ and above. - `Git `_. +- `ESP-IDF Prerequisites `_ based on your Operating System. + +.. note:: + Ensure that Java, Python, and Git are correctly set up and available in the system's PATH environment variable. + -Note: Make sure Java, Python and Git are available on the environment PATH. \ No newline at end of file diff --git a/docs/en/startproject.rst b/docs/en/startproject.rst index 37d77ec9d..df41d5384 100644 --- a/docs/en/startproject.rst +++ b/docs/en/startproject.rst @@ -1,2 +1,62 @@ +.. _startproject: + Start a Project =============================== + +To get started with the Espressif-IDE, you can create a new project or import an existing project. + +1. :ref:`Create a New Project ` +2. :ref:`Create a New Project Using ESP-IDF Templates ` +3. :ref:`Import an Existing Project ` + +.. _newproject: + +Create a New Project +--------------------- +To create a new Project in the Espressif-IDE, follow the steps below: + +#. Go to ``File`` > ``New`` > ``Espressif IDF Project``. +#. Provide the ``Project name`` +#. Click ``Finish``. + +.. Note:: + The ESP-IDF build system does not support spaces in the paths to either ESP-IDF or to projects. + +.. image:: ../../media/newproject_menu.png + +.. _newprojecttemplate: + +Create a New Project Using ESP-IDF Templates +--------------------------------------------- +Espressif-IDE also offers the ability to create a project using the ESP-IDF templates, which can be accessed by following the steps below: + +#. Go to ``File`` > ``New`` > ``Espressif IDF Project``. +#. Choose a target board from the ``Select Project Target`` dropdown. +#. Click on ``Create a project using one of the templates`` from the Templates section. +#. Select the template you want to use and that automatically fills the project name based on the template selected. +#. Click ``Finish``. + + .. image:: ../../media/3_new_project_default.png + + +.. note:: + You may see numerous unresolved headers and symbols errors in the editor, and these will only be resolved after the build process. + +.. _importproject: + +Import an Existing Project +--------------------------- +To import an existing project into the Espressif-IDE, please make sure that is a CMake project. Follow the steps below: + +#. Right-click in the ``Project Explorer``. +#. Select ``Import..`` Menu. +#. Select ``Existing IDF Project`` from ``Espressif`` import wizard menu list. +#. Click ``Next``. +#. Click on ``Browse...`` to choose an existing project location directory. +#. Provide ``Project name`` if you wish you have a different name. +#. Click ``Finish`` to import the selected project into Eclipse workspace as a CMake project. + +.. image:: ../../media/5_import_project.png + + + diff --git a/docs/en/troubleshooting.rst b/docs/en/troubleshooting.rst new file mode 100644 index 000000000..1bd9027c9 --- /dev/null +++ b/docs/en/troubleshooting.rst @@ -0,0 +1,84 @@ +.. _troubleshooting: + +Troubleshooting +=============== + +- :ref:`suggestions_for_build_errors` +- :ref:`error_log` +- :ref:`console_view_log` +- :ref:`cdt_global_build_log` +- :ref:`espressif_idf_tools_console` + +.. _suggestions_for_build_errors: + +Suggestions for Build Errors using Hints Viewer +------------------------------------------------ +If you encounter a problem during a build, there may be a hint for this error in the ESP-IDF hint database, located at ``tools/idf_py_actions/hints.yml`` in ESP-IDF. The ESP-IDF Eclipse plugin provides a hint viewer where you can type an error message to find a hint for it. + +**Prerequisites:** The ``hints.yml`` file is available from ESP-IDF v5.0 and higher. If you are using an older version, you can manually download the ``hints.yml`` file from `here `_ and save it to ``esp-idf/tools/idf_py_actions/``. To download the file, right-click the ``Raw`` button and select ``Save as...``. + +To open the hints viewer: +1. Navigate to ``Windows`` -> ``Show View`` -> ``Other...`` -> ``Espressif`` -> ``Hints``. + +.. image:: https://user-images.githubusercontent.com/24419842/189666994-78cc8b24-b934-426f-9df5-79af28c50c55.png + :alt: Hints Viewer + +Now you can type or paste an error from the build log, such as: +``ccache error: Failed to create temporary file for esp-idf/libsodium/CMakeFiles/..../....: No such file or directory`` + +.. image:: https://user-images.githubusercontent.com/24419842/189672552-994624f3-c0c5-48e6-aa2c-61e4ed8915e5.png + :alt: Example Error in Hints Viewer + +Double-clicking on the row will display the hint message if it doesn't fully fit on your screen. + +.. image:: https://user-images.githubusercontent.com/24419842/189673174-8ce40cda-6933-4dc4-a555-5d2ca617256e.png + :alt: Hint Message + +.. _error_log: + +Error Log +--------- +The Error Log view captures warnings and errors logged by plug-ins. The log file is stored in the ``.log`` file within the ``.metadata`` subdirectory of the workspace. + +To open the Error Log view: +- Go to ``Window`` > ``Show View`` > ``Error Log``. + +To export the current log view content: +1. Press the ``Export Log`` toolbar button or select ``Export Log...`` from the context menu. +2. Enter a file name. + +It's recommended to include an error log when reporting an issue. + +.. image:: ../../media/export_log.png + :alt: Export Log + +.. _console_view_log: + +Console View Log +---------------- +The Console View shows warnings and errors related to the current running process or build. To access the Console View: + +- From the menu bar, select ``Window`` > ``Show View`` > ``Console``. + +.. image:: ../../media/CDT_Build_Console.png + :alt: Console View + +.. _cdt_global_build_log: + +CDT Global Build Log +-------------------- +To enable global build logging: +- Go to ``Preferences`` > ``C/C++`` > ``Build`` > ``Logging``. + +.. _espressif_idf_tools_console: + +Espressif IDF Tools Console +---------------------------- +The Espressif IDF Tools Console is part of the Console view and opens during the installation of IDF tools from Eclipse. + +If you encounter any issues during installation of IDF tools via ``Espressif`` > ``ESP-IDF Tools Manager`` > ``Install tools``, check the Espressif IDF Tools Console for errors. + +If this console is not active, switch to it by clicking on the ``Display Selected Console`` icon in the console view. + +.. image:: ../../media/IDF_tools_console.png + :alt: Espressif IDF Tools Console diff --git a/docs/en/windowsofflineinstaller.rst b/docs/en/windowsofflineinstaller.rst new file mode 100644 index 000000000..bcb9bc7dc --- /dev/null +++ b/docs/en/windowsofflineinstaller.rst @@ -0,0 +1,129 @@ +.. _windowsofflineinstaller: + +Installing Espressif-IDE by Windows Offline Installer +====================================================== + +`Espressif-IDE with ESP-IDF Windows Offline Installer` is an offline installer that includes all the required components for ESP-IDF application development. + +The installer deploys the following components: + +- Embedded Python +- Cross-compilers +- OpenOCD +- CMake and Ninja build tools +- ESP-IDF +- Espressif-IDE +- Amazon Corretto OpenJDK + +As Installer bundles, all the required components and tools including stable esp-idf so people behind corporate firewalls can use the whole solution out-of-box. This also configures all the required build environment variables and tool paths as you launch the IDE. All you could do is to get started with your project directly without manually configuring anything. This will give you a big boost to your productivity! + + +Download +-------- + +You can download the latest version of the installer from `this `_ and run the installer. You can find installer name with ``Espressif-IDE-3.1.1 with ESP-IDF v5.3.1`` or similar name based on the version of the IDE and the version of the ESP-IDF. + +Choose the Installer as shown below. + +.. image:: ../../media/windows-installation/ide_windows_installer_0.png + +Installation +------------ + +The installer is an executable file with .exe extension. You can run the installer by double-clicking on it. + +The installer will guide you through the installation process. Please find the step-by-step guide below. + +Step 1: Choose Language +~~~~~~~~~~~~~~~~~~~~~~~~ + +Select language for the installer and click Ok. + +.. image:: ../../media/windows-installation/ide_windows_installer_1.png + :alt: drawing + +Step 2: Accept the product license agreement +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Read through the product license agreement, and then select `I accept the agreement`. You must accept the product license in order to continue with the installation. Continue by clicking Next. + +.. image:: ../../media/windows-installation/ide_windows_installer_2.png + :alt: drawing + +Step 3: Pre-installation checks +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../../media/windows-installation/ide_windows_installer_3.png + :alt: drawing + +Step 4: Choose the installation directory +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../../media/windows-installation/ide_windows_installer_4.png + :alt: drawing + +Step 5: Select Components to Install +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +By default all the components are selected. You can deselect any component if you don't want to install it. + +.. image:: ../../media/windows-installation/ide_windows_installer_5.png + :alt: drawing + +Step 6: Review the installation summary +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +A review summary is presented before the Espressif-IDE and others are installed. + +.. image:: ../../media/windows-installation/ide_windows_installer_6.png + :alt: drawing +.. image:: ../../media/windows-installation/ide_windows_installer_7.png + :alt: drawing + +Step 6: Finalize the installation +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. image:: ../../media/windows-installation/ide_windows_installer_8.png + :alt: drawing +.. image:: ../../media/windows-installation/ide_windows_installer_9.png + :alt: drawing + +Step 7: Launch Espressif-IDE +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Launch Espressif-IDE by double-clicking on the icon. + +.. image:: ../../media/windows-installation/ide_windows_installer_10.png + :alt: drawing + +Step 8: Choose Espressif-IDE Workspace +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It's advised to select a workspace directory outside the Espressif-IDE Installer folder. + +.. image:: ../../media/windows-installation/ide_windows_installer_11.png + :alt: drawing + +Step 9: Espressif-IDE Workbench +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As soon as you launch the Espressif-IDE, it will automatically configure the required environment variables and launch the Welcome page. You can close the Welcome page. You don't need to run any additional install tools from the IDE. + +.. image:: ../../media/windows-installation/ide_windows_installer_12.png + :alt: drawing + +You can verify the CDT Build environment variables from the Eclipse Preferences. + +.. image:: ../../media/windows-installation/ide_windows_installer_13.png + :alt: drawing + +Step 10: Build Your First Project +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As IDE already configured with all the required environment variables, you can start with your project. + +You can find more details for creating a project in the :ref:`New Project ` section of the documentation. + +.. image:: ../../media/windows-installation/ide_windows_installer_14.png + :alt: drawing + :width: 400 \ No newline at end of file diff --git a/media/.DS_Store b/media/.DS_Store new file mode 100644 index 000000000..22dd6f19a Binary files /dev/null and b/media/.DS_Store differ diff --git a/media/10_serial_terminal.png b/media/10_serial_terminal.png new file mode 100644 index 000000000..0cc5b4ac9 Binary files /dev/null and b/media/10_serial_terminal.png differ diff --git a/media/11_launch_configuration.png b/media/11_launch_configuration.png new file mode 100644 index 000000000..75b83ff12 Binary files /dev/null and b/media/11_launch_configuration.png differ diff --git a/media/12_flashing.png b/media/12_flashing.png new file mode 100644 index 000000000..281787b7b Binary files /dev/null and b/media/12_flashing.png differ diff --git a/media/13_sdkconfig_editor.png b/media/13_sdkconfig_editor.png new file mode 100644 index 000000000..ced8f764b Binary files /dev/null and b/media/13_sdkconfig_editor.png differ diff --git a/media/1_idffeature_install.png b/media/1_idffeature_install.png new file mode 100644 index 000000000..3a557aa14 Binary files /dev/null and b/media/1_idffeature_install.png differ diff --git a/media/2_environment_pref.png b/media/2_environment_pref.png new file mode 100644 index 000000000..fb00c89cd Binary files /dev/null and b/media/2_environment_pref.png differ diff --git a/media/3_new_project_default.png b/media/3_new_project_default.png new file mode 100644 index 000000000..50ce4d9f6 Binary files /dev/null and b/media/3_new_project_default.png differ diff --git a/media/4_new_project_templates.png b/media/4_new_project_templates.png new file mode 100644 index 000000000..4d01524fd Binary files /dev/null and b/media/4_new_project_templates.png differ diff --git a/media/5_import_project.png b/media/5_import_project.png new file mode 100644 index 000000000..6ec06fb33 Binary files /dev/null and b/media/5_import_project.png differ diff --git a/media/6_core_build_toolchains.png b/media/6_core_build_toolchains.png new file mode 100644 index 000000000..59e8190a8 Binary files /dev/null and b/media/6_core_build_toolchains.png differ diff --git a/media/7_cmake_toolchain.png b/media/7_cmake_toolchain.png new file mode 100644 index 000000000..ba3131d1d Binary files /dev/null and b/media/7_cmake_toolchain.png differ diff --git a/media/8_launch_target.png b/media/8_launch_target.png new file mode 100644 index 000000000..aca86c911 Binary files /dev/null and b/media/8_launch_target.png differ diff --git a/media/9_cmake_build.png b/media/9_cmake_build.png new file mode 100644 index 000000000..b983ff412 Binary files /dev/null and b/media/9_cmake_build.png differ diff --git a/media/AppLvlTracing_1.png b/media/AppLvlTracing_1.png new file mode 100644 index 000000000..cedbc5987 Binary files /dev/null and b/media/AppLvlTracing_1.png differ diff --git a/media/AppLvlTracing_2.png b/media/AppLvlTracing_2.png new file mode 100644 index 000000000..017a3a3ae Binary files /dev/null and b/media/AppLvlTracing_2.png differ diff --git a/media/AppLvlTracing_3.png b/media/AppLvlTracing_3.png new file mode 100644 index 000000000..4e2e506d8 Binary files /dev/null and b/media/AppLvlTracing_3.png differ diff --git a/media/AppLvlTracing_4.png b/media/AppLvlTracing_4.png new file mode 100644 index 000000000..45beebf01 Binary files /dev/null and b/media/AppLvlTracing_4.png differ diff --git a/media/AppLvlTracing_5.png b/media/AppLvlTracing_5.png new file mode 100644 index 000000000..fc7ca2c95 Binary files /dev/null and b/media/AppLvlTracing_5.png differ diff --git a/media/CDT_Build_Console.png b/media/CDT_Build_Console.png new file mode 100644 index 000000000..4d79391df Binary files /dev/null and b/media/CDT_Build_Console.png differ diff --git a/media/CoreDumpDebugging/sdkconfig_editor.png b/media/CoreDumpDebugging/sdkconfig_editor.png new file mode 100644 index 000000000..ec63dbcfa Binary files /dev/null and b/media/CoreDumpDebugging/sdkconfig_editor.png differ diff --git a/media/ESP-IDF_Components/components_window.png b/media/ESP-IDF_Components/components_window.png new file mode 100644 index 000000000..de432f634 Binary files /dev/null and b/media/ESP-IDF_Components/components_window.png differ diff --git a/media/ESP-IDF_Components/install_components.png b/media/ESP-IDF_Components/install_components.png new file mode 100644 index 000000000..5f75a726f Binary files /dev/null and b/media/ESP-IDF_Components/install_components.png differ diff --git a/media/GDBStubDebugging/code_example.png b/media/GDBStubDebugging/code_example.png new file mode 100644 index 000000000..23cdfe7ea Binary files /dev/null and b/media/GDBStubDebugging/code_example.png differ diff --git a/media/GDBStubDebugging/debug_panic_mode.png b/media/GDBStubDebugging/debug_panic_mode.png new file mode 100644 index 000000000..63d95df22 Binary files /dev/null and b/media/GDBStubDebugging/debug_panic_mode.png differ diff --git a/media/GDBStubDebugging/sdkconfig_editor.png b/media/GDBStubDebugging/sdkconfig_editor.png new file mode 100644 index 000000000..b4aed75f8 Binary files /dev/null and b/media/GDBStubDebugging/sdkconfig_editor.png differ diff --git a/media/GDBStubDebugging/sdkconfig_editor_panic_behavior.png b/media/GDBStubDebugging/sdkconfig_editor_panic_behavior.png new file mode 100644 index 000000000..5057f99af Binary files /dev/null and b/media/GDBStubDebugging/sdkconfig_editor_panic_behavior.png differ diff --git a/media/HeapTracing/analysis_context_menu.png b/media/HeapTracing/analysis_context_menu.png new file mode 100644 index 000000000..32715eed8 Binary files /dev/null and b/media/HeapTracing/analysis_context_menu.png differ diff --git a/media/HeapTracing/breakpoint_properties_actions.png b/media/HeapTracing/breakpoint_properties_actions.png new file mode 100644 index 000000000..095b89796 Binary files /dev/null and b/media/HeapTracing/breakpoint_properties_actions.png differ diff --git a/media/HeapTracing/breakpoint_properties_actions_start_attached.png b/media/HeapTracing/breakpoint_properties_actions_start_attached.png new file mode 100644 index 000000000..738cd9fd1 Binary files /dev/null and b/media/HeapTracing/breakpoint_properties_actions_start_attached.png differ diff --git a/media/HeapTracing/breakpoint_properties_actions_stop_attached.png b/media/HeapTracing/breakpoint_properties_actions_stop_attached.png new file mode 100644 index 000000000..8462844d5 Binary files /dev/null and b/media/HeapTracing/breakpoint_properties_actions_stop_attached.png differ diff --git a/media/HeapTracing/breakpoint_properties_popup.png b/media/HeapTracing/breakpoint_properties_popup.png new file mode 100644 index 000000000..b13ac9b1b Binary files /dev/null and b/media/HeapTracing/breakpoint_properties_popup.png differ diff --git a/media/HeapTracing/callers_view.png b/media/HeapTracing/callers_view.png new file mode 100644 index 000000000..d9211a027 Binary files /dev/null and b/media/HeapTracing/callers_view.png differ diff --git a/media/HeapTracing/details_tab_tracing.png b/media/HeapTracing/details_tab_tracing.png new file mode 100644 index 000000000..f59c44a41 Binary files /dev/null and b/media/HeapTracing/details_tab_tracing.png differ diff --git a/media/HeapTracing/heap_tracing_action.png b/media/HeapTracing/heap_tracing_action.png new file mode 100644 index 000000000..7a344d9a6 Binary files /dev/null and b/media/HeapTracing/heap_tracing_action.png differ diff --git a/media/HeapTracing/overview_tab_tracing.png b/media/HeapTracing/overview_tab_tracing.png new file mode 100644 index 000000000..f948ddd09 Binary files /dev/null and b/media/HeapTracing/overview_tab_tracing.png differ diff --git a/media/HeapTracing/overview_tab_tracing_contexts.png b/media/HeapTracing/overview_tab_tracing_contexts.png new file mode 100644 index 000000000..f3be594ef Binary files /dev/null and b/media/HeapTracing/overview_tab_tracing_contexts.png differ diff --git a/media/HeapTracing/show_callers_context_menu.png b/media/HeapTracing/show_callers_context_menu.png new file mode 100644 index 000000000..04595139b Binary files /dev/null and b/media/HeapTracing/show_callers_context_menu.png differ diff --git a/media/HeapTracing/sysview_heap_log_file.PNG b/media/HeapTracing/sysview_heap_log_file.PNG new file mode 100644 index 000000000..3540798c5 Binary files /dev/null and b/media/HeapTracing/sysview_heap_log_file.PNG differ diff --git a/media/IDF_tools_console.png b/media/IDF_tools_console.png new file mode 100644 index 000000000..a47f7be88 Binary files /dev/null and b/media/IDF_tools_console.png differ diff --git a/media/JtagFlash_1.png b/media/JtagFlash_1.png new file mode 100644 index 000000000..15676cefc Binary files /dev/null and b/media/JtagFlash_1.png differ diff --git a/media/JtagFlash_2.png b/media/JtagFlash_2.png new file mode 100644 index 000000000..7d2bc7a4a Binary files /dev/null and b/media/JtagFlash_2.png differ diff --git a/media/JtagFlash_3.png b/media/JtagFlash_3.png new file mode 100644 index 000000000..20ad7f30e Binary files /dev/null and b/media/JtagFlash_3.png differ diff --git a/media/OpenOCDDebug_1.png b/media/OpenOCDDebug_1.png new file mode 100644 index 000000000..0f68dcd30 Binary files /dev/null and b/media/OpenOCDDebug_1.png differ diff --git a/media/OpenOCDDebug_10.png b/media/OpenOCDDebug_10.png new file mode 100644 index 000000000..377aaf275 Binary files /dev/null and b/media/OpenOCDDebug_10.png differ diff --git a/media/OpenOCDDebug_11.png b/media/OpenOCDDebug_11.png new file mode 100644 index 000000000..481113e97 Binary files /dev/null and b/media/OpenOCDDebug_11.png differ diff --git a/media/OpenOCDDebug_12.png b/media/OpenOCDDebug_12.png new file mode 100644 index 000000000..caf8a4e60 Binary files /dev/null and b/media/OpenOCDDebug_12.png differ diff --git a/media/OpenOCDDebug_13.png b/media/OpenOCDDebug_13.png new file mode 100644 index 000000000..42c2b9bc9 Binary files /dev/null and b/media/OpenOCDDebug_13.png differ diff --git a/media/OpenOCDDebug_2.png b/media/OpenOCDDebug_2.png new file mode 100644 index 000000000..30cfc1b89 Binary files /dev/null and b/media/OpenOCDDebug_2.png differ diff --git a/media/OpenOCDDebug_3.png b/media/OpenOCDDebug_3.png new file mode 100644 index 000000000..eb3c424f8 Binary files /dev/null and b/media/OpenOCDDebug_3.png differ diff --git a/media/OpenOCDDebug_4.png b/media/OpenOCDDebug_4.png new file mode 100644 index 000000000..799c200b1 Binary files /dev/null and b/media/OpenOCDDebug_4.png differ diff --git a/media/OpenOCDDebug_5.png b/media/OpenOCDDebug_5.png new file mode 100644 index 000000000..16b729c7e Binary files /dev/null and b/media/OpenOCDDebug_5.png differ diff --git a/media/OpenOCDDebug_6.png b/media/OpenOCDDebug_6.png new file mode 100644 index 000000000..e4d8723c4 Binary files /dev/null and b/media/OpenOCDDebug_6.png differ diff --git a/media/OpenOCDDebug_7.png b/media/OpenOCDDebug_7.png new file mode 100644 index 000000000..c7e381778 Binary files /dev/null and b/media/OpenOCDDebug_7.png differ diff --git a/media/OpenOCDDebug_8.png b/media/OpenOCDDebug_8.png new file mode 100644 index 000000000..548671d83 Binary files /dev/null and b/media/OpenOCDDebug_8.png differ diff --git a/media/OpenOCDDebug_9.png b/media/OpenOCDDebug_9.png new file mode 100644 index 000000000..9e5307bec Binary files /dev/null and b/media/OpenOCDDebug_9.png differ diff --git a/media/Preference_recorder.png b/media/Preference_recorder.png new file mode 100644 index 000000000..7ba725a61 Binary files /dev/null and b/media/Preference_recorder.png differ diff --git a/media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png b/media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png new file mode 100644 index 000000000..888dca0fc Binary files /dev/null and b/media/ToolsManager/ESP-IDF_Configuration_Download_or_Use_ESP-IDF.png differ diff --git a/media/ToolsManager/ESP-IDF_Manager_Editor_Screen.png b/media/ToolsManager/ESP-IDF_Manager_Editor_Screen.png new file mode 100644 index 000000000..a94e900ab Binary files /dev/null and b/media/ToolsManager/ESP-IDF_Manager_Editor_Screen.png differ diff --git a/media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png b/media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png new file mode 100644 index 000000000..77fba0f43 Binary files /dev/null and b/media/ToolsManager/ESP-IDF_Manager_Multiple_versions.png differ diff --git a/media/ToolsManager/Tool_installed_and_activated.png b/media/ToolsManager/Tool_installed_and_activated.png new file mode 100644 index 000000000..dbe98b931 Binary files /dev/null and b/media/ToolsManager/Tool_installed_and_activated.png differ diff --git a/media/ToolsValidation/EnvSettings.png b/media/ToolsValidation/EnvSettings.png new file mode 100644 index 000000000..36d320a0f Binary files /dev/null and b/media/ToolsValidation/EnvSettings.png differ diff --git a/media/ToolsValidation/PathVarEdit.png b/media/ToolsValidation/PathVarEdit.png new file mode 100644 index 000000000..7211fe937 Binary files /dev/null and b/media/ToolsValidation/PathVarEdit.png differ diff --git a/media/ToolsValidation/PathVarEdited.png b/media/ToolsValidation/PathVarEdited.png new file mode 100644 index 000000000..55de61112 Binary files /dev/null and b/media/ToolsValidation/PathVarEdited.png differ diff --git a/media/Update_plugins.png b/media/Update_plugins.png new file mode 100644 index 000000000..20684dc56 Binary files /dev/null and b/media/Update_plugins.png differ diff --git a/media/buildconfiguration_clang.png b/media/buildconfiguration_clang.png new file mode 100644 index 000000000..8b2940350 Binary files /dev/null and b/media/buildconfiguration_clang.png differ diff --git a/media/change_language.png b/media/change_language.png new file mode 100644 index 000000000..ec74b2658 Binary files /dev/null and b/media/change_language.png differ diff --git a/media/cland_starting.png b/media/cland_starting.png new file mode 100644 index 000000000..7952803ab Binary files /dev/null and b/media/cland_starting.png differ diff --git a/media/clangd/build_settings_clang.png b/media/clangd/build_settings_clang.png new file mode 100644 index 000000000..3ecc47db6 Binary files /dev/null and b/media/clangd/build_settings_clang.png differ diff --git a/media/clangd/cdt_indexer_disable.png b/media/clangd/cdt_indexer_disable.png new file mode 100644 index 000000000..115608363 Binary files /dev/null and b/media/clangd/cdt_indexer_disable.png differ diff --git a/media/clangd/cdtlsp_updatesite.png b/media/clangd/cdtlsp_updatesite.png new file mode 100644 index 000000000..577c48255 Binary files /dev/null and b/media/clangd/cdtlsp_updatesite.png differ diff --git a/media/clangd/clang_compiler_config.png b/media/clangd/clang_compiler_config.png new file mode 100644 index 000000000..dd8161129 Binary files /dev/null and b/media/clangd/clang_compiler_config.png differ diff --git a/media/clangd/clangd_config.png b/media/clangd/clangd_config.png new file mode 100644 index 000000000..56c268757 Binary files /dev/null and b/media/clangd/clangd_config.png differ diff --git a/media/clangd/clangd_context_help.png b/media/clangd/clangd_context_help.png new file mode 100644 index 000000000..75bc9333c Binary files /dev/null and b/media/clangd/clangd_context_help.png differ diff --git a/media/clangd/clangd_editor.png b/media/clangd/clangd_editor.png new file mode 100644 index 000000000..bcf7c302a Binary files /dev/null and b/media/clangd/clangd_editor.png differ diff --git a/media/clangd/new_cmake_clang_toolchain_config.png b/media/clangd/new_cmake_clang_toolchain_config.png new file mode 100644 index 000000000..898240eb6 Binary files /dev/null and b/media/clangd/new_cmake_clang_toolchain_config.png differ diff --git a/media/clangd_consolelog_config.png b/media/clangd_consolelog_config.png new file mode 100644 index 000000000..a80cb4c97 Binary files /dev/null and b/media/clangd_consolelog_config.png differ diff --git a/media/clangd_generic_editor.png b/media/clangd_generic_editor.png new file mode 100644 index 000000000..6199df9a2 Binary files /dev/null and b/media/clangd_generic_editor.png differ diff --git a/media/clangd_preference.png b/media/clangd_preference.png new file mode 100644 index 000000000..26a3b0a27 Binary files /dev/null and b/media/clangd_preference.png differ diff --git a/media/clangd_proposals.png b/media/clangd_proposals.png new file mode 100644 index 000000000..a17ca8880 Binary files /dev/null and b/media/clangd_proposals.png differ diff --git a/media/clangd_updatesite.png b/media/clangd_updatesite.png new file mode 100644 index 000000000..9aad721da Binary files /dev/null and b/media/clangd_updatesite.png differ diff --git a/media/cmake_editor_ca.png b/media/cmake_editor_ca.png new file mode 100644 index 000000000..654b4bc3b Binary files /dev/null and b/media/cmake_editor_ca.png differ diff --git a/media/cmake_editor_preferences.png b/media/cmake_editor_preferences.png new file mode 100644 index 000000000..e503b1fa0 Binary files /dev/null and b/media/cmake_editor_preferences.png differ diff --git a/media/code_analysis_disable_symbols.png b/media/code_analysis_disable_symbols.png new file mode 100644 index 000000000..64478c0f0 Binary files /dev/null and b/media/code_analysis_disable_symbols.png differ diff --git a/media/custombuilddir.png b/media/custombuilddir.png new file mode 100644 index 000000000..6b4d18bf3 Binary files /dev/null and b/media/custombuilddir.png differ diff --git a/media/espressif-ide.png b/media/espressif-ide.png new file mode 100644 index 000000000..b7b8cc9c6 Binary files /dev/null and b/media/espressif-ide.png differ diff --git a/media/espressifide_splash.bmp b/media/espressifide_splash.bmp new file mode 100644 index 000000000..b63e36b8a Binary files /dev/null and b/media/espressifide_splash.bmp differ diff --git a/media/export_log.png b/media/export_log.png new file mode 100644 index 000000000..ca0b50a21 Binary files /dev/null and b/media/export_log.png differ diff --git a/media/icons/build.png b/media/icons/build.png new file mode 100644 index 000000000..c0272bb5d Binary files /dev/null and b/media/icons/build.png differ diff --git a/media/icons/debug.png b/media/icons/debug.png new file mode 100644 index 000000000..59875d1b3 Binary files /dev/null and b/media/icons/debug.png differ diff --git a/media/icons/delete.png b/media/icons/delete.png new file mode 100644 index 000000000..5f0038585 Binary files /dev/null and b/media/icons/delete.png differ diff --git a/media/icons/run.png b/media/icons/run.png new file mode 100644 index 000000000..08571c1f2 Binary files /dev/null and b/media/icons/run.png differ diff --git a/media/icons/terminate.png b/media/icons/terminate.png new file mode 100644 index 000000000..4679b9375 Binary files /dev/null and b/media/icons/terminate.png differ diff --git a/media/idf_terminal.png b/media/idf_terminal.png new file mode 100644 index 000000000..9db992ae5 Binary files /dev/null and b/media/idf_terminal.png differ diff --git a/media/idf_update_site_install.png b/media/idf_update_site_install.png new file mode 100644 index 000000000..a9232fd07 Binary files /dev/null and b/media/idf_update_site_install.png differ diff --git a/media/linux-logo.png b/media/linux-logo.png new file mode 100644 index 000000000..1112db655 Binary files /dev/null and b/media/linux-logo.png differ diff --git a/media/macos-logo.png b/media/macos-logo.png new file mode 100644 index 000000000..289d1f601 Binary files /dev/null and b/media/macos-logo.png differ diff --git a/media/market_place.png b/media/market_place.png new file mode 100644 index 000000000..708c26249 Binary files /dev/null and b/media/market_place.png differ diff --git a/media/monitor.png b/media/monitor.png new file mode 100644 index 000000000..d64a54b57 Binary files /dev/null and b/media/monitor.png differ diff --git a/media/newproject_menu.png b/media/newproject_menu.png new file mode 100644 index 000000000..bd8d54d2c Binary files /dev/null and b/media/newproject_menu.png differ diff --git a/media/sizeanalysis_details.png b/media/sizeanalysis_details.png new file mode 100644 index 000000000..eead18e29 Binary files /dev/null and b/media/sizeanalysis_details.png differ diff --git a/media/sizeanalysis_overview.png b/media/sizeanalysis_overview.png new file mode 100644 index 000000000..a537df6db Binary files /dev/null and b/media/sizeanalysis_overview.png differ diff --git a/media/target_selection.png b/media/target_selection.png new file mode 100644 index 000000000..c395e3f65 Binary files /dev/null and b/media/target_selection.png differ diff --git a/media/windows-installation/ide_windows_installer_0.png b/media/windows-installation/ide_windows_installer_0.png new file mode 100644 index 000000000..07f721223 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_0.png differ diff --git a/media/windows-installation/ide_windows_installer_1.png b/media/windows-installation/ide_windows_installer_1.png new file mode 100644 index 000000000..5dfa2525f Binary files /dev/null and b/media/windows-installation/ide_windows_installer_1.png differ diff --git a/media/windows-installation/ide_windows_installer_10.png b/media/windows-installation/ide_windows_installer_10.png new file mode 100644 index 000000000..c096dde02 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_10.png differ diff --git a/media/windows-installation/ide_windows_installer_11.png b/media/windows-installation/ide_windows_installer_11.png new file mode 100644 index 000000000..c0d48024a Binary files /dev/null and b/media/windows-installation/ide_windows_installer_11.png differ diff --git a/media/windows-installation/ide_windows_installer_12.png b/media/windows-installation/ide_windows_installer_12.png new file mode 100644 index 000000000..3a150228a Binary files /dev/null and b/media/windows-installation/ide_windows_installer_12.png differ diff --git a/media/windows-installation/ide_windows_installer_13.png b/media/windows-installation/ide_windows_installer_13.png new file mode 100644 index 000000000..d6d924943 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_13.png differ diff --git a/media/windows-installation/ide_windows_installer_14.png b/media/windows-installation/ide_windows_installer_14.png new file mode 100644 index 000000000..b4f34451f Binary files /dev/null and b/media/windows-installation/ide_windows_installer_14.png differ diff --git a/media/windows-installation/ide_windows_installer_2.png b/media/windows-installation/ide_windows_installer_2.png new file mode 100644 index 000000000..fafea72d9 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_2.png differ diff --git a/media/windows-installation/ide_windows_installer_3.png b/media/windows-installation/ide_windows_installer_3.png new file mode 100644 index 000000000..a02a7bba4 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_3.png differ diff --git a/media/windows-installation/ide_windows_installer_4.png b/media/windows-installation/ide_windows_installer_4.png new file mode 100644 index 000000000..60d7e40d8 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_4.png differ diff --git a/media/windows-installation/ide_windows_installer_5.png b/media/windows-installation/ide_windows_installer_5.png new file mode 100644 index 000000000..3b446678f Binary files /dev/null and b/media/windows-installation/ide_windows_installer_5.png differ diff --git a/media/windows-installation/ide_windows_installer_6.png b/media/windows-installation/ide_windows_installer_6.png new file mode 100644 index 000000000..3b1abea39 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_6.png differ diff --git a/media/windows-installation/ide_windows_installer_7.png b/media/windows-installation/ide_windows_installer_7.png new file mode 100644 index 000000000..de1b76351 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_7.png differ diff --git a/media/windows-installation/ide_windows_installer_8.png b/media/windows-installation/ide_windows_installer_8.png new file mode 100644 index 000000000..eba106a96 Binary files /dev/null and b/media/windows-installation/ide_windows_installer_8.png differ diff --git a/media/windows-installation/ide_windows_installer_9.png b/media/windows-installation/ide_windows_installer_9.png new file mode 100644 index 000000000..1e6a26f7c Binary files /dev/null and b/media/windows-installation/ide_windows_installer_9.png differ diff --git a/media/windows-logo.png b/media/windows-logo.png new file mode 100644 index 000000000..122f53a2c Binary files /dev/null and b/media/windows-logo.png differ diff --git a/media/zh/10_serial_terminal.png b/media/zh/10_serial_terminal.png new file mode 100644 index 000000000..15046a608 Binary files /dev/null and b/media/zh/10_serial_terminal.png differ diff --git a/media/zh/11_launch_configuration.png b/media/zh/11_launch_configuration.png new file mode 100644 index 000000000..800f64260 Binary files /dev/null and b/media/zh/11_launch_configuration.png differ diff --git a/media/zh/1_idffeature_install.png b/media/zh/1_idffeature_install.png new file mode 100644 index 000000000..702cc7bc9 Binary files /dev/null and b/media/zh/1_idffeature_install.png differ diff --git a/media/zh/2_environment_pref.png b/media/zh/2_environment_pref.png new file mode 100644 index 000000000..b4cab73d5 Binary files /dev/null and b/media/zh/2_environment_pref.png differ diff --git a/media/zh/3_new_project_default.png b/media/zh/3_new_project_default.png new file mode 100644 index 000000000..591da2ac5 Binary files /dev/null and b/media/zh/3_new_project_default.png differ diff --git a/media/zh/4_new_project_templates.png b/media/zh/4_new_project_templates.png new file mode 100644 index 000000000..2d545c3bb Binary files /dev/null and b/media/zh/4_new_project_templates.png differ diff --git a/media/zh/5_import_project.png b/media/zh/5_import_project.png new file mode 100644 index 000000000..658609e92 Binary files /dev/null and b/media/zh/5_import_project.png differ diff --git a/media/zh/8_launch_target.png b/media/zh/8_launch_target.png new file mode 100644 index 000000000..7ee868996 Binary files /dev/null and b/media/zh/8_launch_target.png differ diff --git a/media/zh/ESP-IDF_Components/components_window.png b/media/zh/ESP-IDF_Components/components_window.png new file mode 100644 index 000000000..7a8ca5ab3 Binary files /dev/null and b/media/zh/ESP-IDF_Components/components_window.png differ diff --git a/media/zh/ESP-IDF_Components/install_components.png b/media/zh/ESP-IDF_Components/install_components.png new file mode 100644 index 000000000..5f75a726f Binary files /dev/null and b/media/zh/ESP-IDF_Components/install_components.png differ diff --git a/media/zh/GDBStubDebugging/code_example.png b/media/zh/GDBStubDebugging/code_example.png new file mode 100644 index 000000000..23cdfe7ea Binary files /dev/null and b/media/zh/GDBStubDebugging/code_example.png differ diff --git a/media/zh/GDBStubDebugging/debug_panic_mode.png b/media/zh/GDBStubDebugging/debug_panic_mode.png new file mode 100644 index 000000000..63d95df22 Binary files /dev/null and b/media/zh/GDBStubDebugging/debug_panic_mode.png differ diff --git a/media/zh/GDBStubDebugging/sdkconfig_editor.png b/media/zh/GDBStubDebugging/sdkconfig_editor.png new file mode 100644 index 000000000..b4aed75f8 Binary files /dev/null and b/media/zh/GDBStubDebugging/sdkconfig_editor.png differ diff --git a/media/zh/GDBStubDebugging/sdkconfig_editor_panic_behavior.png b/media/zh/GDBStubDebugging/sdkconfig_editor_panic_behavior.png new file mode 100644 index 000000000..5057f99af Binary files /dev/null and b/media/zh/GDBStubDebugging/sdkconfig_editor_panic_behavior.png differ diff --git a/media/zh/HeapTracing/analysis_context_menu.png b/media/zh/HeapTracing/analysis_context_menu.png new file mode 100644 index 000000000..32715eed8 Binary files /dev/null and b/media/zh/HeapTracing/analysis_context_menu.png differ diff --git a/media/zh/HeapTracing/breakpoint_properties_actions.png b/media/zh/HeapTracing/breakpoint_properties_actions.png new file mode 100644 index 000000000..095b89796 Binary files /dev/null and b/media/zh/HeapTracing/breakpoint_properties_actions.png differ diff --git a/media/zh/HeapTracing/breakpoint_properties_actions_start_attached.png b/media/zh/HeapTracing/breakpoint_properties_actions_start_attached.png new file mode 100644 index 000000000..738cd9fd1 Binary files /dev/null and b/media/zh/HeapTracing/breakpoint_properties_actions_start_attached.png differ diff --git a/media/zh/HeapTracing/breakpoint_properties_actions_stop_attached.png b/media/zh/HeapTracing/breakpoint_properties_actions_stop_attached.png new file mode 100644 index 000000000..8462844d5 Binary files /dev/null and b/media/zh/HeapTracing/breakpoint_properties_actions_stop_attached.png differ diff --git a/media/zh/HeapTracing/breakpoint_properties_popup.png b/media/zh/HeapTracing/breakpoint_properties_popup.png new file mode 100644 index 000000000..b13ac9b1b Binary files /dev/null and b/media/zh/HeapTracing/breakpoint_properties_popup.png differ diff --git a/media/zh/HeapTracing/callers_view.png b/media/zh/HeapTracing/callers_view.png new file mode 100644 index 000000000..d9211a027 Binary files /dev/null and b/media/zh/HeapTracing/callers_view.png differ diff --git a/media/zh/HeapTracing/details_tab_tracing.png b/media/zh/HeapTracing/details_tab_tracing.png new file mode 100644 index 000000000..f59c44a41 Binary files /dev/null and b/media/zh/HeapTracing/details_tab_tracing.png differ diff --git a/media/zh/HeapTracing/heap_tracing_action.png b/media/zh/HeapTracing/heap_tracing_action.png new file mode 100644 index 000000000..7a344d9a6 Binary files /dev/null and b/media/zh/HeapTracing/heap_tracing_action.png differ diff --git a/media/zh/HeapTracing/overview_tab_tracing.png b/media/zh/HeapTracing/overview_tab_tracing.png new file mode 100644 index 000000000..f948ddd09 Binary files /dev/null and b/media/zh/HeapTracing/overview_tab_tracing.png differ diff --git a/media/zh/HeapTracing/overview_tab_tracing_contexts.png b/media/zh/HeapTracing/overview_tab_tracing_contexts.png new file mode 100644 index 000000000..f3be594ef Binary files /dev/null and b/media/zh/HeapTracing/overview_tab_tracing_contexts.png differ diff --git a/media/zh/HeapTracing/show_callers_context_menu.png b/media/zh/HeapTracing/show_callers_context_menu.png new file mode 100644 index 000000000..04595139b Binary files /dev/null and b/media/zh/HeapTracing/show_callers_context_menu.png differ diff --git a/media/zh/HeapTracing/sysview_heap_log_file.PNG b/media/zh/HeapTracing/sysview_heap_log_file.PNG new file mode 100644 index 000000000..3540798c5 Binary files /dev/null and b/media/zh/HeapTracing/sysview_heap_log_file.PNG differ diff --git a/media/zh/IDF_tools_console.png b/media/zh/IDF_tools_console.png new file mode 100644 index 000000000..19c6914e7 Binary files /dev/null and b/media/zh/IDF_tools_console.png differ diff --git a/media/zh/ToolsManager/git_python_selection.png b/media/zh/ToolsManager/git_python_selection.png new file mode 100644 index 000000000..06e5cfbc0 Binary files /dev/null and b/media/zh/ToolsManager/git_python_selection.png differ diff --git a/media/zh/ToolsManager/install_tools_manager.png b/media/zh/ToolsManager/install_tools_manager.png new file mode 100644 index 000000000..14eef1ecb Binary files /dev/null and b/media/zh/ToolsManager/install_tools_manager.png differ diff --git a/media/zh/ToolsManager/manage_tools_installation.png b/media/zh/ToolsManager/manage_tools_installation.png new file mode 100644 index 000000000..2e82cb01e Binary files /dev/null and b/media/zh/ToolsManager/manage_tools_installation.png differ diff --git a/media/zh/ToolsManager/select_or_download_new_esp_idf.png b/media/zh/ToolsManager/select_or_download_new_esp_idf.png new file mode 100644 index 000000000..7d5ef685c Binary files /dev/null and b/media/zh/ToolsManager/select_or_download_new_esp_idf.png differ diff --git a/media/zh/change_language.png b/media/zh/change_language.png new file mode 100644 index 000000000..8ad5983d9 Binary files /dev/null and b/media/zh/change_language.png differ diff --git a/media/zh/cmake_editor_preferences.png b/media/zh/cmake_editor_preferences.png new file mode 100644 index 000000000..bd65d4568 Binary files /dev/null and b/media/zh/cmake_editor_preferences.png differ diff --git a/media/zh/esp_idf_dir.png b/media/zh/esp_idf_dir.png new file mode 100644 index 000000000..c9e8f764b Binary files /dev/null and b/media/zh/esp_idf_dir.png differ diff --git a/media/zh/espidf_download.png b/media/zh/espidf_download.png new file mode 100644 index 000000000..ceef26240 Binary files /dev/null and b/media/zh/espidf_download.png differ diff --git a/media/zh/export_log.png b/media/zh/export_log.png new file mode 100644 index 000000000..079bed727 Binary files /dev/null and b/media/zh/export_log.png differ diff --git a/media/zh/idf_terminal.png b/media/zh/idf_terminal.png new file mode 100644 index 000000000..4d23462ea Binary files /dev/null and b/media/zh/idf_terminal.png differ diff --git a/media/zh/idf_update_site_install.png b/media/zh/idf_update_site_install.png new file mode 100644 index 000000000..e3e42400e Binary files /dev/null and b/media/zh/idf_update_site_install.png differ diff --git a/media/zh/sizeanalysis_details.png b/media/zh/sizeanalysis_details.png new file mode 100644 index 000000000..451801a4a Binary files /dev/null and b/media/zh/sizeanalysis_details.png differ diff --git a/media/zh/sizeanalysis_overview.png b/media/zh/sizeanalysis_overview.png new file mode 100644 index 000000000..4248659e1 Binary files /dev/null and b/media/zh/sizeanalysis_overview.png differ