0.14.0
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
Clone
andCopy
forEspTwaiFrame
(#914) - A way to configure inverted pins (#912)
- Added API to check a GPIO-pin's interrupt status bit (#929)
- A
embedded_io_async::Read
implementation 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-link
feature gives zero-cost stack overflow protection (#1008)
Changed
- Improve DMA documentation & clean up module (#915)
- Only allow a single version of
esp-hal-common
to be present in an application (#934) - ESP32-C3/C6 and ESP32-H2 can now use the
zero-rtc-bss
feature 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-io
trait implementations are now gated behind theembedded-io
feature (#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-interrupt
is 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-boot
feature 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_duplex
takes no gpio pin now, instead you need to callwith_pins
to 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
u32
words instead ofu8
bytes. The expected slice length is now 4 times shorter. (#981)