Skip to content

Commit 5365031

Browse files
bugadanijessebraham
authored andcommitted
Support SysTimer as timebase on ESP32-S2
1 parent c6af8ba commit 5365031

File tree

21 files changed

+94
-18
lines changed

21 files changed

+94
-18
lines changed

.github/workflows/ci.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -409,6 +409,11 @@ jobs:
409409
cd esp32s2-hal/
410410
cargo +esp check --example=embassy_hello_world --features=embassy,embassy-time-timg0,embassy-executor-thread
411411
cargo +esp check --example=embassy_multiprio --features=embassy,embassy-time-timg0,embassy-executor-interrupt
412+
- name: check esp32s2-hal (embassy, systick)
413+
run: |
414+
cd esp32s2-hal/
415+
cargo +esp check --example=embassy_hello_world --features=embassy,embassy-time-systick,embassy-executor-thread
416+
cargo +esp check --example=embassy_multiprio --features=embassy,embassy-time-systick,embassy-executor-interrupt
412417
- name: check esp32s2-hal (embassy, timg0, async)
413418
run: |
414419
cd esp32s2-hal/
@@ -420,6 +425,13 @@ jobs:
420425
cargo +esp check --example=embassy_i2s_sound --features=embassy,embassy-time-timg0,async,embassy-executor-thread
421426
cargo +esp check --example=embassy_rmt_rx --features=embassy,embassy-time-timg0,async,embassy-executor-thread --release
422427
cargo +esp check --example=embassy_rmt_tx --features=embassy,embassy-time-timg0,async,embassy-executor-thread
428+
- name: check esp32s2-hal (embassy, systick, async)
429+
run: |
430+
cd esp32s2-hal/
431+
cargo +esp check --example=embassy_wait --features=embassy,embassy-time-systick,async,embassy-executor-thread
432+
cargo +esp check --example=embassy_spi --features=embassy,embassy-time-systick,async,embassy-executor-thread
433+
cargo +esp check --example=embassy_serial --features=embassy,embassy-time-systick,async,embassy-executor-thread
434+
cargo +esp check --example=embassy_i2c --features=embassy,embassy-time-systick,async,embassy-executor-thread
423435
- name: check esp32s2-hal (embassy, log/defmt)
424436
run: |
425437
cd esp32s2-hal/

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111

1212
### Added
1313

14+
- Added `embassy-time-systick` to ESP32-S2 (#827)
1415
- Implement enabling/disabling BLE clock on ESP32-C6 (#784)
1516
- Async support for RMT (#787)
1617
- Implement `defmt::Format` for more types (#786)

esp-hal-common/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ embedded-hal-async = { version = "=1.0.0-rc.1", optional = true }
3838
embedded-io-async = { version = "0.5.0", optional = true }
3939
embassy-executor = { version = "0.3.0", features = ["integrated-timers"], optional = true }
4040
embassy-sync = { version = "0.3.0", optional = true }
41-
embassy-time = { version = "0.1.3", features = ["nightly"], optional = true }
41+
embassy-time = { version = "0.1.4", features = ["nightly"], optional = true }
4242
embassy-futures = { version = "0.1.0", optional = true }
4343

4444
# RISC-V

esp32-hal/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ categories = [
2626

2727
[dependencies]
2828
esp-hal-common = { version = "0.12.0", features = ["esp32"], path = "../esp-hal-common" }
29-
embassy-time = { version = "0.1.3", features = ["nightly"], optional = true }
29+
embassy-time = { version = "0.1.4", features = ["nightly"], optional = true }
3030

3131
[dev-dependencies]
3232
aes = "0.8.3"

esp32c2-hal/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ categories = [
2626

2727
[dependencies]
2828
esp-hal-common = { version = "0.12.0", features = ["esp32c2"], path = "../esp-hal-common" }
29-
embassy-time = { version = "0.1.3", features = ["nightly"], optional = true }
29+
embassy-time = { version = "0.1.4", features = ["nightly"], optional = true }
3030

3131
[dev-dependencies]
3232
critical-section = "1.1.2"

esp32c3-hal/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ categories = [
2727
[dependencies]
2828
cfg-if = "1.0.0"
2929
esp-hal-common = { version = "0.12.0", features = ["esp32c3"], path = "../esp-hal-common" }
30-
embassy-time = { version = "0.1.3", features = ["nightly"], optional = true }
30+
embassy-time = { version = "0.1.4", features = ["nightly"], optional = true }
3131

3232
[dev-dependencies]
3333
aes = "0.8.3"

esp32c6-hal/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ categories = [
2727

2828
[dependencies]
2929
esp-hal-common = { version = "0.12.0", features = ["esp32c6"], path = "../esp-hal-common" }
30-
embassy-time = { version = "0.1.3", features = ["nightly"], optional = true }
30+
embassy-time = { version = "0.1.4", features = ["nightly"], optional = true }
3131

3232
[dev-dependencies]
3333
aes = "0.8.3"

esp32h2-hal/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ categories = [
2727

2828
[dependencies]
2929
esp-hal-common = { version = "0.12.0", features = ["esp32h2"], path = "../esp-hal-common" }
30-
embassy-time = { version = "0.1.3", features = ["nightly"], optional = true }
30+
embassy-time = { version = "0.1.4", features = ["nightly"], optional = true }
3131

3232
[dev-dependencies]
3333
aes = "0.8.3"

esp32s2-hal/Cargo.toml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ categories = [
2626

2727
[dependencies]
2828
esp-hal-common = { version = "0.12.0", features = ["esp32s2"], path = "../esp-hal-common" }
29-
embassy-time = { version = "0.1.3", features = ["nightly"], optional = true }
29+
embassy-time = { version = "0.1.4", features = ["nightly"], optional = true }
3030
xtensa-atomic-emulation-trap = "0.4.0"
3131

3232
[dev-dependencies]
@@ -66,10 +66,7 @@ vectored = ["esp-hal-common/vectored"]
6666

6767
# Embassy support
6868
embassy = ["esp-hal-common/embassy"]
69-
# FIXME:
70-
# - add 80_000_000 support to embassy time
71-
# - Fix https://github.com/esp-rs/esp-hal/issues/253
72-
# embassy-time-systick = ["esp-hal-common/embassy-time-systick", "embassy-time/tick-hz-1_000_000"]
69+
embassy-time-systick = ["esp-hal-common/embassy-time-systick", "embassy-time/tick-hz-80_000_000"]
7370
embassy-time-timg0 = ["esp-hal-common/embassy-time-timg0", "embassy-time/tick-hz-1_000_000"]
7471
embassy-executor-interrupt = ["esp-hal-common/embassy-executor-interrupt"]
7572
embassy-executor-thread = ["esp-hal-common/embassy-executor-thread"]

esp32s2-hal/examples/embassy_hello_world.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ async fn main(spawner: Spawner) -> ! {
3333
let system = peripherals.SYSTEM.split();
3434
let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
3535

36+
#[cfg(feature = "embassy-time-systick")]
37+
embassy::init(
38+
&clocks,
39+
esp32s2_hal::systimer::SystemTimer::new(peripherals.SYSTIMER),
40+
);
41+
3642
#[cfg(feature = "embassy-time-timg0")]
3743
{
3844
let timer_group0 = esp32s2_hal::timer::TimerGroup::new(peripherals.TIMG0, &clocks);

0 commit comments

Comments
 (0)