From 97a1429c7875d0960e4111523f8e44b68fab202e Mon Sep 17 00:00:00 2001 From: Rahix Date: Fri, 17 Jan 2025 20:18:43 +0100 Subject: [PATCH] examples: rp-pico: Upgrade to rp2040-hal v0.10 Update rp-pico board-support crate and related dependencies to move to the rp2040-hal version 0.10. --- examples/rp-pico/Cargo.lock | 168 +++++++++++++------------- examples/rp-pico/Cargo.toml | 14 +-- examples/rp-pico/src/main.rs | 24 ++-- examples/rp-pico/src/panic_handler.rs | 8 +- 4 files changed, 105 insertions(+), 109 deletions(-) diff --git a/examples/rp-pico/Cargo.lock b/examples/rp-pico/Cargo.lock index da2eb91..bfae2a0 100644 --- a/examples/rp-pico/Cargo.lock +++ b/examples/rp-pico/Cargo.lock @@ -8,28 +8,13 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -[[package]] -name = "atomic-polyfill" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8cf2bce30dfe09ef0bfaef228b9d414faaf7e563035494d7fe092dba54b300f4" -dependencies = [ - "critical-section", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - [[package]] name = "bare-metal" version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5deb64efa5bd81e31fcd1938615a6d98c82eafcbcd787162b6f63b91d6bac5b3" dependencies = [ - "rustc_version 0.2.3", + "rustc_version", ] [[package]] @@ -38,6 +23,12 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "46afbd2983a5d5a7bd740ccb198caf5b82f45c40c09c0eed36052d91cb92e719" +[[package]] +name = "bitfield" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d7e60934ceec538daadb9d8432424ed043a904d8e0243f3c6446bce549a46ac" + [[package]] name = "bitflags" version = "2.8.0" @@ -69,8 +60,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9" dependencies = [ "bare-metal", - "bitfield", - "embedded-hal", + "bitfield 0.13.2", + "embedded-hal 0.2.7", "volatile-register", ] @@ -140,6 +131,37 @@ dependencies = [ "void", ] +[[package]] +name = "embedded-hal" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "361a90feb7004eca4019fb28352a9465666b24f840f5c3cddf0ff13920590b89" + +[[package]] +name = "embedded-hal-async" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4c685bbef7fe13c3c6dd4da26841ed3980ef33e841cddfa15ce8a8fb3f1884" +dependencies = [ + "embedded-hal 1.0.0", +] + +[[package]] +name = "embedded-hal-nb" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fba4268c14288c828995299e59b12babdbe170f6c6d73731af1b4648142e8605" +dependencies = [ + "embedded-hal 1.0.0", + "nb 1.1.0", +] + +[[package]] +name = "embedded-io" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edd0f118536f44f5ccd48bcb8b111bdc3de888b58c74639dfb034a357d0f206d" + [[package]] name = "frunk" version = "0.4.3" @@ -202,23 +224,20 @@ checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" [[package]] name = "hash32" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" +checksum = "47d60b12902ba28e2730cd37e95b8c9223af2808df9e902d4df49588d1470606" dependencies = [ "byteorder", ] [[package]] name = "heapless" -version = "0.7.17" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" +checksum = "0bfb9eb618601c89945a70e254898da93b13be0388091d42117462b265bb3fad" dependencies = [ - "atomic-polyfill", "hash32", - "rustc_version 0.4.1", - "spin", "stable_deref_trait", ] @@ -231,16 +250,6 @@ dependencies = [ "either", ] -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "scopeguard", -] - [[package]] name = "log" version = "0.4.25" @@ -305,6 +314,12 @@ dependencies = [ "paste", ] +[[package]] +name = "portable-atomic" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "280dc24453071f1b63954171985a0b0d30058d287960968b9b2aca264c8d4ee6" + [[package]] name = "proc-macro2" version = "1.0.93" @@ -316,9 +331,9 @@ dependencies = [ [[package]] name = "process-image" -version = "0.1.1" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b907a5683725ae1aa5a28446fd29e513e6dab1a6a5a9543c202d0510d2f29a4f" +checksum = "1c1de5542ea7a8e8654e93e3d00b28c1f3318f95b0f270240685c9eeeb300986" [[package]] name = "profirust" @@ -327,7 +342,7 @@ dependencies = [ "bitflags", "bitvec", "cortex-m", - "embedded-hal", + "embedded-hal 0.2.7", "fugit", "log", "managed", @@ -341,7 +356,7 @@ version = "0.0.0" dependencies = [ "cortex-m", "cortex-m-rt", - "embedded-hal", + "embedded-hal 0.2.7", "fugit", "heapless", "log", @@ -376,9 +391,9 @@ checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" [[package]] name = "rp-pico" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6341771e6f8e5d130b2b3cbc23435b7847761adf198af09f4b2a60407d43bd56" +checksum = "b9342d3ac7011ac688300979e9b52a81f0add1d05feb02868cf94bfee0705b28" dependencies = [ "cortex-m-rt", "fugit", @@ -398,13 +413,19 @@ dependencies = [ [[package]] name = "rp2040-hal" -version = "0.9.0" -source = "git+https://github.com/rahix/rp-hal.git?rev=6baaf07b0ac2017dbbea1ba8cf5986b74cd81104#6baaf07b0ac2017dbbea1ba8cf5986b74cd81104" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d11e711940087f2cdff8aeae9f4b902e2014c06a00b39a1092686b81ec973d6f" dependencies = [ + "bitfield 0.14.0", "cortex-m", "critical-section", "embedded-dma", - "embedded-hal", + "embedded-hal 0.2.7", + "embedded-hal 1.0.0", + "embedded-hal-async", + "embedded-hal-nb", + "embedded-io", "frunk", "fugit", "itertools", @@ -422,18 +443,20 @@ dependencies = [ [[package]] name = "rp2040-hal-macros" version = "0.1.0" -source = "git+https://github.com/rahix/rp-hal.git?rev=6baaf07b0ac2017dbbea1ba8cf5986b74cd81104#6baaf07b0ac2017dbbea1ba8cf5986b74cd81104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86479063e497efe1ae81995ef9071f54fd1c7427e04d6c5b84cde545ff672a5e" dependencies = [ + "cortex-m-rt", "proc-macro2", "quote", - "syn 2.0.96", + "syn 1.0.109", ] [[package]] name = "rp2040-pac" -version = "0.5.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12d9d8375815f543f54835d01160d4e47f9e2cae75f17ff8f1ec19ce1da96e4c" +checksum = "83cbcd3f7a0ca7bbe61dc4eb7e202842bee4e27b769a7bf3a4a72fa399d6e404" dependencies = [ "cortex-m", "cortex-m-rt", @@ -447,24 +470,9 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver 0.9.0", + "semver", ] -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.24", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - [[package]] name = "semver" version = "0.9.0" @@ -474,27 +482,12 @@ dependencies = [ "semver-parser", ] -[[package]] -name = "semver" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cb6eb87a131f756572d7fb904f6e7b68633f09cca868c5df1c4b8d1a694bbba" - [[package]] name = "semver-parser" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" -dependencies = [ - "lock_api", -] - [[package]] name = "stable_deref_trait" version = "1.2.0" @@ -537,18 +530,23 @@ checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "usb-device" -version = "0.2.9" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f6cc3adc849b5292b4075fc0d5fdcf2f24866e88e336dd27a8943090a520508" +checksum = "98816b1accafbb09085168b90f27e93d790b4bfa19d883466b5e53315b5f06a6" +dependencies = [ + "heapless", + "portable-atomic", +] [[package]] name = "usbd-serial" -version = "0.1.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db75519b86287f12dcf0d171c7cf4ecc839149fe9f3b720ac4cfce52959e1dfe" +checksum = "065e4eaf93db81d5adac82d9cef8f8da314cb640fa7f89534b972383f1cf80fc" dependencies = [ - "embedded-hal", - "nb 0.1.3", + "embedded-hal 0.2.7", + "embedded-io", + "nb 1.1.0", "usb-device", ] diff --git a/examples/rp-pico/Cargo.toml b/examples/rp-pico/Cargo.toml index ee6f636..daf76a0 100644 --- a/examples/rp-pico/Cargo.toml +++ b/examples/rp-pico/Cargo.toml @@ -19,12 +19,12 @@ cortex-m = "0.7" cortex-m-rt = "0.7" embedded-hal = { version = "0.2.5", features = ["unproven"] } fugit = "0.3.7" -heapless = "0.7.16" +heapless = "0.8" nb = "1.1.0" -process-image = "0.1.1" -rp-pico = "0.8" -usb-device = "0.2.9" -usbd-serial = "0.1.1" +process-image = "0.2.1" +rp-pico = "0.9" +usb-device = "0.3.2" +usbd-serial = "0.2.2" [dependencies.log] version = "0.4.20" @@ -37,8 +37,8 @@ version = "0.5.0" default-features = false features = ["phy-rp2040"] -[patch.crates-io] -rp2040-hal = { git = "https://github.com/rahix/rp-hal.git", rev = "6baaf07b0ac2017dbbea1ba8cf5986b74cd81104" } +# [patch.crates-io] +# rp2040-hal = { git = "https://github.com/rahix/rp-hal.git", rev = "6baaf07b0ac2017dbbea1ba8cf5986b74cd81104" } # cargo build/run [profile.dev] diff --git a/examples/rp-pico/src/main.rs b/examples/rp-pico/src/main.rs index 83c6fd3..1d6d801 100644 --- a/examples/rp-pico/src/main.rs +++ b/examples/rp-pico/src/main.rs @@ -1,24 +1,18 @@ #![no_std] #![no_main] +use bsp::hal::{self, clocks::init_clocks_and_plls, pac, sio::Sio, watchdog::Watchdog}; use rp_pico as bsp; -use bsp::hal::{ - self, - clocks::init_clocks_and_plls, - pac, - sio::Sio, - watchdog::Watchdog, -}; +use embedded_hal::digital::v2::ToggleableOutputPin; use usb_device::{class_prelude::*, prelude::*}; use usbd_serial::SerialPort; -use embedded_hal::digital::v2::ToggleableOutputPin; use profirust::{dp, fdl, phy, Baudrate}; mod logger; -mod time; mod panic_handler; +mod time; // Encoder Parameters const ENCODER_ADDRESS: u8 = 6; @@ -82,9 +76,11 @@ fn main() -> ! { // Create a USB device with a fake VID and PID let mut usb_dev = UsbDeviceBuilder::new(&usb_bus, UsbVidPid(0x16c0, 0x27dd)) - .manufacturer("Rahix Automation") - .product("PROFIRUST TEST Gadget") - .serial_number("FOOBAR") + .strings(&[StringDescriptors::default() + .manufacturer("Rahix Automation") + .product("PROFIRUST TEST Gadget") + .serial_number("FOOBAR")]) + .unwrap() .device_class(2) // from: https://www.usb.org/defined-class-codes .build(); @@ -120,8 +116,8 @@ fn main() -> ! { // Selected Modules: // [0] Class 1 Singleturn // - Code sequence: Increasing clockwise (0) - user_parameters: Some(&[0x00, 0x00, ]), - config: Some(&[0xd0, ]), + user_parameters: Some(&[0x00, 0x00]), + config: Some(&[0xd0]), // Set max_tsdr depending on baudrate and assert // that a supported baudrate is used. diff --git a/examples/rp-pico/src/panic_handler.rs b/examples/rp-pico/src/panic_handler.rs index 03fe32e..0918a7d 100644 --- a/examples/rp-pico/src/panic_handler.rs +++ b/examples/rp-pico/src/panic_handler.rs @@ -46,9 +46,11 @@ fn panic(info: &core::panic::PanicInfo) -> ! { // Create a USB device with a fake VID and PID let mut usb_dev = UsbDeviceBuilder::new(&usb_bus, UsbVidPid(0x16c0, 0x27dd)) - .manufacturer("Rahix Automation") - .product("Panic Gadget") - .serial_number("FOOBAR") + .strings(&[StringDescriptors::default() + .manufacturer("Rahix Automation") + .product("Panic Gadget") + .serial_number("FOOBAR")]) + .unwrap() .device_class(2) // from: https://www.usb.org/defined-class-codes .build();