Skip to content

0.14.0

Compare
Choose a tag to compare
@jessebraham jessebraham released this 12 Dec 18:39
· 901 commits to main since this release

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 and Copy for EspTwaiFrame (#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 for UsbSerialJtag (#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 enable esp-hal-common/rv-zero-rtc-bss (#867)
  • Reuse ieee802154_clock_enable/disable() functions for BLE and rename ble_ieee802154_clock_enable() (#953)
  • The embedded-io trait implementations are now gated behind the embedded-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) for embedded-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 neither embassy-executor-thread, nor embassy-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 from esp32c3-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 call with_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.
  • RSA driver now takes u32 words instead of u8 bytes. The expected slice length is now 4 times shorter. (#981)