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