Releases: rp-rs/rp-hal
Releases · rp-rs/rp-hal
rp-binary-info v0.1.0
First release of rp-binary-info.
rp2040-hal v0.10.2
rp2040-hal v0.10.1
rp2040-hal v0.10.0
0.10.0 - 2024-03-10
Added
- Implement i2c-write-iter traits - #765 @ithinuel
- Add categories and keywords to Cargo.toml - #769 @rursprung
- Add getters to the various pad overrides - #768 @ithinuel
- Add an example for using embedded-alloc - #306 @umgefahren @jannic
- Introduce async.await i2c implementation - #747 @ithinuel
- Support embedded_hal 1.0.0 - #734 #736 #753 @jannic @jonathanpallant
- Implement defmt formatting and Debug for clocks::InitError - #751 @jannic
- Implement embedded-io Read + Write for UartPeripheral - #727 @Sympatron
- Add from_installed_program with correct shift direction - #715 @jannic
- Add derive(defmt::Format) to i2c::peripheral::I2CEvent - #726 @ithinuel
- Make PIO IRQ IDs into ZSTs - #723 @9ary
- Add RTC examples & expand RealTimeClock & ClockManager capabilities - #676 @ithinuel
- Allow to use ADC free-running mode without FIFO - #739 @jannic
- Add on-chip voltage regulator (VREG) voltage setting function - #757 @AkiyukiOkayasu
- Support for entering and exiting DORMANT mode - #701 @andrewh42
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
- Properly report UART break conditions - #712 @jannic
- Ensure that i2c pins have PullUp activated - #708 @jannic
- PWM: Set TOP to 0xfffe by default and fix get_max_duty - #744 @jannic
- Add missing ValidFunction implementation for DynFunction - #738 @ithinuel
- Fix RealTimeClock & UsbBus ownership - #725 @jnthbdn
- Make Spi::free also free up the pins - #719 @SCingolani
- Add safety comments to unsafe rom function - #721 @jannic
- Several cleanups and documentation updates - #716 #718 #720 #743 #763 #767 #776 #777 #778 #779 @jannic @ithinuel
rp2040-hal v0.9.2
rp2040-hal v0.9.1
0.9.1
Added
- Add function to enable multiple PWM slices at the same time - #668 @jlpettersson
- Add uart_is_busy() method - #711 @Rahix
- Re-export fugit - #573 @jannic
- Add function to clear PIO fifos - #670 @ThadHouse
- Implement WriteIter and WriteIterRead - #703 @thejpster
- Implement InputPin for all pin configurations - #689 @jannic
- Provide functions to access watchdog scratch registers - #685 @jannic
- Implement reset() and halt() functions - #613 @jannic
Fixed
- Fix USB PLL's VCO frequency according to updated datasheet - #688 @ithinuel, @jannic
- Fix UART transmit_flushed method - #713 @jannic
- Fix calculation of pll frequency for refdiv != 1 - #691 @vinsynth
Changed
rp2040-hal v0.9.0
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
toNormal
. - @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 toPIOExt
- @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
rp2040-hal v0.8.1
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
toPIOBuilder
- #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 checkirq1
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
0.8.0 - 2023-02-16
Added
- Add SPI slave support - @zaksabeast
- Add set_base_1and0 to interpolator - @tomgilligan
- Add DMA support, with implementations for SPI, PIO, UART - @9names, @mgottschlag, @Nashenas88
- Add alarm cancellation feature - @MuratUrsavas
- Add Pin::id() - @jannic
- Add interrupt functions for DynPin - @larsarv