#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

#1874 in Embedded development

Download history 118/week @ 2024-03-29 78/week @ 2024-04-05 47/week @ 2024-04-12 76/week @ 2024-04-19 112/week @ 2024-04-26 115/week @ 2024-05-03 53/week @ 2024-05-10 52/week @ 2024-05-17 81/week @ 2024-05-24 95/week @ 2024-05-31 51/week @ 2024-06-07 69/week @ 2024-06-14 126/week @ 2024-06-21 63/week @ 2024-06-28 70/week @ 2024-07-05 90/week @ 2024-07-12

366 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