Retire any usages of esp-idf-sys::c_types in favor of core::ffi
Remove casts from usize to u32 and back now that esp-idf-sys is compiled with --size_t-is-usize enabled
[0.39.3, 0.39.4] - 2022-12-09
Minor doc fixes; Clippy fixes; CriticalSection will panic on FreeRTOS mutex lock/unlock failures.
[0.39.1, 0.39.2] - 2022-11-21
Patch releases to fix compilation errors under no_std.
[0.39] - 2022-11-01
Release 0.39 is a backwards-incompatible release where almost all drivers were touched in one way or another.
Major Changes
The main themes of the 0.39 release are:
Restore drop semantics for all drivers
Simpler driver types (little to no generics)
Unified naming
Public API
Completely revamped GPIO metaphor
Timer driver
Support for the critical-section crate by providing a CriticalSection implementation
Support for the embassy-sync crate by providing two types of raw mutexes
Support for the edge-executor crate
Modem and Mac peripherals
SPI driver rework
Major changes elaboration
Restore drop semantics for all drivers
The release() method is now retired everywhere
Just dropping a driver will make it stop functioning
If peripherals need to be reused after the driver is dropped, this is achieved by passing the peripherals to the driver constructor via &mut references, e.g. I2cMasterDriver::new(&mut peripherals.i2c1, &mut peripherals.pins.gpio10, &mut peripherals.pins.gpio11, &mut peripherals.pins.gpio12)
Simpler driver types
All peripheral generics are removed from all drivers' types; e.g., the I2C master driver now has the following type signature: I2cMasterDriver<'d>
The lifetime - 'd from above designates the lifetime of the peripheral (e.g. I2c) that is used by the driver
In the most common case where the peripheral is just moved into the driver (and no longer accessible when the driver is dropped), 'd = 'static, or in other words, the type signature of the driver becomes I2cMasterDriver<'static> and can even be type aliased by the user as in pub type SimpleI2cMasterDriver = I2cMasterDriver<'static>;
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Updates the requirements on esp-idf-hal to permit the latest version.
Changelog
Sourced from esp-idf-hal's changelog.
... (truncated)
Commits
b74266d
Update CHANGELOG.md60de58b
Update Cargo.tomlbf13eee
#180 ledcdriver redundand timer config (#188)2270ebe
Fix ULP builda4a7618
Ci for idf 5.0 (#183)7bd6b26
New release7c423d6
New release133f182
New release1cb7ba6
No need for stdd64b1fe
adjust for esp-idf-sys size_t u32->usize (#185)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)