#esp #embedded-storage #no-std

no-std esp-storage

Implementation of embedded-storage traits to access unencrypted ESP32 flash

3 releases (breaking)

0.3.0 Aug 16, 2023
0.2.0 Jul 5, 2023
0.1.0 Sep 26, 2022

#1579 in Embedded development

Download history 4/week @ 2024-01-15 14/week @ 2024-01-29 9/week @ 2024-02-05 22/week @ 2024-02-12 62/week @ 2024-02-19 57/week @ 2024-02-26 57/week @ 2024-03-04 40/week @ 2024-03-11 9/week @ 2024-03-18 23/week @ 2024-03-25 156/week @ 2024-04-01 45/week @ 2024-04-08 43/week @ 2024-04-15

268 downloads per month

MIT/Apache

54KB
1K SLoC

esp-storage

This implements embedded-storage traits to access unencrypted ESP32 flash.

Current support

ESP32, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-S2 and ESP32-S3 are supported in esp-storage

Examples

  • ESP32:
    1. Run the example:
      • cargo +esp run --release --example demo --features esp32 --target xtensa-esp32-none-elf
      • cargo +esp run --release --example low_level --features "esp32,low-level" --target xtensa-esp32-none-elf
  • ESP32-C2:
    1. Uncomment the ESP32-C2 section, under target.riscv32imc-unknown-none-elf.dev-dependencies of the Cargo-toml file.
    2. Run the example:
      • cargo "+nightly" run --example demo --features esp32c2 --target riscv32imc-unknown-none-elf
      • cargo "+nightly" run --example low_level --features "esp32c2,low-level" --target riscv32imc-unknown-none-elf
  • ESP32-C3:
    1. Uncomment the ESP32-C3 section, under target.riscv32imc-unknown-none-elf.dev-dependencies of the Cargo-toml file.
    2. Run the example:
      • cargo "+nightly" run --example demo --features esp32c3 --target riscv32imc-unknown-none-elf
      • cargo "+nightly" run --example low_level --features "esp32c3,low-level" --target riscv32imc-unknown-none-elf
  • ESP32-C6:
    1. Uncomment the ESP32-C6 section, under target.riscv32imac-unknown-none-elf.dev-dependencies of the Cargo-toml file.
    2. Run the example:
      • cargo "+nightly" run --example demo --features esp32c6 --target riscv32imac-unknown-none-elf
      • cargo "+nightly" run --example low_level --features "esp32c6,low-level" --target riscv32imac-unknown-none-elf
  • ESP32-H2:
    1. Uncomment the ESP32-H2 section, under target.riscv32imac-unknown-none-elf.dev-dependencies of the Cargo-toml file.
    2. Run the example:
      • cargo "+nightly" run --example demo --features esp32h2 --target riscv32imac-unknown-none-elf
      • cargo "+nightly" run --example low_level --features "esp32h2,low-level" --target riscv32imac-unknown-none-elf
  • ESP32-S2:
    1. Run the example:
      • cargo "+esp" run --example demo --features esp32s2 --target xtensa-esp32s2-none-elf
      • cargo +esp run --release --example low_level --features "esp32s2,low-level" --target xtensa-esp32s2-none-elf
  • ESP32-S3:
    1. Run the example:
      • cargo "+esp" run --example demo --features esp32s3 --target xtensa-esp32s3-none-elf
      • cargo +esp run --release --example low_level --features "esp32s3,low-level" --target xtensa-esp32s3-none-elf

Important

For ESP32 it is necessary to build with optimization level 2 or 3.

To make it work also for debug builds add this to your Cargo.toml

[profile.dev.package.esp-storage]
opt-level = 3

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.

Dependencies

~50KB