Please note that only changes to the esp-hal-common package are tracked in these release notes.
Added
- ESP32-C6: LP core clock is configurable (#907)
- Derive
CloneandCopyforEspTwaiFrame(#914) - A way to configure inverted pins (#912)
- Added API to check a GPIO-pin's interrupt status bit (#929)
- A
embedded_io_async::Readimplementation forUsbSerialJtag(#889) RtcClock::get_xtal_freq,RtcClock::get_slow_freq(#957)- Added Rx Timeout functionality to async Uart (#911)
- RISC-V: Thread-mode and interrupt-mode executors,
#[main]macro (#947) - A macro to make it easier to create DMA buffers and descriptors (#935)
- I2C timeout is configurable (#1011)
- ESP32-C6/ESP32-H2:
flip-linkfeature gives zero-cost stack overflow protection (#1008)
Changed
- Improve DMA documentation & clean up module (#915)
- Only allow a single version of
esp-hal-commonto be present in an application (#934) - ESP32-C3/C6 and ESP32-H2 can now use the
zero-rtc-bssfeature to enableesp-hal-common/rv-zero-rtc-bss(#867) - Reuse
ieee802154_clock_enable/disable()functions for BLE and renameble_ieee802154_clock_enable()(#953) - The
embedded-iotrait implementations are now gated behind theembedded-iofeature (#964) - Simplifed RMT channels and channel creators (#958)
- Reworked construction of I2S driver instances (#983)
- ESP32-S2/S3: Don't require GPIO 18 to create a USB peripheral driver instance (#990)
- Updated to latest release candidate (
1.0.0-rc.2) forembedded-hal{-async,-nb}(#994) - Explicit panic when hitting the
DefaultHandler(#1005) - Relevant interrupts are now auto enabled in
embassy::init(#1014).
Fixed
- ESP32-C2/C3 examples: fix build error (#899)
- ESP32-S3: Fix GPIO interrupt handler crashing when using GPIO48. (#898)
- Fixed short wait times in embassy causing hangs (#906)
- Make sure to clear LP/RTC RAM before loading code (#916)
- Async RMT channels can be used concurrently (#925)
- Xtensa: Allow using
embassy-executor's thread-mode executor if neitherembassy-executor-thread, norembassy-executor-interruptis enabled. (#937) - Uart Async: Improve interrupt handling and irq <--> future communication (#977)
- RISC-V: Fix stack allocation (#988)
- ESP32-C6: Fix used RAM (#997)
- ESP32-H2: Fix used RAM (#1003)
- Fix SPI slave DMA dma_read and dma_write (#1013)
Removed
- Direct boot support has been removed (#903).
- Removed the
mcu-bootfeature fromesp32c3-hal(#938) - Removed SpiBusController and SpiBusDevice in favour of embedded-hal-bus and embassy-embedded-hal implementataions. (#978)
Breaking
Spi::new/Spi::new_half_duplextakes no gpio pin now, instead you need to callwith_pinsto setup those (#901).- ESP32-C2, ESP32-C3, ESP32-S2: atomic emulation trap has been removed. (#904) (#985)
- When upgrading you must either remove these lines from your
.cargo/config.toml. - Usage of
core::sync::atomic::*in dependent crates should be replaced with portable-atomic.
- When upgrading you must either remove these lines from your
- RSA driver now takes
u32words instead ofu8bytes. The expected slice length is now 4 times shorter. (#981)