No description
Find a file
Luca Burelli 7a22d64be2
Implement official Arduino IDE debugger API (#9116)
* refactor(on-release): improve platform.txt path replacements

Use regexs to replace all occurrences of `{runtime.platform.path}` with
the correct `{runtime.tools.*.path}`, regardless of directory separator,
and remove dependency on specific text around each path.

Note that the order has been changed to ensure that the longest paths
are replaced first, to avoid replacing parts of other paths.

* fix(platform): Windows backslash cleanups

Ensure Windows paths properly use a backslash as folder separator.

* feat(platform)!: use new Arduino Debug API

Implement sketch debugging according to the official Arduino
Platform Debug Specification [1].

The biggest improvement is that now `launch.json` can be fully
customized by the core (including the type of each entry),
so there is no need to copy files in the sketch folder.
In particular, `debug_custom.json` is not used anymore.

[1] https://arduino.github.io/arduino-cli/latest/platform-specification/#sketch-debugging-configuration

BREAKING CHANGE: This commit requires Arduino IDE 2.3.0 or later to use
the debugging features. Older versions will no longer be able to start
a debug session successfully.

* feat(debug): pass objdump path to resolve globals

Cortex-debug requires objdump to be in the same folder as gdb, or needs
the full path to the executable in the `launch.json` file. This is now
possible with the new debugging API.

* feat(debug): conditionally enable debug button on Nano ESP32

If the `debug.executable` variable is null or unset, the Debug button
appears grayed out. The new IDE also takes current parameters into
account, allowing to conditionally enable the Debug button only when
some conditions are met.

* on_release: allow single board packages

---------

Co-authored-by: Martino Facchin <m.facchin@arduino.cc>
2024-02-09 12:53:18 +02:00
.github Implement official Arduino IDE debugger API (#9116) 2024-02-09 12:53:18 +02:00
cores/esp32 Fix ESP32-Solo WDT on HTTP OTA update (#5426) 2024-02-07 15:49:01 +02:00
docs [Docs] Change/clean the requirements file (#9196) 2024-02-01 11:24:11 +02:00
idf_component_examples/Hello_world Add Arduino as Component examples (#8878) 2023-11-29 12:09:43 +02:00
libraries Server Side Events (#9222) 2024-02-07 17:05:58 +02:00
package IDF release/v5.1 3662303f31 (#8943) 2023-11-30 10:24:23 +02:00
tests CI: Add peripheral manager test (#8811) 2024-01-16 16:05:22 +02:00
tools Implement official Arduino IDE debugger API (#9116) 2024-02-09 12:53:18 +02:00
variants feat: Add board support for Nologo ESP32S3 Pico (#9181) 2024-01-31 16:07:06 +02:00
.gitignore ESP-IDF v5.1 (#7733) 2023-10-05 14:54:25 +03:00
.gitmodules v2.0.0 Add support for ESP32S2 and update ESP-IDF to 4.4 (#4996) 2021-04-05 14:23:58 +03:00
.readthedocs.yaml Removed YML wron file and changed the YAML (#8785) 2023-10-20 16:35:06 +03:00
boards.txt Implement official Arduino IDE debugger API (#9116) 2024-02-09 12:53:18 +02:00
CMakeLists.txt Separated library sources in cmake for selective. (#5136) 2024-01-31 14:47:10 +02:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md (#7528) 2022-12-13 12:20:36 +02:00
idf_component.yml fix(component): Add license and switch include-exclude files (#9162) 2024-01-23 13:02:34 +02:00
Kconfig.projbuild Enable configuring target variants (#7019) 2022-08-22 14:16:38 +03:00
LICENSE.md Add LGPL 2.1 License 2019-04-16 03:08:50 +02:00
package.json ESP-IDF v5.1 (#7733) 2023-10-05 14:54:25 +03:00
platform.txt Implement official Arduino IDE debugger API (#9116) 2024-02-09 12:53:18 +02:00
programmers.txt Add support for ArduinoIDE 2.0.0 (#6506) 2022-04-04 17:19:23 +03:00
README.md docs_api_note (#9128) 2024-01-18 16:33:38 +08:00

Arduino core for the ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2

Build Status External Libraries Test

Need help or have a question? Join the chat at Gitter or open a new Discussion

Contents

Development Status

Latest Stable Release Release Version Release Date Downloads

Latest Development Release Release Version Release Date Downloads

Development Planning

Our Development is fully tracked on this public Roadmap 🎉

For even more information you can join our Monthly Community Meetings 🔔.

Documentation

You can use the Arduino-ESP32 Online Documentation to get all information about this project.


Migration guide from version 2.x to 3.x is available here.


APIs compatibility with ESP8266 and Arduino-CORE (Arduino.cc) is explained here.


Supported Chips

Here are the ESP32 series supported by the Arduino-ESP32 project:

SoC Stable Development Datasheet
ESP32 Yes Yes ESP32
ESP32-S2 Yes Yes ESP32-S2
ESP32-C3 Yes Yes ESP32-C3
ESP32-S3 Yes Yes ESP32-S3
ESP32-C6 No Yes ESP32-C6
ESP32-H2 No Yes ESP32-H2

For more details visit the supported chips documentation page.

Decoding exceptions

You can use EspExceptionDecoder to get meaningful call trace.

Issue/Bug report template

Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labelled as Type: For reference.

Finally, if you are sure no one else had the issue, follow the Issue template or Feature request template while reporting any new Issue.

External libraries compilation test

We have set-up CI testing for external libraries for ESP32 Arduino core. You can check test results in the file LIBRARIES_TEST. For more information and how to add your library to the test see external library testing in the documentation.

Contributing

We welcome contributions to the Arduino ESP32 project!

See contributing in the documentation for more information on how to contribute to the project.

We would like to have this repository in a polite and friendly atmosphere, so please be kind and respectful to others. For more details, look at Code of Conduct.