Remove the SystemExt trait and rename SystemParts to SystemControl (#1495)

* Convert `SoftwareInterrupt` to a unit struct

* Remove the `SystemExt` trait and rename `SystemParts` to `SystemControl`

* Update all examples an HIL tests to reflect previous API changes

* Clean up imports in `hil-test` package, address `clippy` lint warnings

* Update `CHANGELOG.md`
This commit is contained in:
Jesse Braham 2024-04-23 13:25:03 +00:00 committed by GitHub
parent 0023473068
commit 086b6059b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
78 changed files with 244 additions and 139 deletions

View File

@ -14,7 +14,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- i2c: i2c1_handler used I2C0 register block by mistake (#1487) - i2c: i2c1_handler used I2C0 register block by mistake (#1487)
- Smart LEDs docs example (#1504) - Removed ESP32 specific code for resolutions > 16 bit in ledc embedded_hal::pwm max_duty_cycle function. (#1441)
- Fixed division by zero in ledc embedded_hal::pwm set_duty_cycle function and converted to set_duty_hw instead of set_duty to eliminate loss of granularity. (#1441)
### Changed ### Changed
@ -23,9 +24,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- `IO`, `ADC`, `DAC`, `RTC*`, `LEDC`, `PWM` and `PCNT` drivers have been converted to camel case format (#1473) - `IO`, `ADC`, `DAC`, `RTC*`, `LEDC`, `PWM` and `PCNT` drivers have been converted to camel case format (#1473)
- RNG is no longer TRNG, the `CryptoRng` implementation has been removed. To track this being re-added see #1499 (#1498) - RNG is no longer TRNG, the `CryptoRng` implementation has been removed. To track this being re-added see #1499 (#1498)
- Make software interrupts shareable (#1500) - Make software interrupts shareable (#1500)
- The `SystemParts` struct has been renamed to `SystemControl`, and now has a constructor which takes the `SYSTEM` peripheral (#1495)
### Removed ### Removed
- Removed the `SystemExt` trait (#1495)
## [0.17.0] - 2024-04-18 ## [0.17.0] - 2024-04-18
### Added ### Added
@ -62,8 +66,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed writes to SPI not flushing before attempting to write, causing corrupted writes (#1381) - Fixed writes to SPI not flushing before attempting to write, causing corrupted writes (#1381)
- fix AdcConfig::adc_calibrate for xtensa targets (#1379) - fix AdcConfig::adc_calibrate for xtensa targets (#1379)
- Fixed a divide by zero panic when setting the LEDC duty cycle to 0 with `SetDutyCycle::set_duty_cycle` (#1403) - Fixed a divide by zero panic when setting the LEDC duty cycle to 0 with `SetDutyCycle::set_duty_cycle` (#1403)
- Fix for issue #1419. Removed ESP32 specific code for resolutions > 16 bit in ledc embedded_hal::pwm max_duty_cycle function.
- Fix for issue #1419. Fixed division by zero in ledc embedded_hal::pwm set_duty_cycle function and converted to set_duty_hw instead of set_duty to eliminate loss of granularity.
- Support 192 and 256-bit keys for AES (#1316) - Support 192 and 256-bit keys for AES (#1316)
- Fixed MCPWM DeadTimeCfg bit values (#1378) - Fixed MCPWM DeadTimeCfg bit values (#1378)
- ESP32 LEDC `set_duty_cycle` used HighSpeedChannel for LowSpeedChannel (#1457) - ESP32 LEDC `set_duty_cycle` used HighSpeedChannel for LowSpeedChannel (#1457)

View File

@ -36,8 +36,6 @@ pub use crate::ledc::{
}, },
timer::{TimerHW as _esp_hal_ledc_timer_TimerHW, TimerIFace as _esp_hal_ledc_timer_TimerIFace}, timer::{TimerHW as _esp_hal_ledc_timer_TimerHW, TimerIFace as _esp_hal_ledc_timer_TimerIFace},
}; };
#[cfg(any(dport, pcr, system))]
pub use crate::system::SystemExt as _esp_hal_system_SystemExt;
#[cfg(any(timg0, timg1))] #[cfg(any(timg0, timg1))]
pub use crate::timer::{ pub use crate::timer::{
Instance as _esp_hal_timer_Instance, Instance as _esp_hal_timer_Instance,

View File

@ -23,7 +23,7 @@
//! ## Example //! ## Example
//! ```no_run //! ```no_run
//! let peripherals = Peripherals::take(); //! let peripherals = Peripherals::take();
//! let system = peripherals.SYSTEM.split(); //! let system = SystemControl::new(peripherals.SYSTEM);
//! let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); //! let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
//! ``` //! ```
@ -99,9 +99,30 @@ pub enum Peripheral {
LcdCam, LcdCam,
} }
/// The `DPORT`/`PCR`/`SYSTEM` peripheral split into its different logical
/// components.
pub struct SystemControl<'d> {
_inner: PeripheralRef<'d, SYSTEM>,
pub clock_control: SystemClockControl,
pub software_interrupt_control: SoftwareInterruptControl,
}
impl<'d> SystemControl<'d> {
/// Construct a new instance of [`SystemControl`].
pub fn new(system: impl crate::peripheral::Peripheral<P = SYSTEM> + 'd) -> Self {
crate::into_ref!(system);
Self {
_inner: system,
clock_control: SystemClockControl::new(),
software_interrupt_control: SoftwareInterruptControl::new(),
}
}
}
/// A software interrupt can be triggered by software. /// A software interrupt can be triggered by software.
#[non_exhaustive] #[non_exhaustive]
pub struct SoftwareInterrupt<const NUM: u8> {} pub struct SoftwareInterrupt<const NUM: u8>;
impl<const NUM: u8> SoftwareInterrupt<NUM> { impl<const NUM: u8> SoftwareInterrupt<NUM> {
/// Sets the interrupt handler for this software-interrupt /// Sets the interrupt handler for this software-interrupt
@ -192,7 +213,7 @@ impl<const NUM: u8> SoftwareInterrupt<NUM> {
/// time. /// time.
#[inline] #[inline]
pub unsafe fn steal() -> Self { pub unsafe fn steal() -> Self {
Self {} Self
} }
} }
@ -221,17 +242,17 @@ pub struct SoftwareInterruptControl {
} }
impl SoftwareInterruptControl { impl SoftwareInterruptControl {
fn new_internal() -> Self { fn new() -> Self {
// the thread-executor uses SW-INT0 when used on a multi-core system // the thread-executor uses SW-INT0 when used on a multi-core system
// we cannot easily require `software_interrupt0` there since it's created // we cannot easily require `software_interrupt0` there since it's created
// before `main` via proc-macro // before `main` via proc-macro
SoftwareInterruptControl { SoftwareInterruptControl {
#[cfg(not(all(feature = "embassy-executor-thread", multi_core)))] #[cfg(not(all(feature = "embassy-executor-thread", multi_core)))]
software_interrupt0: SoftwareInterrupt {}, software_interrupt0: SoftwareInterrupt,
software_interrupt1: SoftwareInterrupt {}, software_interrupt1: SoftwareInterrupt,
software_interrupt2: SoftwareInterrupt {}, software_interrupt2: SoftwareInterrupt,
software_interrupt3: SoftwareInterrupt {}, software_interrupt3: SoftwareInterrupt,
} }
} }
} }
@ -1077,6 +1098,29 @@ pub struct SystemClockControl {
_private: (), _private: (),
} }
impl SystemClockControl {
pub fn new() -> Self {
Self { _private: () }
}
}
impl Default for SystemClockControl {
fn default() -> Self {
Self::new()
}
}
impl crate::peripheral::Peripheral for SystemClockControl {
type P = SystemClockControl;
#[inline]
unsafe fn clone_unchecked(&mut self) -> Self::P {
SystemClockControl { _private: () }
}
}
impl crate::private::Sealed for SystemClockControl {}
/// Enumeration of the available radio peripherals for this chip. /// Enumeration of the available radio peripherals for this chip.
#[cfg(any(bt, ieee802154, wifi))] #[cfg(any(bt, ieee802154, wifi))]
pub enum RadioPeripherals { pub enum RadioPeripherals {
@ -1110,42 +1154,3 @@ pub trait RadioClockController {
fn reset_rpa(&mut self); fn reset_rpa(&mut self);
} }
/// The SYSTEM/DPORT splitted into it's different logical parts.
pub struct SystemParts<'d> {
_private: PeripheralRef<'d, SYSTEM>,
pub clock_control: SystemClockControl,
pub software_interrupt_control: SoftwareInterruptControl,
}
/// Extension trait to split a SYSTEM/DPORT peripheral in independent logical
/// parts
pub trait SystemExt<'d> {
type Parts;
/// Splits the SYSTEM/DPORT peripheral into it's parts.
fn split(self) -> Self::Parts;
}
impl<'d, T: crate::peripheral::Peripheral<P = SYSTEM> + 'd> SystemExt<'d> for T {
type Parts = SystemParts<'d>;
fn split(self) -> Self::Parts {
Self::Parts {
_private: self.into_ref(),
clock_control: SystemClockControl { _private: () },
software_interrupt_control: SoftwareInterruptControl::new_internal(),
}
}
}
impl crate::peripheral::Peripheral for SystemClockControl {
type P = SystemClockControl;
#[inline]
unsafe fn clone_unchecked(&mut self) -> Self::P {
SystemClockControl { _private: () }
}
}
impl crate::private::Sealed for SystemClockControl {}

View File

@ -17,13 +17,14 @@ use esp_hal::{
gpio::Io, gpio::Io,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -15,13 +15,14 @@ use esp_hal::{
gpio::Io, gpio::Io,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -19,6 +19,7 @@ use esp_hal::{
gpio::Io, gpio::Io,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
uart::{config::Config, TxRxPins, Uart}, uart::{config::Config, TxRxPins, Uart},
}; };
use esp_println::println; use esp_println::println;
@ -27,7 +28,7 @@ use nb::block;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -8,12 +8,19 @@
#![no_main] #![no_main]
use esp_backtrace as _; use esp_backtrace as _;
use esp_hal::{clock::ClockControl, delay::Delay, gpio::Io, peripherals::Peripherals, prelude::*}; use esp_hal::{
clock::ClockControl,
delay::Delay,
gpio::Io,
peripherals::Peripherals,
prelude::*,
system::SystemControl,
};
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
// Set GPIO0 as an output, and set its state high initially. // Set GPIO0 as an output, and set its state high initially.

View File

@ -17,12 +17,13 @@ use esp_hal::{
gpio::{AnyPin, Input, Io, Output, PullDown, PushPull}, gpio::{AnyPin, Input, Io, Output, PullDown, PushPull},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -11,7 +11,13 @@ use core::cell::RefCell;
use critical_section::Mutex; use critical_section::Mutex;
use esp_backtrace as _; use esp_backtrace as _;
use esp_hal::{clock::ClockControl, peripherals::Peripherals, prelude::*, rtc_cntl::Rtc}; use esp_hal::{
clock::ClockControl,
peripherals::Peripherals,
prelude::*,
rtc_cntl::Rtc,
system::SystemControl,
};
use esp_println::println; use esp_println::println;
static RTC: Mutex<RefCell<Option<Rtc>>> = Mutex::new(RefCell::new(None)); static RTC: Mutex<RefCell<Option<Rtc>>> = Mutex::new(RefCell::new(None));
@ -19,7 +25,7 @@ static RTC: Mutex<RefCell<Option<Rtc>>> = Mutex::new(RefCell::new(None));
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut rtc = Rtc::new(peripherals.LPWR, Some(interrupt_handler)); let mut rtc = Rtc::new(peripherals.LPWR, Some(interrupt_handler));

View File

@ -14,13 +14,14 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rom::{crc, md5}, rom::{crc, md5},
system::SystemControl,
uart::Uart, uart::Uart,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -19,12 +19,13 @@ use esp_hal::{
gpio::Io, gpio::Io,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -16,6 +16,7 @@ use esp_hal::{
clock::ClockControl, clock::ClockControl,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
@ -24,7 +25,7 @@ static DA: Mutex<RefCell<Option<DebugAssist>>> = Mutex::new(RefCell::new(None));
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let _clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let _clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut da = DebugAssist::new(peripherals.ASSIST_DEBUG, Some(interrupt_handler)); let mut da = DebugAssist::new(peripherals.ASSIST_DEBUG, Some(interrupt_handler));

View File

@ -11,7 +11,7 @@ use esp_hal::{
interrupt::{self, CpuInterrupt, Priority}, interrupt::{self, CpuInterrupt, Priority},
peripherals::{Interrupt, Peripherals}, peripherals::{Interrupt, Peripherals},
prelude::*, prelude::*,
system::SoftwareInterrupt, system::{SoftwareInterrupt, SystemControl},
}; };
static SWINT0: Mutex<RefCell<Option<SoftwareInterrupt<0>>>> = Mutex::new(RefCell::new(None)); static SWINT0: Mutex<RefCell<Option<SoftwareInterrupt<0>>>> = Mutex::new(RefCell::new(None));
@ -28,7 +28,7 @@ fn main() -> ! {
} }
let sw0_trigger_addr = cpu_intr.cpu_intr_from_cpu_0() as *const _ as u32; let sw0_trigger_addr = cpu_intr.cpu_intr_from_cpu_0() as *const _ as u32;
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let sw_int = system.software_interrupt_control; let sw_int = system.software_interrupt_control;
critical_section::with(|cs| { critical_section::with(|cs| {

View File

@ -18,6 +18,7 @@ use esp_hal::{
embassy::{self}, embassy::{self},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
@ -33,7 +34,7 @@ async fn run() {
async fn main(spawner: Spawner) { async fn main(spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -20,6 +20,7 @@ use esp_hal::{
embassy, embassy,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
systimer::SystemTimer, systimer::SystemTimer,
}; };
@ -35,7 +36,7 @@ async fn run() {
async fn main(spawner: Spawner) { async fn main(spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let systimer = SystemTimer::new_async(peripherals.SYSTIMER); let systimer = SystemTimer::new_async(peripherals.SYSTIMER);

View File

@ -27,6 +27,7 @@ use esp_hal::{
i2c::I2C, i2c::I2C,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use lis3dh_async::{Lis3dh, Range, SlaveAddr}; use lis3dh_async::{Lis3dh, Range, SlaveAddr};
@ -34,7 +35,7 @@ use lis3dh_async::{Lis3dh, Range, SlaveAddr};
#[main] #[main]
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -29,6 +29,7 @@ use esp_hal::{
i2s::{asynch::*, DataFormat, I2s, Standard}, i2s::{asynch::*, DataFormat, I2s, Standard},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -37,7 +38,7 @@ use esp_println::println;
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
println!("Init!"); println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -44,6 +44,7 @@ use esp_hal::{
i2s::{asynch::*, DataFormat, I2s, Standard}, i2s::{asynch::*, DataFormat, I2s, Standard},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -60,7 +61,7 @@ const SINE: [i16; 64] = [
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
println!("Init!"); println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -24,6 +24,7 @@ use esp_hal::{
gpio::{GpioPin, Io, Output, PushPull}, gpio::{GpioPin, Io, Output, PushPull},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -53,7 +54,7 @@ async fn control_led(
#[main] #[main]
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -24,6 +24,7 @@ use esp_hal::{
interrupt::Priority, interrupt::Priority,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -72,7 +73,7 @@ async fn enable_disable_led(control: &'static Signal<CriticalSectionRawMutex, bo
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -31,6 +31,7 @@ use esp_hal::{
interrupt::Priority, interrupt::Priority,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -76,7 +77,7 @@ async fn main(low_prio_spawner: Spawner) {
esp_println::logger::init_logger_from_env(); esp_println::logger::init_logger_from_env();
println!("Init!"); println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -22,6 +22,7 @@ use esp_hal::{
parl_io::{BitPackOrder, NoClkPin, ParlIoRxOnly, RxFourBits}, parl_io::{BitPackOrder, NoClkPin, ParlIoRxOnly, RxFourBits},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -30,7 +31,7 @@ use esp_println::println;
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -33,6 +33,7 @@ use esp_hal::{
}, },
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -41,7 +42,7 @@ use esp_println::println;
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -18,6 +18,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rmt::{asynch::RxChannelAsync, PulseCode, Rmt, RxChannelConfig, RxChannelCreatorAsync}, rmt::{asynch::RxChannelAsync, PulseCode, Rmt, RxChannelConfig, RxChannelCreatorAsync},
system::SystemControl,
}; };
use esp_println::{print, println}; use esp_println::{print, println};
@ -41,7 +42,7 @@ async fn signal_task(mut pin: Gpio5<Output<PushPull>>) {
async fn main(spawner: Spawner) { async fn main(spawner: Spawner) {
println!("Init!"); println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timer_group0 = esp_hal::timer::TimerGroup::new_async(peripherals.TIMG0, &clocks); let timer_group0 = esp_hal::timer::TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -19,6 +19,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rmt::{asynch::TxChannelAsync, PulseCode, Rmt, TxChannelConfig, TxChannelCreatorAsync}, rmt::{asynch::TxChannelAsync, PulseCode, Rmt, TxChannelConfig, TxChannelCreatorAsync},
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -27,7 +28,7 @@ use esp_println::println;
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
println!("Init!"); println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -18,6 +18,7 @@ use esp_hal::{
embassy, embassy,
peripherals::{Peripherals, UART0}, peripherals::{Peripherals, UART0},
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
uart::{config::AtCmdConfig, Uart, UartRx, UartTx}, uart::{config::AtCmdConfig, Uart, UartRx, UartTx},
Async, Async,
@ -77,7 +78,7 @@ async fn reader(
async fn main(spawner: Spawner) { async fn main(spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -36,6 +36,7 @@ use esp_hal::{
master::{prelude::*, Spi}, master::{prelude::*, Spi},
SpiMode, SpiMode,
}, },
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
@ -43,7 +44,7 @@ use esp_hal::{
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -17,6 +17,7 @@ use esp_hal::{
embassy, embassy,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
systimer::SystemTimer, systimer::SystemTimer,
timer::TimerGroup, timer::TimerGroup,
}; };
@ -25,7 +26,7 @@ use esp_hal::{
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -28,6 +28,7 @@ use esp_hal::{
interrupt, interrupt,
peripherals::{self, Peripherals, TWAI0}, peripherals::{self, Peripherals, TWAI0},
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
twai::{self, EspTwaiFrame, TwaiRx, TwaiTx}, twai::{self, EspTwaiFrame, TwaiRx, TwaiTx},
}; };
@ -83,7 +84,7 @@ async fn transmitter(
#[main] #[main]
async fn main(spawner: Spawner) { async fn main(spawner: Spawner) {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -17,6 +17,7 @@ use esp_hal::{
embassy, embassy,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
usb_serial_jtag::{UsbSerialJtag, UsbSerialJtagRx, UsbSerialJtagTx}, usb_serial_jtag::{UsbSerialJtag, UsbSerialJtagRx, UsbSerialJtagTx},
Async, Async,
@ -68,7 +69,7 @@ async fn reader(
async fn main(spawner: Spawner) -> () { async fn main(spawner: Spawner) -> () {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
embassy::init(&clocks, TimerGroup::new_async(peripherals.TIMG0, &clocks)); embassy::init(&clocks, TimerGroup::new_async(peripherals.TIMG0, &clocks));

View File

@ -18,6 +18,7 @@ use esp_hal::{
gpio::Io, gpio::Io,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
@ -25,7 +26,7 @@ use esp_hal::{
async fn main(_spawner: Spawner) { async fn main(_spawner: Spawner) {
esp_println::println!("Init!"); esp_println::println!("Init!");
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks); let timg0 = TimerGroup::new_async(peripherals.TIMG0, &clocks);

View File

@ -16,6 +16,7 @@ use esp_hal::{
etm::Etm, etm::Etm,
peripherals::{Peripherals, TIMG0}, peripherals::{Peripherals, TIMG0},
prelude::*, prelude::*,
system::SystemControl,
timer::{ timer::{
etm::{TimerEtmEvents, TimerEtmTasks}, etm::{TimerEtmEvents, TimerEtmTasks},
Timer, Timer,
@ -31,7 +32,7 @@ static TIMER0: Mutex<RefCell<Option<Timer<Timer0<TIMG0>, esp_hal::Blocking>>>> =
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new( let timg0 = TimerGroup::new(

View File

@ -19,6 +19,7 @@ use esp_hal::{
macros::ram, macros::ram,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
#[cfg(any(feature = "esp32", feature = "esp32s2", feature = "esp32s3"))] #[cfg(any(feature = "esp32", feature = "esp32s2", feature = "esp32s3"))]
@ -31,7 +32,7 @@ static BUTTON: Mutex<RefCell<Option<gpio::Gpio9<Input<PullDown>>>>> =
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
// Set GPIO2 as an output, and set its state high initially. // Set GPIO2 as an output, and set its state high initially.

View File

@ -21,6 +21,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rmt::Rmt, rmt::Rmt,
system::SystemControl,
}; };
use esp_hal_smartled::{smartLedBuffer, SmartLedsAdapter}; use esp_hal_smartled::{smartLedBuffer, SmartLedsAdapter};
use smart_leds::{ use smart_leds::{
@ -33,7 +34,7 @@ use smart_leds::{
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -20,13 +20,14 @@ use esp_hal::{
delay::Delay, delay::Delay,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
uart::Uart, uart::Uart,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -64,6 +64,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rng::Rng, rng::Rng,
system::SystemControl,
systimer::SystemTimer, systimer::SystemTimer,
}; };
use esp_println::println; use esp_println::println;
@ -76,7 +77,7 @@ type HmacSha256 = HmacSw<Sha256>;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let _clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let _clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut rng = Rng::new(peripherals.RNG); let mut rng = Rng::new(peripherals.RNG);

View File

@ -12,13 +12,20 @@
#![no_main] #![no_main]
use esp_backtrace as _; use esp_backtrace as _;
use esp_hal::{clock::ClockControl, gpio::Io, i2c::I2C, peripherals::Peripherals, prelude::*}; use esp_hal::{
clock::ClockControl,
gpio::Io,
i2c::I2C,
peripherals::Peripherals,
prelude::*,
system::SystemControl,
};
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -30,13 +30,14 @@ use esp_hal::{
i2c::I2C, i2c::I2C,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use ssd1306::{prelude::*, I2CDisplayInterface, Ssd1306}; use ssd1306::{prelude::*, I2CDisplayInterface, Ssd1306};
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -25,13 +25,14 @@ use esp_hal::{
i2s::{DataFormat, I2s, I2sReadDma, Standard}, i2s::{DataFormat, I2s, I2sReadDma, Standard},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -40,6 +40,7 @@ use esp_hal::{
i2s::{DataFormat, I2s, I2sWriteDma, Standard}, i2s::{DataFormat, I2s, I2sWriteDma, Standard},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
const SINE: [i16; 64] = [ const SINE: [i16; 64] = [
@ -53,7 +54,7 @@ const SINE: [i16; 64] = [
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -13,7 +13,11 @@ use core::cell::RefCell;
use critical_section::Mutex; use critical_section::Mutex;
use esp_backtrace as _; use esp_backtrace as _;
use esp_hal::{peripherals::Peripherals, prelude::*, system::SoftwareInterrupt}; use esp_hal::{
peripherals::Peripherals,
prelude::*,
system::{SoftwareInterrupt, SystemControl},
};
static SWINT0: Mutex<RefCell<Option<SoftwareInterrupt<0>>>> = Mutex::new(RefCell::new(None)); static SWINT0: Mutex<RefCell<Option<SoftwareInterrupt<0>>>> = Mutex::new(RefCell::new(None));
static SWINT1: Mutex<RefCell<Option<SoftwareInterrupt<1>>>> = Mutex::new(RefCell::new(None)); static SWINT1: Mutex<RefCell<Option<SoftwareInterrupt<1>>>> = Mutex::new(RefCell::new(None));
@ -23,7 +27,7 @@ static SWINT3: Mutex<RefCell<Option<SoftwareInterrupt<3>>>> = Mutex::new(RefCell
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let mut sw_int = system.software_interrupt_control; let mut sw_int = system.software_interrupt_control;
critical_section::with(|cs| { critical_section::with(|cs| {

View File

@ -35,13 +35,14 @@ use esp_hal::{
}, },
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -21,12 +21,13 @@ use esp_hal::{
}, },
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -17,6 +17,7 @@ use esp_hal::{
lp_core::{LpCore, LpCoreWakeupSource}, lp_core::{LpCore, LpCoreWakeupSource},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
uart::{config::Config, lp_uart::LpUart, TxRxPins, Uart}, uart::{config::Config, lp_uart::LpUart, TxRxPins, Uart},
}; };
use esp_println::println; use esp_println::println;
@ -24,7 +25,7 @@ use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -15,12 +15,13 @@ use esp_hal::{
mcpwm::{operator::PwmPinConfig, timer::PwmWorkingMode, McPwm, PeripheralClockConfig}, mcpwm::{operator::PwmPinConfig, timer::PwmWorkingMode, McPwm, PeripheralClockConfig},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -18,6 +18,7 @@ use esp_hal::{
delay::Delay, delay::Delay,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
@ -26,7 +27,7 @@ static mut APP_CORE_STACK: Stack<8192> = Stack::new();
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -18,13 +18,14 @@ use esp_hal::{
parl_io::{BitPackOrder, NoClkPin, ParlIoRxOnly, RxFourBits}, parl_io::{BitPackOrder, NoClkPin, ParlIoRxOnly, RxFourBits},
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -29,13 +29,14 @@ use esp_hal::{
}, },
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -13,7 +13,13 @@ extern crate alloc;
use alloc::{string::String, vec::Vec}; use alloc::{string::String, vec::Vec};
use esp_backtrace as _; use esp_backtrace as _;
use esp_hal::{clock::ClockControl, peripherals::Peripherals, prelude::*, psram}; use esp_hal::{
clock::ClockControl,
peripherals::Peripherals,
prelude::*,
psram,
system::SystemControl,
};
use esp_println::println; use esp_println::println;
#[global_allocator] #[global_allocator]
@ -35,7 +41,7 @@ fn main() -> ! {
psram::init_psram(peripherals.PSRAM); psram::init_psram(peripherals.PSRAM);
init_psram_heap(); init_psram_heap();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let _clocks = ClockControl::max(system.clock_control).freeze(); let _clocks = ClockControl::max(system.clock_control).freeze();
println!("Going to access PSRAM"); println!("Going to access PSRAM");

View File

@ -41,13 +41,14 @@ use esp_hal::{
SpiDataMode, SpiDataMode,
SpiMode, SpiMode,
}, },
system::SystemControl,
}; };
use esp_println::{print, println}; use esp_println::{print, println};
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -24,6 +24,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rtc_cntl::Rtc, rtc_cntl::Rtc,
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
@ -39,7 +40,7 @@ static mut SOME_ZEROED_DATA: [u8; 8] = [0; 8];
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -14,6 +14,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rmt::{PulseCode, Rmt, RxChannel, RxChannelConfig, RxChannelCreator}, rmt::{PulseCode, Rmt, RxChannel, RxChannelConfig, RxChannelCreator},
system::SystemControl,
}; };
use esp_println::{print, println}; use esp_println::{print, println};
@ -22,7 +23,7 @@ const WIDTH: usize = 80;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -15,12 +15,13 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rmt::{PulseCode, Rmt, TxChannel, TxChannelConfig, TxChannelCreator}, rmt::{PulseCode, Rmt, TxChannel, TxChannelConfig, TxChannelCreator},
system::SystemControl,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -12,12 +12,13 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rtc_cntl::Rtc, rtc_cntl::Rtc,
system::SystemControl,
}; };
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let rtc = Rtc::new(peripherals.LPWR, None); let rtc = Rtc::new(peripherals.LPWR, None);

View File

@ -17,6 +17,7 @@ use esp_hal::{
gpio, gpio,
peripherals::{Peripherals, UART0}, peripherals::{Peripherals, UART0},
prelude::*, prelude::*,
system::SystemControl,
uart::{ uart::{
config::{AtCmdConfig, Config}, config::{AtCmdConfig, Config},
TxRxPins, TxRxPins,
@ -30,7 +31,7 @@ static SERIAL: Mutex<RefCell<Option<Uart<UART0, Blocking>>>> = Mutex::new(RefCel
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -15,6 +15,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
rtc_cntl::{get_reset_reason, get_wakeup_cause, sleep::TimerWakeupSource, Rtc, SocResetReason}, rtc_cntl::{get_reset_reason, get_wakeup_cause, sleep::TimerWakeupSource, Rtc, SocResetReason},
system::SystemControl,
Cpu, Cpu,
}; };
use esp_println::println; use esp_println::println;
@ -22,7 +23,7 @@ use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut delay = Delay::new(&clocks); let mut delay = Delay::new(&clocks);

View File

@ -22,6 +22,7 @@ use esp_hal::{
Rtc, Rtc,
SocResetReason, SocResetReason,
}, },
system::SystemControl,
Cpu, Cpu,
}; };
use esp_println::println; use esp_println::println;
@ -29,7 +30,7 @@ use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut rtc = Rtc::new(peripherals.LPWR, None); let mut rtc = Rtc::new(peripherals.LPWR, None);

View File

@ -22,6 +22,7 @@ use esp_hal::{
Rtc, Rtc,
SocResetReason, SocResetReason,
}, },
system::SystemControl,
Cpu, Cpu,
}; };
use esp_println::println; use esp_println::println;
@ -29,7 +30,7 @@ use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut rtc = Rtc::new(peripherals.LPWR, None); let mut rtc = Rtc::new(peripherals.LPWR, None);

View File

@ -22,6 +22,7 @@ use esp_hal::{
Rtc, Rtc,
SocResetReason, SocResetReason,
}, },
system::SystemControl,
Cpu, Cpu,
}; };
use esp_println::println; use esp_println::println;
@ -29,7 +30,7 @@ use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut rtc = Rtc::new(peripherals.LPWR, None); let mut rtc = Rtc::new(peripherals.LPWR, None);

View File

@ -24,6 +24,7 @@ use esp_hal::{
Rtc, Rtc,
SocResetReason, SocResetReason,
}, },
system::SystemControl,
Cpu, Cpu,
}; };
use esp_println::println; use esp_println::println;
@ -31,7 +32,7 @@ use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let mut io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -18,7 +18,7 @@ use esp_hal::{
delay::Delay, delay::Delay,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SoftwareInterrupt, system::{SoftwareInterrupt, SystemControl},
}; };
static SWINT0: Mutex<RefCell<Option<SoftwareInterrupt<0>>>> = Mutex::new(RefCell::new(None)); static SWINT0: Mutex<RefCell<Option<SoftwareInterrupt<0>>>> = Mutex::new(RefCell::new(None));
@ -29,7 +29,7 @@ static SWINT3: Mutex<RefCell<Option<SoftwareInterrupt<3>>>> = Mutex::new(RefCell
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut sw_int = system.software_interrupt_control; let mut sw_int = system.software_interrupt_control;

View File

@ -41,13 +41,14 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
spi::{master::Spi, SpiMode}, spi::{master::Spi, SpiMode},
system::SystemControl,
}; };
use esp_println::{print, println}; use esp_println::{print, println};
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -28,13 +28,14 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
spi::{master::Spi, SpiMode}, spi::{master::Spi, SpiMode},
system::SystemControl,
}; };
use esp_println::{print, println}; use esp_println::{print, println};
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -39,13 +39,14 @@ use esp_hal::{
SpiDataMode, SpiDataMode,
SpiMode, SpiMode,
}, },
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -26,13 +26,14 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
spi::{master::Spi, SpiMode}, spi::{master::Spi, SpiMode},
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -31,13 +31,14 @@ use esp_hal::{
master::{prelude::*, Spi}, master::{prelude::*, Spi},
SpiMode, SpiMode,
}, },
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -41,13 +41,14 @@ use esp_hal::{
slave::{prelude::*, Spi}, slave::{prelude::*, Spi},
SpiMode, SpiMode,
}, },
system::SystemControl,
}; };
use esp_println::println; use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -17,6 +17,7 @@ use esp_hal::{
interrupt::{self, Priority}, interrupt::{self, Priority},
peripherals::{Interrupt, Peripherals}, peripherals::{Interrupt, Peripherals},
prelude::*, prelude::*,
system::SystemControl,
systimer::{Alarm, Periodic, SystemTimer, Target}, systimer::{Alarm, Periodic, SystemTimer, Target},
Blocking, Blocking,
}; };
@ -31,7 +32,7 @@ static ALARM2: Mutex<RefCell<Option<Alarm<Target, Blocking, 2>>>> = Mutex::new(R
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let systimer = SystemTimer::new(peripherals.SYSTIMER); let systimer = SystemTimer::new(peripherals.SYSTIMER);

View File

@ -16,6 +16,7 @@ use esp_hal::{
interrupt::{self, Priority}, interrupt::{self, Priority},
peripherals::{Interrupt, Peripherals, TIMG0}, peripherals::{Interrupt, Peripherals, TIMG0},
prelude::*, prelude::*,
system::SystemControl,
timer::{Timer, Timer0, TimerGroup, TimerInterrupts}, timer::{Timer, Timer0, TimerGroup, TimerInterrupts},
}; };
@ -25,7 +26,7 @@ static TIMER0: Mutex<RefCell<Option<Timer<Timer0<TIMG0>, esp_hal::Blocking>>>> =
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let timg0 = TimerGroup::new( let timg0 = TimerGroup::new(

View File

@ -24,6 +24,7 @@ use esp_hal::{
gpio::Io, gpio::Io,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
twai::{self, filter::SingleStandardFilter, EspTwaiFrame, StandardId}, twai::{self, filter::SingleStandardFilter, EspTwaiFrame, StandardId},
}; };
use esp_println::println; use esp_println::println;
@ -32,7 +33,7 @@ use nb::block;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -17,6 +17,7 @@ use esp_hal::{
delay::Delay, delay::Delay,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
usb_serial_jtag::UsbSerialJtag, usb_serial_jtag::UsbSerialJtag,
Blocking, Blocking,
}; };
@ -27,7 +28,7 @@ static USB_SERIAL: Mutex<RefCell<Option<UsbSerialJtag<'static, Blocking>>>> =
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -14,6 +14,7 @@ use esp_hal::{
delay::Delay, delay::Delay,
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
system::SystemControl,
timer::TimerGroup, timer::TimerGroup,
}; };
use esp_println::println; use esp_println::println;
@ -21,7 +22,7 @@ use esp_println::println;
#[entry] #[entry]
fn main() -> ! { fn main() -> ! {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let delay = Delay::new(&clocks); let delay = Delay::new(&clocks);

View File

@ -7,7 +7,12 @@
use defmt_rtt as _; use defmt_rtt as _;
use esp_backtrace as _; use esp_backtrace as _;
use esp_hal::{clock::ClockControl, peripherals::Peripherals, prelude::*, rtc_cntl::Rtc}; use esp_hal::{
clock::ClockControl,
peripherals::Peripherals,
rtc_cntl::Rtc,
system::SystemControl,
};
struct Context<'a> { struct Context<'a> {
rtc: Rtc<'a>, rtc: Rtc<'a>,
@ -16,7 +21,7 @@ struct Context<'a> {
impl Context<'_> { impl Context<'_> {
pub fn init() -> Self { pub fn init() -> Self {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
ClockControl::boot_defaults(system.clock_control).freeze(); ClockControl::boot_defaults(system.clock_control).freeze();
let rtc = Rtc::new(peripherals.LPWR, None); let rtc = Rtc::new(peripherals.LPWR, None);

View File

@ -19,8 +19,8 @@ use esp_hal::{
gpio::{GpioPin, Input, Io, Output, OutputPin, PullDown, PushPull, Unknown}, gpio::{GpioPin, Input, Io, Output, OutputPin, PullDown, PushPull, Unknown},
macros::handler, macros::handler,
peripherals::Peripherals, peripherals::Peripherals,
system::SystemExt,
timer::TimerGroup, timer::TimerGroup,
system::SystemControl,
}; };
static COUNTER: Mutex<RefCell<u32>> = Mutex::new(RefCell::new(0)); static COUNTER: Mutex<RefCell<u32>> = Mutex::new(RefCell::new(0));
@ -36,7 +36,7 @@ struct Context {
impl Context { impl Context {
pub fn init() -> Self { pub fn init() -> Self {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let mut io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let mut io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -20,6 +20,7 @@ use esp_hal::{
peripherals::Peripherals, peripherals::Peripherals,
prelude::*, prelude::*,
spi::{master::Spi, FullDuplexMode, SpiMode}, spi::{master::Spi, FullDuplexMode, SpiMode},
system::SystemControl,
}; };
struct Context { struct Context {
@ -29,7 +30,7 @@ struct Context {
impl Context { impl Context {
pub fn init() -> Self { pub fn init() -> Self {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -26,6 +26,7 @@ use esp_hal::{
master::{prelude::*, Spi}, master::{prelude::*, Spi},
SpiMode, SpiMode,
}, },
system::SystemControl,
}; };
#[cfg(test)] #[cfg(test)]
@ -41,7 +42,7 @@ mod tests {
const DMA_BUFFER_SIZE: usize = 4; const DMA_BUFFER_SIZE: usize = 4;
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);
@ -84,7 +85,7 @@ mod tests {
#[timeout(3)] #[timeout(3)]
fn test_asymmetric_dma_transfer() { fn test_asymmetric_dma_transfer() {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);
@ -128,7 +129,7 @@ mod tests {
const DMA_BUFFER_SIZE: usize = 4096; const DMA_BUFFER_SIZE: usize = 4096;
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);

View File

@ -17,6 +17,7 @@ use esp_hal::{
gpio::Io, gpio::Io,
peripherals::{Peripherals, UART0}, peripherals::{Peripherals, UART0},
prelude::*, prelude::*,
system::SystemControl,
uart::{config::Config, TxRxPins, Uart}, uart::{config::Config, TxRxPins, Uart},
Blocking, Blocking,
}; };
@ -29,7 +30,7 @@ struct Context {
impl Context { impl Context {
pub fn init() -> Self { pub fn init() -> Self {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);
let pins = TxRxPins::new_tx_rx( let pins = TxRxPins::new_tx_rx(

View File

@ -15,9 +15,9 @@ use esp_hal::{
clock::ClockControl, clock::ClockControl,
gpio::Io, gpio::Io,
peripherals::{Peripherals, UART0}, peripherals::{Peripherals, UART0},
prelude::*,
uart::{config::Config, TxRxPins, Uart, UartRx, UartTx}, uart::{config::Config, TxRxPins, Uart, UartRx, UartTx},
Async, Async,
system::SystemControl,
}; };
struct Context { struct Context {
@ -28,7 +28,7 @@ struct Context {
impl Context { impl Context {
pub fn init() -> Self { pub fn init() -> Self {
let peripherals = Peripherals::take(); let peripherals = Peripherals::take();
let system = peripherals.SYSTEM.split(); let system = SystemControl::new(peripherals.SYSTEM);
let clocks = ClockControl::boot_defaults(system.clock_control).freeze(); let clocks = ClockControl::boot_defaults(system.clock_control).freeze();
let io = Io::new(peripherals.GPIO, peripherals.IO_MUX); let io = Io::new(peripherals.GPIO, peripherals.IO_MUX);
let pins = TxRxPins::new_tx_rx( let pins = TxRxPins::new_tx_rx(