async hard interrupt working compiled and tested

This commit is contained in:
Priec
2025-10-15 19:46:03 +02:00
parent e6e22818e4
commit 02971bd9e1
3 changed files with 47 additions and 37 deletions

View File

@@ -31,18 +31,18 @@ dependencies = [
[[package]]
name = "bitfield"
version = "0.19.2"
version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "62a3a774b2fcac1b726922b921ebba5e9fe36ad37659c822cf8ff2c1e0819892"
checksum = "6bf79f42d21f18b5926a959280215903e659760da994835d27c3a0c5ff4f898f"
dependencies = [
"bitfield-macros",
]
[[package]]
name = "bitfield-macros"
version = "0.19.2"
version = "0.19.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "52511b09931f7d5fe3a14f23adefbc23e5725b184013e96c8419febb61f14734"
checksum = "6115af052c7914c0cbb97195e5c72cb61c511527250074f5c041d1048b0d8b16"
dependencies = [
"proc-macro2",
"quote",
@@ -63,9 +63,9 @@ checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
[[package]]
name = "bytemuck"
version = "1.23.2"
version = "1.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3995eaeebcdf32f91f980d360f78732ddc061097ab4e39991ae7a6ace9194677"
checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4"
[[package]]
name = "byteorder"
@@ -75,9 +75,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "cfg-if"
version = "1.0.3"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "critical-section"
@@ -477,7 +477,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abd4a8db4b72794637a25944bc8d361c3cc271d4f03987ce8741312b6b61529c"
dependencies = [
"document-features",
"esp-metadata-generated",
"esp-metadata-generated 0.1.0",
"evalexpr",
"serde",
"serde_yaml",
@@ -508,7 +508,7 @@ dependencies = [
"enumset",
"esp-config",
"esp-hal-procmacros",
"esp-metadata-generated",
"esp-metadata-generated 0.1.0",
"esp-riscv-rt",
"esp-rom-sys",
"esp32",
@@ -536,9 +536,9 @@ dependencies = [
[[package]]
name = "esp-hal-embassy"
version = "0.9.0"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d000d94064c485f86adc6b02b541e2f072e03321b4f03d4303b7ff3062c7e692"
checksum = "8be6d5d08adc5d26d8071450c76e62027906dce2795afaed76e9809e596f8e33"
dependencies = [
"cfg-if",
"critical-section",
@@ -551,7 +551,7 @@ dependencies = [
"esp-config",
"esp-hal",
"esp-hal-procmacros",
"esp-metadata-generated",
"esp-metadata-generated 0.1.0",
"log",
"portable-atomic",
"static_cell",
@@ -596,6 +596,12 @@ dependencies = [
"esp-metadata",
]
[[package]]
name = "esp-metadata-generated"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b18b1787dd3adea642fb529dd83fe558a08ace365bbaede4643a8959992900f4"
[[package]]
name = "esp-println"
version = "0.15.0"
@@ -604,7 +610,7 @@ checksum = "3e7e3ab41e96093d7fd307e93bfc88bd646a8ff23036ebf809e116b18869f719"
dependencies = [
"critical-section",
"document-features",
"esp-metadata-generated",
"esp-metadata-generated 0.1.0",
"log",
"portable-atomic",
]
@@ -622,13 +628,13 @@ dependencies = [
[[package]]
name = "esp-rom-sys"
version = "0.1.1"
version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "646aca2b30503b6c6f34250255fbd5887fd0c4104ea90802c1fea34f3035e7d6"
checksum = "01bafc39f59d56610b38ed0f63b16abeb8b357b8f546507d0d6c50c1a494f530"
dependencies = [
"cfg-if",
"document-features",
"esp-metadata-generated",
"esp-metadata-generated 0.2.0",
]
[[package]]
@@ -760,9 +766,9 @@ checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a"
[[package]]
name = "generic-array"
version = "0.14.7"
version = "0.14.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
checksum = "4bb6743198531e02858aeaea5398fcc883e71851fcbcb5a2f773e2fb6cb1edf2"
dependencies = [
"typenum",
"version_check",
@@ -1123,9 +1129,9 @@ dependencies = [
[[package]]
name = "stable_deref_trait"
version = "1.2.0"
version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
[[package]]
name = "static_cell"
@@ -1190,6 +1196,7 @@ dependencies = [
"critical-section",
"dotenvy",
"embassy-executor",
"embassy-sync 0.7.2",
"embassy-time",
"embedded-io",
"embedded-io-async",
@@ -1207,18 +1214,18 @@ dependencies = [
[[package]]
name = "toml_datetime"
version = "0.7.2"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32f1085dec27c2b6632b04c80b3bb1b4300d6495d1e129693bdda7d91e72eec1"
checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533"
dependencies = [
"serde_core",
]
[[package]]
name = "toml_edit"
version = "0.23.6"
version = "0.23.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f3effe7c0e86fdff4f69cdd2ccc1b96f933e24811c5441d44904e8683e27184b"
checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d"
dependencies = [
"indexmap",
"toml_datetime",
@@ -1228,18 +1235,18 @@ dependencies = [
[[package]]
name = "toml_parser"
version = "1.0.3"
version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4cf893c33be71572e0e9aa6dd15e6677937abd686b066eac3f8cd3531688a627"
checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e"
dependencies = [
"winnow",
]
[[package]]
name = "typenum"
version = "1.18.0"
version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
[[package]]
name = "ufmt-write"
@@ -1288,15 +1295,15 @@ dependencies = [
[[package]]
name = "windows-link"
version = "0.2.0"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45e46c0661abb7180e7b9c281db115305d49ca1709ab8242adf09666d2173c65"
checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
[[package]]
name = "windows-sys"
version = "0.61.1"
version = "0.61.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6f109e41dd4a3c848907eb83d5a42ea98b3769495597450cf6d153507b166f0f"
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
dependencies = [
"windows-link",
]

View File

@@ -45,6 +45,7 @@ smoltcp = { version = "0.12.0", default-features = false, features = [
] }
static_cell = "2.1.1"
heapless = "0.9.1"
embassy-sync = "0.7.2"
[build-dependencies]
dotenvy = "0.15.7"

View File

@@ -7,7 +7,8 @@
)]
use embassy_executor::Spawner;
use embassy_sync::signal::Signal;
use embassy_time::{Duration, Timer};
use embassy_sync::blocking_mutex::raw::CriticalSectionRawMutex;
use embassy_time::Duration;
use esp_backtrace as _;
use esp_hal::{
clock::CpuClock,
@@ -27,7 +28,7 @@ use log::info;
// For more information see: <https://docs.espressif.com/projects/esp-idf/en/stable/esp32/api-reference/system/app_image_format.html#application-description>
esp_bootloader_esp_idf::esp_app_desc!();
static SIGNAL: Signal<()> = Signal::new();
static SIGNAL: Signal<CriticalSectionRawMutex, ()> = Signal::new();
static TIMER0: Mutex<RefCell<Option<esp_hal::timer::timg::Timer<'static>>>> = Mutex::new(RefCell::new(None));
#[esp_hal_embassy::main]
@@ -38,6 +39,8 @@ async fn main(spawner: Spawner) {
let peripherals = esp_hal::init(config);
esp_alloc::heap_allocator!(size: 64 * 1024);
let timer_group0 = TimerGroup::new(peripherals.TIMG0);
esp_hal_embassy::init(timer_group0.timer0);
let timer_group1 = TimerGroup::new(peripherals.TIMG1);
let timer0 = timer_group1.timer0;
@@ -62,13 +65,12 @@ async fn main(spawner: Spawner) {
.unwrap();
// Initialize GPIO4 as output (starts LOW)
let mut gpio4 = Output::new(peripherals.GPIO4, Level::Low, OutputConfig::default());
let gpio4 = Output::new(peripherals.GPIO4, Level::Low, OutputConfig::default());
spawner.spawn(led_task(gpio4)).unwrap();
info!("Embassy initialized!");
loop {
embassy_time::Timer::after(Duration::from_secs(5)).await;
info!("x");
}