From 6d3f2dba4e79455804994fc030ca1627cc9ee756 Mon Sep 17 00:00:00 2001 From: Kovacsics Robert Date: Wed, 20 Dec 2023 16:26:36 +0000 Subject: [PATCH] Use pre-LangID usb-device -- much smaller size The LangID try_from_primitive took up a huge amount of space --- Cargo.lock | 160 +++++-------------------------------- Cargo.toml | 7 +- src/cmsis_dap/usb_class.rs | 2 +- src/main.rs | 9 +-- 4 files changed, 24 insertions(+), 154 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6f4a27a..b461c83 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,28 +8,13 @@ version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" -[[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.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - [[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,18 +23,6 @@ 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 = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - [[package]] name = "cc" version = "1.0.83" @@ -66,7 +39,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ec610d8f49840a5b376c69663b6369e71f4b34484b9b2eb29fb918d92516cb9" dependencies = [ "bare-metal", - "bitfield 0.13.2", + "bitfield", "embedded-hal", "volatile-register", ] @@ -191,28 +164,6 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" -[[package]] -name = "hash32" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67" -dependencies = [ - "byteorder", -] - -[[package]] -name = "heapless" -version = "0.7.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdc6457c0eb62c71aac4bc17216026d8410337c4126773b9c5daba343f17964f" -dependencies = [ - "atomic-polyfill", - "hash32", - "rustc_version 0.4.0", - "spin", - "stable_deref_trait", -] - [[package]] name = "itertools" version = "0.10.5" @@ -228,16 +179,6 @@ version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" -[[package]] -name = "lock_api" -version = "0.4.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" -dependencies = [ - "autocfg", - "scopeguard", -] - [[package]] name = "nb" version = "0.1.3" @@ -259,16 +200,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" dependencies = [ - "num_enum_derive 0.5.11", -] - -[[package]] -name = "num_enum" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" -dependencies = [ - "num_enum_derive 0.6.1", + "num_enum_derive", ] [[package]] @@ -282,17 +214,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "num_enum_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.39", -] - [[package]] name = "panic-probe" version = "0.3.1" @@ -315,16 +236,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76e09694b50f89f302ed531c1f2a7569f0be5867aee4ab4f8f729bbeec0078e3" dependencies = [ "arrayvec", - "num_enum 0.5.11", + "num_enum", "paste", ] -[[package]] -name = "portable-atomic" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0" - [[package]] name = "proc-macro2" version = "1.0.70" @@ -359,7 +274,7 @@ dependencies = [ "fugit", "rp2040-boot2", "rp2040-hal", - "usb-device 0.2.9", + "usb-device", ] [[package]] @@ -372,7 +287,7 @@ dependencies = [ "embedded-hal", "panic-probe", "rp-pico", - "usb-device 0.3.1", + "usb-device", "usbd-serial", ] @@ -388,9 +303,9 @@ dependencies = [ [[package]] name = "rp2040-hal" version = "0.9.1" -source = "git+https://github.com/rp-rs/rp-hal.git?branch=main#28ec5271f83bcbcf2ecbb18bf4bd819b248f1594" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f21deadb5f29f05be9e665049c9c6d6385c6ed3437574c995658a041f71453" dependencies = [ - "bitfield 0.14.0", "cortex-m", "critical-section", "embedded-dma", @@ -404,7 +319,7 @@ dependencies = [ "rand_core", "rp2040-hal-macros", "rp2040-pac", - "usb-device 0.3.1", + "usb-device", "vcell", "void", ] @@ -412,11 +327,13 @@ dependencies = [ [[package]] name = "rp2040-hal-macros" version = "0.1.0" -source = "git+https://github.com/rp-rs/rp-hal.git?branch=main#28ec5271f83bcbcf2ecbb18bf4bd819b248f1594" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86479063e497efe1ae81995ef9071f54fd1c7427e04d6c5b84cde545ff672a5e" dependencies = [ + "cortex-m-rt", "proc-macro2", "quote", - "syn 2.0.39", + "syn 1.0.109", ] [[package]] @@ -437,24 +354,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.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.20", -] - -[[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" @@ -464,27 +366,12 @@ dependencies = [ "semver-parser", ] -[[package]] -name = "semver" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" - [[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" @@ -525,26 +412,15 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f6cc3adc849b5292b4075fc0d5fdcf2f24866e88e336dd27a8943090a520508" -[[package]] -name = "usb-device" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e73e438f527e567fb3982f2370967821fab4f5aea84c42e218a211dd2002b6a2" -dependencies = [ - "heapless", - "num_enum 0.6.1", - "portable-atomic", -] - [[package]] name = "usbd-serial" -version = "0.2.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c73af5da56a26abc61a77a93afe3993e1dd643c73e61b09669bda81068cbb1bf" +checksum = "db75519b86287f12dcf0d171c7cf4ecc839149fe9f3b720ac4cfce52959e1dfe" dependencies = [ "embedded-hal", - "nb 1.1.0", - "usb-device 0.3.1", + "nb 0.1.3", + "usb-device", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 64bc126..52fc3e1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,11 +11,8 @@ cortex-m-rt = "0.7.3" embedded-hal = "0.2.7" panic-probe = "0.3.1" rp-pico = { version = "0.8.0", features = ["rp2040-e5"] } -usb-device = "0.3.1" -usbd-serial = "0.2.0" - -[patch.crates-io] -rp2040-hal = { git = "https://github.com/rp-rs/rp-hal.git", branch = "main" } +usb-device = "0.2.9" +usbd-serial = "0.1.1" [build-dependencies] cc = "1.0.83" diff --git a/src/cmsis_dap/usb_class.rs b/src/cmsis_dap/usb_class.rs index 34cfa4a..40805a5 100644 --- a/src/cmsis_dap/usb_class.rs +++ b/src/cmsis_dap/usb_class.rs @@ -52,7 +52,7 @@ impl usb_device::class::UsbClass Ok(()) } - fn get_string(&self, index: StringIndex, lang_id: LangID) -> Option<&str> { + fn get_string(&self, index: StringIndex, lang_id: u16) -> Option<&str> { let _ = lang_id; if index == self.serial_string { Some("CMSIS-DAP interface") diff --git a/src/main.rs b/src/main.rs index f9e336c..bd0e872 100644 --- a/src/main.rs +++ b/src/main.rs @@ -111,15 +111,12 @@ fn main() -> ! { } let usb_dev = UsbDeviceBuilder::new(bus_ref, UsbVidPid(0x04b4, 0xf138)) - .strings(&[StringDescriptors::new(LangID::EN_US) - .manufacturer("KoviRobi") - .product("CMSIS-DAP") - .serial_number("Test")]) - .unwrap() + .manufacturer("KoviRobi") + .product("CMSIS-DAP") + .serial_number("Test") .device_class(2) .composite_with_iads() .max_packet_size_0(64) - .unwrap() .build(); unsafe {