Initial testing, have a blinking LED
This commit is contained in:
19
.cargo/config.toml
Normal file
19
.cargo/config.toml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
[build]
|
||||||
|
target = "xtensa-esp32s3-espidf"
|
||||||
|
|
||||||
|
[target.'cfg(target_os = "espidf")']
|
||||||
|
linker = "ldproxy"
|
||||||
|
runner = "espflash flash --monitor"
|
||||||
|
rustflags = [ "--cfg", "espidf_time64"]
|
||||||
|
|
||||||
|
[unstable]
|
||||||
|
build-std = ["std", "panic_abort"]
|
||||||
|
|
||||||
|
[env]
|
||||||
|
MCU = "esp32s3"
|
||||||
|
ESP_IDF_VERSION = "v5.5.3"
|
||||||
|
ESP_IDF_TOOLS_INSTALL_DIR = "workspace"
|
||||||
|
|
||||||
|
# Uncomment this if you have moved the target dir by setting CARGO_TARGET_DIR or similar.
|
||||||
|
# Required for now due to embuild limitations.
|
||||||
|
#CARGO_WORKSPACE_DIR = { value = "", relative = true }
|
||||||
4
.gitignore
vendored
Normal file
4
.gitignore
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
/.vscode
|
||||||
|
/.embuild
|
||||||
|
/target
|
||||||
|
/Cargo.lock
|
||||||
27
Cargo.toml
Normal file
27
Cargo.toml
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
[package]
|
||||||
|
name = "esp32_experiments"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Netwxx <netwxxt@gmail.com>"]
|
||||||
|
edition = "2021"
|
||||||
|
resolver = "2"
|
||||||
|
rust-version = "1.82"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
name = "esp32_experiments"
|
||||||
|
harness = false # do not use the built-in cargo test harness -> resolve rust-analyzer errors
|
||||||
|
|
||||||
|
[profile.release]
|
||||||
|
opt-level = "s"
|
||||||
|
|
||||||
|
[profile.dev]
|
||||||
|
debug = true # Symbols are nice, and they don't increase the size on Flash
|
||||||
|
opt-level = "z"
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
log = "0.4"
|
||||||
|
esp-idf-svc = { version = "0.52.1", features = ["critical-section", "embassy-time-driver", "embassy-sync"] }
|
||||||
|
# Remove `generic-queue-8` if you plan to use `embassy-time` WITH `embassy-executor`
|
||||||
|
embassy-time = { version = "0.5", features = ["generic-queue-8"] }
|
||||||
|
|
||||||
|
[build-dependencies]
|
||||||
|
embuild = "0.33"
|
||||||
2
rust-toolchain.toml
Normal file
2
rust-toolchain.toml
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
[toolchain]
|
||||||
|
channel = "esp"
|
||||||
12
sdkconfig.defaults
Normal file
12
sdkconfig.defaults
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
# Rust often needs a bit of an extra main task stack size compared to C (the default is 3K)
|
||||||
|
# You might have to increase this further if you allocate large stack variables in the main task
|
||||||
|
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192
|
||||||
|
|
||||||
|
# Increase a bit these stack sizes as they are also a bit too small by default
|
||||||
|
CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096
|
||||||
|
CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=4096
|
||||||
|
|
||||||
|
# You might have to increase this further if you spawn your own Rust threads
|
||||||
|
# that allocate large stack variables; or better yet - use
|
||||||
|
# `std::thread::Builder::new().stack_size(XXX)` for spawning
|
||||||
|
CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=4096
|
||||||
20
src/main.rs
Normal file
20
src/main.rs
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
use esp_idf_svc::hal::delay::FreeRtos;
|
||||||
|
use esp_idf_svc::hal::gpio::PinDriver;
|
||||||
|
use esp_idf_svc::hal::peripherals::Peripherals;
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
esp_idf_svc::sys::link_patches();
|
||||||
|
esp_idf_svc::log::EspLogger::initialize_default();
|
||||||
|
log::info!("Hello, world!");
|
||||||
|
|
||||||
|
let peripherals = Peripherals::take().unwrap();
|
||||||
|
let mut led = PinDriver::output(peripherals.pins.gpio17).unwrap();
|
||||||
|
|
||||||
|
loop {
|
||||||
|
led.set_high().unwrap();
|
||||||
|
FreeRtos::delay_ms(500);
|
||||||
|
led.set_low().unwrap();
|
||||||
|
FreeRtos::delay_ms(500);
|
||||||
|
log::info!("Blink");
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user