Skip to content

Template generation tool to create no_std applications targeting Espressif's chips.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

esp-rs/esp-generate

Repository files navigation

esp-generate

Template generation tool to create no_std applications targeting Espressif's line of SoCs and modules.

At present, this template supports the ESP32, ESP32-C2/C3/C6, ESP32-H2, and ESP32-S2/S3. Support for additional devices will be added as they become available.

Quickstart

To generate a project using this template:

  1. Install esp-generate:
cargo install esp-generate --locked

You can also directly download pre-compiled release binaries or use cargo-binstall.

  1. Generate a project. There are two options:

    1. Using the Terminal User Interface (TUI):

      esp-generate --chip esp32 your-project
      

      Replace the chip and project name accordingly, and select the desired options using the TUI.

    2. Using the Command Line Interface (CLI), adding the options to the esp-generate command:

      esp-generate --chip esp32 -o alloc -o wifi your-project
      

      Use the --headless flag to avoid using the TUI.

      Replace the chip and project name accordingly, and select the desired options using the -o/--option flag. For a full list of available options, see Available Options section of this README.

Available Options

  • unstable-hal: Enables esp-hal features that may not be ready for general use yet.
  • alloc: Enables allocations via the esp-alloc crate.
  • wifi: Enables Wi-Fi via the esp-wifi crate; requires alloc.
  • ble: Enables BLE via the esp-wifi crate; requires alloc.
  • embassy: Adds embassy framework support.
  • stack-smashing-protection: Enables stack smashing protection. Requires nightly Rust.
  • probe-rs: Replaces espflash with probe-rs and enables RTT-based options.
  • flashing-probe-rs: Contains options that require probe-rs:
    • defmt: Adds support for defmt printing. Uses rtt-target as the RTT implementation.
    • panic-rtt-target: Uses panic-rtt-target as the panic handler.
  • flashing-espflash: Contains options that require espflash:
    • log: Uses the log library to print messages.
    • defmt: Adds support for defmt printing. Uses esp-println and configures espflash to decode defmt logs.
    • esp-backtrace: Uses esp-backtrace as the panic handler.
  • optional: Enables the following set of options:
  • editors: Select the editor integrations:
    • helix: The Helix Editor
    • vscode: Visual Studio Code

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Template generation tool to create no_std applications targeting Espressif's chips.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks