Skip to content

Releases: rp-rs/rp-hal

rp2040-hal v0.10.1

28 Apr 07:51
Compare
Choose a tag to compare

[0.10.1] - 2024-04-28

v0.10.0...v0.10.1

Added

Changed

  • Fix debugging after halt() - #785 @jannic
  • Slightly improve deprecation note on from_program - #792 @jannic
  • Fix float_to_fix64 return value & f32 trig function doc corrections - #787 @Text-Input
  • Simplify ceiling division in delay calculation - #783 @jannic

rp2040-hal v0.10.0

10 Mar 16:33
413420a
Compare
Choose a tag to compare

0.10.0 - 2024-03-10

Added

Changed

  • Update lower VCO frequency limit according to datasheet update - #773 @ithinuel
  • Bump MSRV to 1.75 - #761 @ithinuel
  • Move on-target-tests back to the work space - #762 @ithinuel
  • Set startup_delay_multiplier of XOSC to 64, and make it configurable.
    This should increase compatibility with boards where the oscillator starts up
    more slowly than on the Raspberry Pico. - #746 @jannic
  • Replace asm macros by rust macros - #730 @jannic
  • Update usb-device implementation - #584 @ithinuel
  • Update rp2040-pac to v0.6.0 and apply required changes - #770 @AkiyukiOkayasu
  • Some reorganization of ADC code, making sure that AdcPin can only
    be created for pins that can actually be used as ADC channels - #739 @jannic
  • Breaking change: Clear the input-enable flag of all pins on bank 0 in Pins::new.
    They will automatically be enabled when setting a pin function, so most users
    won't be affected by that change. Notable exception: If you rely on the fact that
    PIO can read all pins as input even if the pin is not configured to the PIO function,
    you may need to set the input-enable flag manually. - #755 @jannic

Fixed

rp2040-hal v0.9.2

25 Jan 22:31
655d5ba
Compare
Choose a tag to compare

0.9.2

Changed

  • Update embedded-hal 1 to version 1.0.0.
    (This is the version of embedded-hal activated by feature
    "eh1_0_alpha". Embedded-hal 0.9 is still supported by default.) - @jannic

rp2040-hal v0.9.1

12 Nov 12:36
7b04000
Compare
Choose a tag to compare

0.9.1

Added

Fixed

Changed

rp2040-hal v0.9.0

01 Sep 12:17
8f3e8d0
Compare
Choose a tag to compare

0.9.0 - 2023-09-01

MSRV

The Minimum-Supported Rust Version (MSRV) for this release is 1.64

Fixed

  • With rust nightly and beta 1.70.0, the multi-core spawn code could get miscompiled
    due to undefined behavior in our code. This was first found in embassy (which
    uses similar code) and reported to us by @Dirbaio. - #612 @ithinuel
  • Fixed embedded-hal 1.0-alpha implementation of SPI - #611 @tomgilligan
  • Fixed the on-target tests - #601 @jannic
  • Fix calculation of MPU RBAR value - #653 @9names @jannic
  • Fix of usb device address mask - #639 @mrdxxm
  • Fix on target tests - #624 @jannic
  • Make sure clocks are initialized before creating a Timer - #618 @jannic
  • Mark ReadTarget and WriteTarget as unsafe - #621 @jannic
  • Fix typo in rom_data.rs - #675 @jlpettersson

Changed

  • multicore: remove the requirement on the closure to never return - #594 @ithinuel
  • Updated dependency on rp2040-boot2 to version 0.3.0. - @jannic
    This doubles the flash access speed to the value used by the C SDK by
    default. So it should usually be safe. However, if you are overclocking
    the RP2040, you might need to lower the flash speed accordingly.
  • Doc: Several improvements have been made to documentation: #607 #597 #661 #633 #632 #629 #679
  • DMA: Check for valid word sizes at compile time - #600 @jannic
  • Use an enum for core identification. - @ithinuel
  • Merge DynPin and Pin into Pin. The type class used in Pin now have a runtime variant allowing for
    the creation of uniform array of pins (eg: [Pin<DynPinId, PinFnSio, PullDown>]). - @ithinuel
  • Fix miss defined ValidPinMode bound allowing any Bank0 pin to be Xip and any Qspi pin to be any
    other function (except for clock). - @ithinuel
  • Use let _ = to ignore result rather than .ok(); as this gives a false sense the result is
    checked. - @ithinuel
  • Reduce code repetition in i2c modules. - @ithinuel
  • Rename DontInvert to Normal. - @ithinuel
  • Prevent the creation of multiple instances of adc::TempSensor - @ithinuel
  • Update dependency on rp2040-pac to 0.5.0 - #662 @jannic
  • Migrate rp2040-hal to edition 2021 - #651 @ithinuel
  • Fix lifetimes and mutability of get_buf and get_buf_mut - #649 @adrianparvino
  • Rename dma::SingleChannel::listen_irq* to enable_irq* - #648 @nilclass
  • Update embedded-hal alpha support to version 1.0.0-alpha.11 - #642 @jannic

Added

  • timer::Timer implements the embedded-hal delay traits and Copy/Clone - #614 @ithinuel @jannic
  • DMA: Allow access to the DMA engine's byteswapping feature - #603 @Gip-Gip
  • Added AdcPin wrapper to disable digital function for ADC operations - @ithinuel
  • Added Sealed supertrait to PIOExt - @ithinuel
  • Added pins to Spi to fix inconsistencies in gpio bounds in peripheral (i2c, uart, spi) - @ithinuel
  • Added sio::Sio::read_bank0() -> u32 to provide single instruction multiple io read.
  • Implement WriteTarget for PWM top and cc registers. - #646 @mBornand
  • Add the ability to initialise the ring oscillator with a known frequency - #640 @hardiesoft
  • Add ADC free-running mode & FIFO - #626 @nilclass
  • Add DMA support for free-running ADC capture - #636 @nilclass
  • Make SPI set_format accept frame format - #653 @NelsonAPenn

rp2040-hal v0.8.2

17 May 22:14
Compare
Choose a tag to compare

0.8.2 - 2023-05-17

Fixed

  • With rust nightly and beta 1.70.0, the multi-core spawn code could get miscompiled
    due to undefined behavior in our code. This was first found in embassy (which
    uses similar code) and reported to us by @Dirbaio. - #612 @ithinuel

rp2040-hal v0.8.1

04 May 22:27
6ae5079
Compare
Choose a tag to compare

0.8.1 - 2023-05-05

Added

  • Re-enabled implementations of traits from embedded-hal-nb 1.0.0-alpha.1 - #569 @jannic
  • PIO: Added set_mov_status_config to PIOBuilder - #566 @Gip-Gip
  • memory.x: Added SRAM4 and SRAM5 blocks - #578 @jannic
  • DMA: Added memory-to-memory example - #579 @jlpettersson

Changed

  • pwm::Slice::has_overflown() returns the raw interrupt flag, without masking/forcing. - #562 @jannic
  • Update embedded-hal alpha support to version 1.0.0-alpha.10 - #582 @jannic
  • Update embedded-hal-nb alpha support to version 1.0.0-alpha.2 - #582 @jannic
  • DMA: Fixed an issue where check_irq0 would check irq1 on channel 1 - #580 @jlpettersson
  • Serial: Fixed possible overflow of the baudrate calculation - #583 @ArchUsr64
  • Doc: Several improvements have been made to documentation: #567 #570 #574 #575 #577 #586
  • CI: A few improvements have been made to CI pipelines: #555 #587 #588

rp2040-hal v0.8.0

16 Feb 21:25
f6a0d1b
Compare
Choose a tag to compare

0.8.0 - 2023-02-16

Added

Changed

rp2040-hal v0.7.0

11 Dec 09:37
4c8e16a
Compare
Choose a tag to compare

0.7.0 - 2022-12-11

MSRV

The Minimum-Supported Rust Version (MSRV) for this release is 1.62

Changed

  • Fixed: First frame is getting lost on a USB-CDC device - @MuratUrsavas
  • Moved BSP crates to separate repo at https://github.com/rp-rs/rp-hal-boards - @jannic
  • Avoid losing USB status events by reading ints rather than sie_status in poll - @ithinuel
  • Allow setting clock divisors on running state machines - @jannic
  • Remove unnecessary mut from static mut LOCK_OWNER: AtomicU8 in critical section impl - @zachs18
  • Update dependency on rp2040-pac to 0.4.0 - @jannic
  • Update embedded-hal alpha support to version 1.0.0-alpha.9 - @jannic
    (Non-blocking traits were moved to embedded-hal-nb, which is not yet supported)
  • Implement UartConfig::new constructor method - @jannic
  • Deprecate uart::common_configs - @jannic
  • Fix spelling error in UART error discarded field - @Sizurka
  • Fix contents of UART error discarded field - @Sizurka
  • Fix watchdog counter load value - @Sizurka
  • Fix concurrent accesses to sm_execctrl and sm_instr when sideset isn't optional - @ithinuel
  • pio: Move interrupt related (en|dis)abling/forcing methods to the statemachine - @ithinuel
  • Mark Timer & Alarm* Send and Sync - @ithinuel
  • The feature critical-section-impl is now enabled by default from the BSP crates - @jannic
  • Simplify signature of Alarm::schedule, removing generic parameter - @ithinuel
  • USB: Use the dedicated write_bitmask_* functions - @ithinuel

Added

  • Add docs.rs metadata - @icedrocket
  • Implement embedded-hal aplha SPI traits - @ptpaterson
  • Add derive(Debug) and derive(defmt::Format) to error types - @9names
  • Add ability to modify installed PIO program wrap bounds - @davidcole1340
  • Add rtic-monotonic support for timer & alarms (feature gated) - @ithinuel
  • Add SPI is_busy function - @papyDoctor
  • Add set_fifos/set_rx_watermark/set_tx_watermark - @papyDoctor
  • Add a method to allow setting the PIO's clock divisor without floats - @ithinuel
  • Use TimerInstant in Timer::GetCounter & add Alarm::schedule_at - @ithinuel

Removed

  • Removed support for critical-section 0.2 (was already deprecated) - @jannic

rp2040-hal v0.6.1

10 Dec 20:58
76b1426
Compare
Choose a tag to compare

0.6.1 - 2022-11-30

Changed

  • Upgraded dependency on critical-section 0.2 to 0.2.8 - @jannic
    (There is also a dependency on version 1.0.0)
  • Remove critical-section impl for version 0.2 - @jannic
    Both 0.2.8 and 1.x use the same symbols internally to implement the
    critical sections, so one impl is sufficient, and having both causes
    compilation errors